背景描述,在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磁盘及分区详解

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 磁盘挂载分区

举例说明: 新增磁盘的设备文件名为 /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) 按照提示应该可以分区成功,注意一点   一个磁 ...

linux磁盘简单分区方式

1:分区 fdisk /dev/sdb 2:格式化 mkfs -t ext3  /dev/sdb1 或者 mke2fs -t ext4  /dev/sdb2 3:挂载 mount /dev/sdb1 ...

随机推荐

extjs后自己写了一些见不得人的脚本

配置管理器
Logo

更多推荐