在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda, sdb, sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘
在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda, sdb, sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混乱,最常见的比如Linux文件 系统的启动问题。很多人在遇到这种问题的时候都去找磁盘、阵列厂家,怀疑是他们的问题,其实这种底层的磁盘(单个磁盘或者RAID阵列)和Linux下磁 盘设备文件的映射并不是磁盘、阵列厂家来决定的,而是Linux内核自身的原因。

目前Linux内核对于这种磁盘设备的映射基本上取决于三个顺序,
一是磁盘驱动程序的加载;
二是主机PCI插槽的监测;
三是磁盘本身的监测,先来的当然是a,以此类推。所以,在出现热插拔了某些设备、重启等特殊情况下,实际磁盘在Linux下映射的设备文件可能由于这种“排队”的原因而发生改变,而这种底层“偷偷的”变化有时候会让管理员犯一些低级错误。

这是Linux Kernel的限制,所以目前还没办法来正面的克服应对,但有两个“迂回战术”的办法来减少可能出现的问题,一个是采用UUID设备唯一识别的方法,另一个是采用对设备卷做Label标识的办法。

一、 UUID (globally unique identifier),唯一的身份识别,是采用SCSI Inquiry命令的Page 83信息来映射磁盘设备的。例如我们可以在Linux下查询一些磁盘设备的UUID标识代码。

引用

bash# ls -la /dev/disk/by-id
total 0
drwxr-xr-x 2 root root 280 Mar 11 12:29 .
drwxr-xr-x 5 root root 100 Mar 11 12:28 ..
lrwxrwxrwx 1 root root 9 Mar 11 12:29 edd-int13_dev80 -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part6 -> ../../sda6
lrwxrwxrwx 1 root root 9 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000 -
> ../../sda
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art6 -> ../../sda6

找到了磁盘设备唯一的UUID代码后,就可以加到/etc/grub.conf和/etc/fstab中,这样即使初始的系统盘sda变成了sdb,但Linux和文件系统的启动加载都是按照UUID来的,所以上层也不会受到影响,例如,
在 /etc/grub.conf系统启动入口中做以下更改:

引用

kernel /boot/vmlinuz-2.6.27.7 root=/dev/disk/by-id/scsi-3600050e03d7c67007bf400009f890000-part1

在 /etc/fstab文件系统启动入口中做以下更改:

引用

/dev/disk/by-id/scsi-3600050e03d7c67007bf400009f890000-part1 / ext3 1 1
/dev/disk/by-id/scsi-234892819987c8f828473829becf38289-part2 /home ext3 1 1

二、 第二种算是比较老式的解决方法,即对磁盘卷设置Label标签,同样的道理,系统启动的时候只看标签,不看底层的sda/sdb等设备号,所以也不会影响到系统、文件系统的启动。例如,
使用e2label命令对sda1和sdb1设置标签:

引用

/sbin/e2label /dev/sda1 myroot
/sbin/e2label /dev/sdb1 myhome

之后在 /etc/grub.conf 系统启动入口中做以下更改:
kernel /boot/vmlinuz-2.6.29 ro root=LABEL=myroot
在 /etc/fstab文件系统启动入口中做以下更改:

引用

LABEL=myroot / ext3 defaults 1 1
LABEL=myhome /home ext3 defaults 1 1

当然,以上两种都是为了不影响系统和文件系统的启动采用的变通方法,在实际的系统管理时还是要密切注意底层设备的变化,否则如果出现了磁盘分区误删除的事情罪过可就大了

====================================================

one disk or disk partition can be considerred a PV, like sda, or sda1, or sda2.

every PV is divided into PE. usually it is 4M byte.

one , or more than one PV form a VG.

For example, disk sda was divided 2 partition, sda1 and sda2.

sda1 was used to store boot loader, so we don't need to create lv on it.

sda2 was used to store data,so we need to create VG on it, and then create LV on VG.

df -lh

Filesystem                   1K-blocks     Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root  51606140  8690444  40294256  18% /
tmpfs                          1820768      236   1820532   1% /dev/shm
/dev/sda1                       495844    69544    400700  15% /boot
/dev/mapper/VolGroup-lv_home  50395844  1084612  46751232   3% /home
/dev/mapper/VolGroup-lv_opt  100791728 16247552  79424176  17% /opt

from above output, there were not VG and LV on disk partition /dev/sda1

the LV, like lv_home,lv_root,lv_opt, shoul be create on sda2.

