linux 系統環境下存儲磁盤設備的編號

曾經道聽途說,Linux下的磁盤設備號(/dev/sda、/dev/sdb……)會在操作系統重啓後發生編號混亂,尤其是這些磁盤是外置存儲盤的時候。最近一次機緣巧合的機會,讓我也碰到了這樣的情況,做了些簡單的實驗,找到了些規律。

  1. [root@Smswas1 ~]# fdisk -l


  2. Disk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes

  3. 255 heads, 63 sectors/track, 17844 cylinders

  4. Units = cylinders of 16065 * 512 = 8225280 bytes


  5. Device Boot Start End Blocks Id System

  6. /dev/cciss/c0d0p1 * 1 13 104391 83 Linux

  7. /dev/cciss/c0d0p2 14 17844 143227507+ 8e Linux LVM


  8. Disk /dev/sda: 107.3 GB, 107374182400 bytes

  9. 255 heads, 63 sectors/track, 13054 cylinders

  10. Units = cylinders of 16065 * 512 = 8225280 bytes


  11. Device Boot Start End Blocks Id System

  12. /dev/sda1 1 13054 104856223+ 5 Extended

  13. /dev/sda5 1 7 56164+ 83 Linux

  14. /dev/sda6 8 616 4891761 83 Linux

  15. /dev/sda7 617 6696 48837568+ 83 Linux


  16. Disk /dev/sdb: 36.3 GB, 36354129920 bytes

  17. 64 heads, 32 sectors/track, 34670 cylinders

  18. Units = cylinders of 2048 * 512 = 1048576 bytes


  19. Device Boot Start End Blocks Id System

  20. /dev/sdb1 1 34670 35502064 5 Extended

  21. /dev/sdb5 1 34670 35502048 83 Linux


  22. Disk /dev/sdc: 107.3 GB, 107374182400 bytes

  23. 255 heads, 63 sectors/track, 13054 cylinders

  24. Units = cylinders of 16065 * 512 = 8225280 bytes


  25. Disk /dev/sdc doesn't contain a valid partition table


  26. Disk /dev/sdd: 107.3 GB, 107374182400 bytes

  27. 255 heads, 63 sectors/track, 13054 cylinders

  28. Units = cylinders of 16065 * 512 = 8225280 bytes


  29. Disk /dev/sdd doesn't contain a valid partition table

  30. [root@Smswas1 ~]# ls -l /dev/disk/by-id

  31. total 0

  32. lrwxrwxrwx 1 root root 9 Jun 16 19:14 scsi-1HITACHI_D60055750011 -> ../../sdc

  33. lrwxrwxrwx 1 root root 9 Jun 16 19:05 scsi-1HITACHI_D60055750012 -> ../../sda

  34. lrwxrwxrwx 1 root root 10 Jun 16 19:05 scsi-1HITACHI_D60055750012-part1 -> ../../sda1

  35. lrwxrwxrwx 1 root root 10 Jun 16 19:05 scsi-1HITACHI_D60055750012-part5 -> ../../sda5

  36. lrwxrwxrwx 1 root root 10 Jun 16 19:05 scsi-1HITACHI_D60055750012-part6 -> ../../sda6

  37. lrwxrwxrwx 1 root root 10 Jun 16 19:05 scsi-1HITACHI_D60055750012-part7 -> ../../sda7

  38. lrwxrwxrwx 1 root root 9 Jun 16 19:18 scsi-1HITACHI_D60055750013 -> ../../sdd

  39. lrwxrwxrwx 1 root root 9 Jun 16 19:05 scsi-1HITACHI_D60055750016 -> ../../sdb

  40. lrwxrwxrwx 1 root root 10 Jun 16 19:05 scsi-1HITACHI_D60055750016-part1 -> ../../sdb1

  41. lrwxrwxrwx 1 root root 10 Jun 16 19:05 scsi-1HITACHI_D60055750016-part5 -> ../../sdb5

  42. [root@Smswas1 ~]# ls -l /dev/disk/by-path

  43. total 0

  44. lrwxrwxrwx 1 root root 10 Jun 16 19:05 pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../scd0

  45. lrwxrwxrwx 1 root root 9 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000 -> ../../sda

  46. lrwxrwxrwx 1 root root 10 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part1 -> ../../sda1

  47. lrwxrwxrwx 1 root root 10 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part5 -> ../../sda5

  48. lrwxrwxrwx 1 root root 10 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part6 -> ../../sda6

  49. lrwxrwxrwx 1 root root 10 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part7 -> ../../sda7

  50. lrwxrwxrwx 1 root root 9 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0001000000000000 -> ../../sdb

  51. lrwxrwxrwx 1 root root 10 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0001000000000000-part1 -> ../../sdb1

  52. lrwxrwxrwx 1 root root 10 Jun 16 19:05 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0001000000000000-part5 -> ../../sdb5

  53. lrwxrwxrwx 1 root root 9 Jun 16 19:18 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0002000000000000 -> ../../sdd

  54. lrwxrwxrwx 1 root root 9 Jun 16 19:14 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0003000000000000 -> ../../sdc

