Linux磁盘及分区之wwid和uuid
背景描述,在Linux系统中,如果添加了新的SCSI磁盘或者映射SAN存储LUN操作,重启操作系统之后会出现磁盘标识符(sd*)错乱的情况。
例如之前添加的SAN存储LUN的磁盘标识符为/dev/sdd,重启之后发现变成/dev/sdh,特别是oracle RAC环境下我们是不希望出现这样的情况的。
解决这个问题之前,需要先搞清楚Linux系统中的wwid和uuid号。
一、wwid
根据SCSI标准,每个SCSI磁盘都有一个WWID,类似于网卡的MAC地址,要求是独一无二。
通过WWID标示SCSI磁盘就可以保证磁盘路径永久不变,Linux系统上/dev/disk/by-id目录包含每个SCSI磁盘WWID访问路径。
查看磁盘设备wwid方法1:
[root@rac01-node01 /]# ll /dev/disk/by-id/
total 0
lrwxrwxrwx. 1 root root 10 May 28 2017 dm-name-vg_rac01node01-LogVol01 -> ../../dm-0
lrwxrwxrwx. 1 root root 10 May 28 2017 dm-uuid-LVM-YWDtaD547sWxXQ2m9yF3Vl7gd42z61gqjQSRxV0GPavZDlE2D1dh26aPin6V59mz -> ../../dm-0
lrwxrwxrwx. 1 root root 9 May 27 19:01 scsi-360060160e2b0420004a53e678d42e711 -> ../../sdg
lrwxrwxrwx. 1 root root 9 May 27 19:01 scsi-360060160e2b04200c687b330c741e711 -> ../../sdh
lrwxrwxrwx. 1 root root 9 May 28 2017 scsi-3600605b00a8043c020b6bdd53057904d -> ../../sda
lrwxrwxrwx. 1 root root 10 May 28 2017 scsi-3600605b00a8043c020b6bdd53057904d-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 May 28 2017 scsi-3600605b00a8043c020b6bdd53057904d-part2 -> ../../sda2
查看磁盘设备wwid方法2:
[root@rac01-node01 Packages]# scsi_id --whitelist /dev/sda
3600605b00a8043c020b6bdd53057904d
[root@rac01-node01 Packages]# scsi_id --whitelist /dev/sdb
360060160e2b04200c687b330c741e711
RHEL6使用如上命令,在RHEL5中使用scsi_id --whitelist /dev/sd*
SAN存储:
重启系统之后,可以通过multipath.conf文件配置别名来保持系统磁盘标识符不变
别名的实质就是通过LUN ID和multipath -ll显示的磁盘标识符做绑定
[root@ttest ~]# cat /etc/multipath.conf
# multipath.conf written by anaconda
defaults {
user_friendly_names yes
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^dcssblk[0-9]*"
wwid "*"
}
blacklist_exceptions {
wwid "300060160e2b042007a5ba6d44bece771"
wwid "300060160e2b042000bd016064cece771"
wwid "300060160e2b04200176ad7954cece771"
wwid "300060160e2b0420020c3fcd24cece771"
}
multipaths {
multipath {
wwid 300060160e2b042007a5ba6d44bece771
alias v5200_gi01_lun00
}
multipath {
wwid 300060160e2b04200d0990bea4bece771
alias v5200_gi01_lun01
}
multipath {
wwid 300060160e2b0420075db53f84bece771
alias v5200_gi01_lun02
}
multipath {
wwid 300060160e2b042000bd016064cece771
alias v5200_gi01_lun03
}
}
=======================================================================================
二、uuid
UUID是有文件系统在创建时候生成的,用来标记文件系统,类似WWID一样也是独一无二的。
因此使用UUID来标示SCSI磁盘,也能保证路径是永久不变的。Linux上/dev/disk/by-uuid可以看到每个已经创建文件系统的磁盘设备以及与/dev/sd*之间的映射关系。
查看文件系统uuid:
[root@rac01-node01 /]# ll /dev/disk/by-uuid/
total 0
lrwxrwxrwx. 1 root root 10 May 28 2017 3777-9E7C -> ../../sda1
lrwxrwxrwx. 1 root root 10 May 28 2017 414563cf-af5d-467a-bca9-81b8dad6e17f -> ../../dm-0
lrwxrwxrwx. 1 root root 10 May 28 2017 948ab5bc-f796-4f74-8cd5-84b6474d79ae -> ../../dm-1
lrwxrwxrwx. 1 root root 10 May 28 2017 9cbb7f73-582c-47e4-99d7-1c79fae90efc -> ../../sda2
重启系统之后,如果要使挂载的挂载的目录和文件系统绑定关系不变,在/etc/fstab里面应该使用uuid来标识,如下:
[root@rac01-node01 /]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Sun May 28 01:13:01 2017
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_rac01node01-LogVol01 / ext4 defaults 1 1
UUID=9cbb7f73-582c-47e4-99d7-1c79fae90efc /boot ext4 defaults 1 2
UUID=3777-9E7C /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/vg_rac01node01-LogVol00 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
挂载文件系统之前,查看分区UUID,使用UUID mount文件系统时需要指定-t文件系统类型
[root@ca-mgmt ~]# blkid
/dev/vda1: UUID="d0bc3224-dfb4-4abd-9e04-91fe5af5c9b9" TYPE="xfs"
/dev/vda2: UUID="j7r6ci-03td-jY3T-nyKA-xI0t-9FK4-k3Bb1z" TYPE="LVM2_member"
/dev/mapper/rhel-root: UUID="a708a4d0-143e-46fe-8af9-1d5a2d330e2a" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="4f927dbc-446e-49eb-939f-bc7790b823a4" TYPE="swap"
Linux磁盘及分区之wwid和uuid的更多相关文章
- linux磁盘及分区详解
1.Linux 分区简介 1.1 主分区 vs 扩展分区 硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extend ...
- 7.linux磁盘管理 分区 建立文件系统 挂载使用
一.磁盘管理 分区 建立文件系统 挂载使用 逻辑卷建立 磁盘阵列的建立 磁盘配额设定 fdisk -l 查看磁盘信息 df -Th 查看硬盘对应的 ...
- Linux磁盘与分区
正在从新装载虚拟机,碰到磁盘分区一阵头大,花了一下午对分区的基本原理做了一个梳理 一.磁盘 硬盘内部结构:
- Linux 磁盘的分区
如果我们想在系统中新增一块硬盘,需要做什么呢? 1. 对磁盘进行分区,新建可用分区 2. 对该分区进行格式化,以创建系统可用的文件系统 3. 若想要仔细一点,可以对刚才新建好的文件系统进行检验 4. ...
- Linux 磁盘、分区、文件系统、挂载
磁盘 Linux所有设备都被抽象成为一个文件,保存在/dev目录下. 设备名称一般为hd[a-z]或sd[a-z].如果电脑中有多硬盘,则设备名依次为sda.adb.sdc...以此类推 IDE设备的 ...
- linux磁盘之分区类型id
我们通过命令来查看一下linux系统定义的分区类型id及其意义(更改磁盘分区类型必须掌握)系统采样: [root@fp-web-130 ~]# cat /etc/redhat-release Cent ...
- Linux 磁盘挂载分区
举例说明: 新增磁盘的设备文件名为 /dev/vdb 大小为100GB. #fdisk -l 查看新增的的磁盘 1.对新增磁盘进行分区 #fdisk /dev/vdb 按提示操作 p打印 n新增 d ...
- 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)
0. 背景: inux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻 ...
- LINUX 磁盘如何分区
fdisk -l 可以查看当前磁盘 假设未分配磁盘为/dev/sdb size=10G fdisk /dev/sdb (m for help) 按照提示应该可以分区成功,注意一点 一个磁 ...
随机推荐
- ElasticSearch 基础<转载>
使用curl命令操作elasticsearch 大岩不灿 发表于 2015年4月25日 浏览 13,463 次 第一:_cat系列_cat系列提供了一系列查询elasticsearch集群状态的接口. ...
- SSM整合(2): spring 与 mybatis 整合
在进行完spring与springmvc整合之后, 继续 spring与mybatis的整合. 既然是操作数据库, 那必然不能缺少了连接属性 一. db.properties jdbc.driver= ...
- springMVC上传文件简单案例
html <form name="Form2" action="/SpringMVC006/fileUpload2" method="post& ...
- google 被墙的解决办法
昨晚无意中发现的东西,分享给各位使用,google搜索技术方面的东西还是很准确的,可惜被墙了,但是上有政策下有对策…… 谷歌地址: http://74.125.224.18/ http://91.21 ...
- Linux LAMP 配置
一.安装必要的软件 yum install -y update yum install pcre yum install openssl* yum -y install gcc gcc-c++ aut ...
- 文档对象模型DOM(一)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. HTML DOM 树 每加载一个标记 注释 或者属性,就将其当 ...
- python 详解正则表达式的使用(re模块)
一,什么是正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件 ...
- [转]Bootstrap table 分页 In asp.net MVC
本文转自:https://www.cnblogs.com/lenovo_tiger_love/p/7474403.html 中文翻译文档: http://blog.csdn.net/rickiyeat ...
- 在jQuery定义自己的扩展方法函数
今早复习昨天的练习jQuery的DropDownList联动功能,如果想看回<jQuery实现DropDownList(MVC)>http://www.cnblogs.com/insus/ ...
- C++标准模板库STL
STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的代码 ...