vgdisplay --verbose
    Finding all volume groups
    Finding volume group "VolGroup"
  --- Volume group ---
  VG Name               VolGroup
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               465.27 GiB
  PE Size               4.00 MiB
  Total PE              119109
  Alloc PE / Size       50300 / 196.48 GiB
  Free  PE / Size       68809 / 268.79 GiB
  VG UUID               eiUY7U-YAne-xuce-o08D-ikv7-ue9Q-pK7whN
   
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_root
  LV Name                lv_root
  VG Name                VolGroup
  LV UUID                gR5yI0-OBRg-mSew-cXhm-LHRc-4IjE-u0af9s
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-24 21:04:09 +0800
  LV Status              available
  # open                 1
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_opt
  LV Name                lv_opt
  VG Name                VolGroup
  LV UUID                FJJ5O0-N8ZV-0CBE-VbS6-bwhe-R3ft-tQ8Dem
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-24 21:04:19 +0800
  LV Status              available
  # open                 1
  LV Size                97.66 GiB
  Current LE             25000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_home
  LV Name                lv_home
  VG Name                VolGroup
  LV UUID                YSulS6-YfCa-3fsP-YGt7-1Xy9-65Rc-aUOk2D
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-24 21:04:38 +0800
  LV Status              available
  # open                 1
  LV Size                48.83 GiB
  Current LE             12500
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Physical volumes ---
  PV Name               /dev/sda2     
  PV UUID               t05rhs-cX12-y03y-fZWk-BDoo-MEvc-BBAhLv
  PV Status             allocatable
  Total PE / Free PE    119109 / 68809

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xbb9abb9a

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64       60802   487873536   8e  Linux LVM

from the above ouput, and considerring the previous output, sda1 was not used to lvm, sda2 was used to LVM, that means sda2 as a PV form a VG, and create some LV on VG.

Basically, the disk sda could be a local disk, or a local virtual disk which consist of RAID.

Furtherly, linux use device mapper(DM) .