命令的輸出可以看到,有4塊從同一光纖通道(pci-0000:0b:00.0-fc-0x50060e800043cd71)認到的存儲磁盤sda、sdb、sdc、sdd,操作系統重啓後的輸出如下:

  1. [root@Smswas1 ~]# fdisk -l


  2. Disk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes

  3. 255 heads, 63 sectors/track, 17844 cylinders

  4. Units = cylinders of 16065 * 512 = 8225280 bytes


  5. Device Boot Start End Blocks Id System

  6. /dev/cciss/c0d0p1 * 1 13 104391 83 Linux

  7. /dev/cciss/c0d0p2 14 17844 143227507+ 8e Linux LVM


  8. Disk /dev/sda: 107.3 GB, 107374182400 bytes

  9. 255 heads, 63 sectors/track, 13054 cylinders

  10. Units = cylinders of 16065 * 512 = 8225280 bytes


  11. Device Boot Start End Blocks Id System

  12. /dev/sda1 1 13054 104856223+ 5 Extended

  13. /dev/sda5 1 7 56164+ 83 Linux

  14. /dev/sda6 8 616 4891761 83 Linux

  15. /dev/sda7 617 6696 48837568+ 83 Linux


  16. Disk /dev/sdb: 36.3 GB, 36354129920 bytes

  17. 64 heads, 32 sectors/track, 34670 cylinders

  18. Units = cylinders of 2048 * 512 = 1048576 bytes


  19. Device Boot Start End Blocks Id System

  20. /dev/sdb1 1 34670 35502064 5 Extended

  21. /dev/sdb5 1 34670 35502048 83 Linux


  22. Disk /dev/sdc: 107.3 GB, 107374182400 bytes

  23. 255 heads, 63 sectors/track, 13054 cylinders

  24. Units = cylinders of 16065 * 512 = 8225280 bytes


  25. Disk /dev/sdc doesn't contain a valid partition table


  26. Disk /dev/sdd: 107.3 GB, 107374182400 bytes

  27. 255 heads, 63 sectors/track, 13054 cylinders

  28. Units = cylinders of 16065 * 512 = 8225280 bytes


  29. Disk /dev/sdd doesn't contain a valid partition table

  30. [root@Smswas1 ~]# ls -l /dev/disk/by-id

  31. total 0

  32. lrwxrwxrwx 1 root root 9 Jun 16 19:24 scsi-1HITACHI_D60055750011 -> ../../sdd

  33. lrwxrwxrwx 1 root root 9 Jun 16 19:24 scsi-1HITACHI_D60055750012 -> ../../sda

  34. lrwxrwxrwx 1 root root 10 Jun 16 19:24 scsi-1HITACHI_D60055750012-part1 -> ../../sda1

  35. lrwxrwxrwx 1 root root 10 Jun 16 19:24 scsi-1HITACHI_D60055750012-part5 -> ../../sda5

  36. lrwxrwxrwx 1 root root 10 Jun 16 19:24 scsi-1HITACHI_D60055750012-part6 -> ../../sda6

  37. lrwxrwxrwx 1 root root 10 Jun 16 19:24 scsi-1HITACHI_D60055750012-part7 -> ../../sda7

  38. lrwxrwxrwx 1 root root 9 Jun 16 19:24 scsi-1HITACHI_D60055750013 -> ../../sdc

  39. lrwxrwxrwx 1 root root 9 Jun 16 19:24 scsi-1HITACHI_D60055750016 -> ../../sdb

  40. lrwxrwxrwx 1 root root 10 Jun 16 19:24 scsi-1HITACHI_D60055750016-part1 -> ../../sdb1

  41. lrwxrwxrwx 1 root root 10 Jun 16 19:24 scsi-1HITACHI_D60055750016-part5 -> ../../sdb5

  42. [root@Smswas1 ~]# ls -l /dev/disk/by-label

  43. total 0

  44. lrwxrwxrwx 1 root root 18 Jun 16 19:23 boot -> ../../cciss/c0d0p1

  45. [root@Smswas1 ~]# ls -l /dev/disk/by-path

  46. total 0

  47. lrwxrwxrwx 1 root root 10 Jun 16 19:23 pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../scd0

  48. lrwxrwxrwx 1 root root 9 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000 -> ../../sda

  49. lrwxrwxrwx 1 root root 10 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part1 -> ../../sda1

  50. lrwxrwxrwx 1 root root 10 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part5 -> ../../sda5

  51. lrwxrwxrwx 1 root root 10 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part6 -> ../../sda6

  52. lrwxrwxrwx 1 root root 10 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0000000000000000-part7 -> ../../sda7

  53. lrwxrwxrwx 1 root root 9 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0001000000000000 -> ../../sdb

  54. lrwxrwxrwx 1 root root 10 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0001000000000000-part1 -> ../../sdb1

  55. lrwxrwxrwx 1 root root 10 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0001000000000000-part5 -> ../../sdb5

  56. lrwxrwxrwx 1 root root 9 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0002000000000000 -> ../../sdc

  57. lrwxrwxrwx 1 root root 9 Jun 16 19:24 pci-0000:0b:00.0-fc-0x50060e800043cd71:0x0003000000000000 -> ../../sdd

  58. [root@Smswas1 ~]# ls -l /dev/disk/by-uuid

請仔細觀察上面的藍色字和紅色字的磁盤,你會發現,在操作系統重啓後,磁盤的設備編號發生了變化,sdc和sdd對換了。
而且如果你更仔細的觀察就會發現,設備編號sdX是由紅色字部分決定的,ls -l /dev/disk/by-path的輸出決定了sdX的編號,換句話說,sdX的編號是由“光纖卡的物理位置+光纖卡的WWN+映射到主機的LUN ID”決定的。
如果想判斷重啓後,sdX的編號是否會發生變化,只要ls -l /dev/disk/by-path的輸出即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章