经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
【Linux】LVM逻辑卷管理和RAID
来源:cnblogs  作者:ToMrYuTao  时间:2019/4/11 8:56:57  对本文有异议
LVM概述:
  是对磁盘分区进行管理的一种机制
  是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。
  屏蔽了底层磁盘布局,便于动态调整磁盘容量
  相对传统分区方式的有下列优点
    ·空间利用率高:硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间
    ·可以在线扩展容量:文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求
    ·文件系统建立在LVM上,可以跨分区,方便使用
    ·可随意定义逻辑卷卷标
    
注:/boot分区用于存放引导文件,不能应用LVM机制
 
LVM机制的基本概念:
  PV(Physical Volume,物理卷)
    处于LVM最底层,可以是整个硬盘或使用fdisk等工具建立的普通分区,包括许多默认4MB大小的PE(Physical Extents,基本单元),PE是PV中可以用于分配的最小存储单元
  VG(Volume Group,卷组)
    是一个或多个物理卷组合而成的整体,是建立在PV之上的。同一VG中所有PV的PE大小应该相同,当VG被创建后,我们才能正常查看PE的数量 。
  LV(Logical Volume,逻辑卷)
    从卷组中分割出的一块空间,它是建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。其实LV就是由PE组成的,不过在LV里面这些PE叫做LE。
  LE(Logical Extents)
    LE是LV中可以用于分配的最小存储单元,与PE大小相同并一一对应
 
LVM管理命令:
    
 
建立命令的方法:
  ·pvcreate 设备名
  ·vgcreate 卷组名 物理卷名1 物理卷名2
  ·lvcreate -L 大小 -n 逻辑卷名 卷组名
 
