• 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"

  • 相关阅读:
    关于java.lang.reflect.InvocationTargetException
    Java并发编程(三)后台线程(Daemon Thread)
    Lab 7-2
    Lab 7-1
    Lab 6-3
    Lab 6-2
    Lab 6-1
    Lab 5-1
    Lab 3-4
    Lab 3-3
  • 原文地址:https://www.cnblogs.com/raykuan/p/6914637.html
Copyright © 2020-2023  润新知