# iostat -x
Linux 2.6.32-431.el6.x86_64 (15090279host)     06/19/2016     _x86_64_    (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.85    0.00    0.43    0.27    0.00   97.45

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.44    29.03    1.61    1.58    51.93   238.07    91.03     0.10   32.52   3.77   1.20
dm-0            0.00     0.00    1.89   22.98    49.19   183.65     9.37     7.66  308.28   0.24   0.59
dm-1              0.00     0.00    0.03    0.00     0.23     0.00     7.95     0.00    3.36   0.88   0.00
dm-2              0.00     0.00    0.09    6.44     1.47    52.25     8.23     0.51   78.08   1.00   0.65

[root@15090279host linux-2.6.32]# cd /dev/mapper/
[root@15090279host mapper]# ls -l
total 0
crw-rw---- 1 root root 10, 58 Jun 19 00:10 control
lrwxrwxrwx 1 root root      7 Jun 19 00:10 VolGroup-lv_home -> ../dm-2
lrwxrwxrwx 1 root root      7 Jun 19 00:10 VolGroup-lv_opt -> ../dm-1
lrwxrwxrwx 1 root root      7 Jun 19 00:10 VolGroup-lv_root -> ../dm-0

ls -l
total 0
lrwxrwxrwx 1 root root 7 Jun 19 00:10 lv_home -> ../dm-2
lrwxrwxrwx 1 root root 7 Jun 19 00:10 lv_opt -> ../dm-1
lrwxrwxrwx 1 root root 7 Jun 19 00:10 lv_root -> ../dm-0
[root@15090279host VolGroup]# pwd
/dev/VolGroup

best practice:

VG shoud reserve a number of space for space extend(emergency, or normal).

转载于:https://blog.51cto.com/dannyswallow/1790689

系统重启后 sda sdb顺序变化 pv vg lv dm相关推荐

  1. 计算机重启恢复到推荐分辨率,win10系统重启后分辨率总是出现变化的还原方法...

    有关win10系统重启后分辨率总是出现变化的操作方法想必大家有所耳闻.但是能够对win10系统重启后分辨率总是出现变化进行实际操作的人却不多.其实解决win10系统重启后分辨率总是出现变化的问题也不是 ...

  2. 重启计算机桌面出现system,win10系统电脑重启后桌面图标顺序乱了的解决方法

    很多小伙伴都遇到过win10系统电脑重启后桌面图标顺序乱了的困惑吧,一些朋友看过网上零散的win10系统电脑重启后桌面图标顺序乱了的处理方法,并没有完完全全明白win10系统电脑重启后桌面图标顺序乱了 ...

  3. 重启计算机设的桌面背景就没了,桌面壁纸无法保存怎么办?Win7系统重启后不保存桌面背景解决方法...

    今天一网友咨询小编称自己设置了电脑桌面背景图片,但是电脑重启后不保存桌面背景,又还原至之前的桌面背景,遇到桌面壁纸无法保存怎么办?针对这个问题,装机之家小编分享一下Win7系统重启后不保存桌面背景解决 ...

  4. Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法

    Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法 参考文章: (1)Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法 (2)https://www.cn ...

  5. ubuntu系统重启后桌面分辨率减小的原因及解决方法

    我的情况是:使用命令 nvidia-smi 进行验证,如果出现链接不成功,说明是驱动除了问题: 根据以下教程重新安装后,问题解决了. ubuntu16.04装机1:安装NVIDIA显卡驱动(下载.ru ...

  6. Wincc系统重启后保持内部变量的值不变的设置

    软件版本:Wincc 7.4SP1 操作系统:Windows7 问题描述 需要在wincc中动态修改某些参数,希望设置一些内部变量作为中间变量,但运行中修改过的参数在系统重启后会丢失,该如何在输入后保 ...

  7. 解决win7系统重启后ip丢失问题,即每次电脑重启都要重新设置ip地址,重启后ip地址没了

    解决win7系统重启后ip丢失问题,即每次电脑重启都要重新设置ip地址,重启后ip地址没了 参考文章: (1)解决win7系统重启后ip丢失问题,即每次电脑重启都要重新设置ip地址,重启后ip地址没了 ...

  8. 关于win10系统重启后图标自动排序问题的解决方案

    关于win10系统重启后图标自动排序问题的解决方案 文章目录 关于win10系统重启后图标自动排序问题的解决方案 前言 解决方案 总结 前言 本人学的是电子信息专业,下载的软件和文档很多,若采用win ...

  9. 海康服务器系统装完重启转圈蓝屏,win10 1903系统重启后一直在转圈无法正常启动的解决方法...

    有不少用户升级到win10 1903系统之后,发现关机重启之后,一直在转圈无法正常启动,遇到这样的问题该怎么办呢,接下来给大家讲解一下win10 1903系统重启后一直在转圈无法正常启动的解决方法吧. ...

最新文章

  1. 2022-2028年中国电熔镁行业市场研究及发展趋势分析报告
  2. 深信服副总裁张开翼:随需应变的IT新架构
  3. 第六十二期:看完这篇还不了解Nginx,那我就哭了!
  4. 论文浅尝 | 图神经网络综述:方法及应用
  5. 从0开始做Windows Phone 7开发
  6. db2 mysql oracle,五大主流数据库比较 DB2 Oracle MySQL SyBase SQLServer)
  7. Spring Boot核心注解讲解
  8. 中文文档列表 - Oracle Database (文档 ID 1533057.1)
  9. Linux中的for循环
  10. Pulsar较Kafka的优势
  11. ISA Server 2006速战速决实验指南(7) 创建元素-网络对象
  12. 【TSP】基于matlab遗传和模拟退火算法求解旅行商问题【含Matlab源码 696期】
  13. 为程序界面添加滑动条
  14. python中的cd是什么意思_cd是什么意思 如果learnPython放在其它盘内该如果解决
  15. 【云原生-K8s】cka认证2022年12月最新考题及指南
  16. MySQL基础 - 数据类型
  17. ei计算机相关 小木从,怀念楼讲心那棵小木钩瞒
  18. 【Python函数综合实例】
  19. mac java 更新_mac版java怎么更新升级 mac版java更新升级方法
  20. tensorflow离线安装

热门文章

  1. 哪个牌子的护眼台灯比较好?2022秋季最佳护眼灯推荐
  2. ubuntu更换镜像源——全面讲解
  3. 利用Python做简单的数据可视化2【二手房数据】
  4. Go语言圣经 - 第10章 包和工具 - 10.7 工具
  5. 如何编写优秀的测试用例,建议收藏和转发
  6. Spire.XLS for Java 12.11.8 Crack
  7. 带你走出计算机安全防范的六个误区
  8. linux hana 版本查询,通过hdblcm更新HANA组件版本
  9. hackinglab-脚本关5——逗比验证码第一期
  10. 如何将数据传至服务器系统,怎样将数据传至云服务器