LVM应用实例:
  公司的邮件服务器由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷,挂载到“/mail”目录专门用于存放邮件数据
    1. 转化物理卷
      使用fdisk命令规划两个分区,类型设置为“8e”
        /dev/sdb1、/dev/sdc1
      使用pvcreate命令转换上述分区为物理卷
  1. [root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"
  2. /dev/sdb1 1 9660 77593918+ 8e Linux LVM
  3. /dev/sdc1 1 9660 77593918+ 8e Linux LVM

      ↑正确分区结果

 
  2. 创建卷组
    使用vgcreate命令创建卷组mail_store
    包括物理卷:/dec/sdb1、/dev/sdc1
  1. [root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1
  2.   Volume group "mail_store" successfully created

   

  3. 创建逻辑卷
    使用lvcreate命令创建逻辑卷 mail
    从卷组mail_store上划出60GB空间
    使用mkfs命令创建ext4文件系统
  1. [root@localhost ~]# lvcreate -L 60G -n mail mail_store
  2. /dev/cdrom: open failed: Read-only file system
  3. Logical volume "mail" created
  4. [root@localhost ~]# mkfs -t ext3 /dev/mail_store/mail
  5. ……

  

 
推荐步骤:
  PV→VG→LV→格式化,挂载使用文件系统
  1. [root@localhost ~]# pvcreate /dev/sdb
  2. Physical volume "/dev/sdb" successfully created
  3. [root@localhost ~]# pvcreate /dev/sdc
  4. Physical volume "/dev/sdc" successfully created
  5. [root@localhost ~]# pvdisplay
  6. "/dev/sdb" is a new physical volume of "100.00 GiB"
  7. --- NEW Physical volume ---
  8. PV Name /dev/sdb
  9. VG Name
  10. PV Size 100.00 GiB
  11. Allocatable NO
  12. PE Size 0
  13. Total PE 0
  14. Free PE 0
  15. Allocated PE 0
  16. PV UUID mBETMZ-d9Nh-AEr0-OyXO-h6N7-Dw2y-UqKAq4
  17. "/dev/sdc" is a new physical volume of "200.00 GiB"
  18. --- NEW Physical volume ---
  19. PV Name /dev/sdc
  20. VG Name
  21. PV Size 200.00 GiB
  22. Allocatable NO
  23. PE Size 0
  24. Total PE 0
  25. Free PE 0
  26. Allocated PE 0
  27. PV UUID vvp3Kg-UcbH-imNJ-Mwjl-asAz-5FM1-q8hj98
  28. [root@localhost ~]# pvs
  29. PV VG Fmt Attr PSize PFree
  30. /dev/sdb lvm2 ---- 100.00g 100.00g
  31. /dev/sdc lvm2 ---- 200.00g 200.00g
  32. [root@localhost ~]# vgcreate mail_vg /dev/sdb
  33. Volume group "mail_vg" successfully created
  34. [root@localhost ~]# vgdisplay
  35. --- Volume group ---
  36. VG Name mail_vg
  37. System ID
  38. Format lvm2
  39. Metadata Areas 1
  40. Metadata Sequence No 1
  41. VG Access read/write
  42. VG Status resizable
  43. MAX LV 0
  44. Cur LV 0
  45. Open LV 0
  46. Max PV 0
  47. Cur PV 1
  48. Act PV 1
  49. VG Size 100.00 GiB
  50. PE Size 4.00 MiB
  51. Total PE 25599
  52. Alloc PE / Size 0 / 0
  53. Free PE / Size 25599 / 100.00 GiB
  54. VG UUID 0HEnBL-7RV9-CkxU-dyD3-zAqB-ra0o-UkqxZF
  55. [root@localhost ~]# lvcreate -L 150G -n mail_lv mail_vg
  56. Volume group "mail_vg" has insufficient free space (25599 extents): 38400 required.
  57. [root@localhost ~]# lvcreate -L 50G -n mail_lv mail_vg
  58. Logical volume "mail_lv" created.
  59. [root@localhost ~]# lvdisplay
  60. --- Logical volume ---
  61. LV Path /dev/mail_vg/mail_lv
  62. LV Name mail_lv
  63. VG Name mail_vg
  64. LV UUID wgNvn6-WEJh-FfZA-TZAS-lfrC-gWed-nxMRzw
  65. LV Write Access read/write
  66. LV Creation host, time localhost.localdomain, 2019-01-06 17:42:56 +0800
  67. LV Status available
  68. # open 0
  69. LV Size 50.00 GiB
  70. Current LE 12800
  71. Segments 1
  72. Allocation inherit
  73. Read ahead sectors auto
  74. - currently set to 256
  75. Block device 253:0
  76. [root@localhost ~]# ll /dev/mail_vg/mail_lv
  77. lrwxrwxrwx. 1 root root 7 Jan 6 17:42 /dev/mail_vg/mail_lv -> ../dm-0
  78. [root@localhost ~]# ll /dev/dm*
  79. brw-rw----. 1 root disk 253, 0 Jan 6 17:42 /dev/dm-0
  80. [root@localhost ~]# ll /dev/mapper/
  81. total 0
  82. crw-rw----. 1 root root 10, 58 Jan 6 17:35 control
  83. lrwxrwxrwx. 1 root root 7 Jan 6 17:42 mail_vg-mail_lv -> ../dm-0
  84. [root@localhost ~]# pvs
  85. PV VG Fmt Attr PSize PFree
  86. /dev/sdb mail_vg lvm2 a--u 100.00g 50.00g
  87. /dev/sdc lvm2 ---- 200.00g 200.00g
  88. [root@localhost ~]# vgs
  89. VG #PV #LV #SN Attr VSize VFree
  90. mail_vg 1 1 0 wz--n- 100.00g 50.00g
  91. [root@localhost ~]# lvs
  92. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  93. mail_lv mail_vg -wi-a----- 50.00g
  94. [root@localhost ~]# mkfs.ext4 /dev/mapper/mail_vg-mail_lv
  95. mke2fs 1.41.12 (17-May-2010)
  96. Filesystem label=
  97. OS type: Linux
  98. Block size=4096 (log=2)
  99. Fragment size=4096 (log=2)
  100. Stride=0 blocks, Stripe width=0 blocks
  101. 3276800 inodes, 13107200 blocks
  102. 655360 blocks (5.00%) reserved for the super user
  103. First data block=0
  104. Maximum filesystem blocks=4294967296
  105. 400 block groups
  106. 32768 blocks per group, 32768 fragments per group
  107. 8192 inodes per group
  108. Superblock backups stored on blocks:
  109. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  110. 4096000, 7962624, 11239424
  111.  
  112. Writing inode tables: done
  113. Creating journal (32768 blocks): done
  114. Writing superblocks and filesystem accounting information: done
  115.  
  116. This filesystem will be automatically checked every 29 mounts or
  117. 180 days, whichever comes first. Use tune2fs -c or -i to override.
  118. [root@localhost ~]# mkdir /mail
  119. [root@localhost ~]# mount /dev/mail_vg/mail_lv /mail/
  120. [root@localhost ~]# mount
  121. /dev/sda3 on / type ext4 (rw)
  122. proc on /proc type proc (rw)
  123. sysfs on /sys type sysfs (rw)
  124. devpts on /dev/pts type devpts (rw,gid=5,mode=620)
  125. tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
  126. /dev/sda1 on /boot type ext4 (rw)
  127. none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
  128. /dev/mapper/mail_vg-mail_lv on /mail type ext4 (rw)

  

  设置开机实现自动挂载:
  
  1. [root@localhost ~]# blkid /dev/mapper/mail_vg-mail_lv
  2. /dev/mapper/mail_vg-mail_lv: UUID="8ab67eeb-0b5a-43e3-b940-bef0f14bf1b1" TYPE="ext4"
  3. [root@localhost ~]# vim /etc/fstab
  4.  
  5.  
  6. #
  7. # /etc/fstab
  8. # Created by anaconda on Fri Nov 2 22:37:22 2018
  9. #
  10. # Accessible filesystems, by reference, are maintained under '/dev/disk'
  11. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
  12. #
  13. UUID=c42ec363-df57-48b3-89a9-0685544602bd / ext4 defaults 1 1
  14. UUID=27ab8d75-5b06-42e4-b0b4-0cb2376e9ea4 /boot ext4 defaults 1 2
  15. UUID=b8bee5a5-ea40-476a-98c3-250707895638 swap swap defaults 0 0
  16. tmpfs /dev/shm tmpfs defaults 0 0
  17. devpts /dev/pts devpts gid=5,mode=620 0 0
  18. sysfs /sys sysfs defaults 0 0
  19. proc /proc proc defaults 0 0
  20. UUID=8ab67eeb-0b5a-43e3-b940-bef0f14bf1b1 /mail ext4 defaults 0 0
  21. ~

    设置完成保存退出

 
 
调整LV大小:
  调整逻辑卷大小命令
    lvextend -L +大小 /dev/卷组名/逻辑卷名
    lvresize -L +/-大小 /dev/卷组名/逻辑卷名
  如果要增大逻辑卷,先用增大逻辑卷,再用resize2fs增大文件系统
  可以在线增大逻辑卷
 
  如果要缩小逻辑卷,先用resizefs缩小文件系统再缩小逻辑卷
  必须先卸载文件系统
  步骤:
    1、查看文件系统已用空间
    2、卸载文件系统
    3、强制检查文件系统,确保文件系统处于一致性状态
    4、缩小文件系统 resize2fs
    5、缩小lv
    6、挂载文件系统
  注意:lv和文件系统的大小要一致
 
  调整VG大小:
  卷组扩容
    vgextend 卷组名 物理卷
  卷组收缩
  查看卷组包含的PV
  命令:pvs
    vgreduce 卷组名 物理卷

给LV扩容:
  增加的空间来自LV所在的VG的空闲空间
  Q1:如果某一块磁盘或者分区故障了如何将数据快速转移到相同卷组的其他空间去?
步骤:
  1、通过pvmove命令转移空间数据
  2、通过vgreduce命令将坏的磁盘或者分区从卷组里面移除。
  3、通过pvremove命令将坏的磁盘或者分区从系统中删除掉。

千万不要在没有关闭LVM的情况下删除分区
  正确关闭LVM的步骤
  umount卸载lvm文件系统
  清除/etc/fstab中LVM的挂载记录
  lvremove删除逻辑卷
  vgremove删除卷组
  pvremove删除物理卷
  fdisk修改分区ID
 

RAID概述:
  RAID廉价冗余磁盘阵列
  硬件RAID
    速度快,性能好,支持热插拔
    需专门的RAID磁盘阵列卡,价格昂贵,还需配合相应的驱动
  软件RAID
    使用mdadm软件仿真磁盘阵列功能
    无需专门硬件,性价比较好
    设备文件标识是/dev/md0
  根据可靠性、性能和成本对RAID划分了等级
    RAID0、RAID1、RAID5、RAID6、RAID10、RAID01

原文链接:http://www.cnblogs.com/qq1148932219/p/10684982.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号