zoukankan      html  css  js  c++  java
  • CentOS LVM逻辑卷管理

    CentOS 挂载(U盘NTFS格式,新硬盘,增加交换分区,扩展根分区等)中扩展根分区部分用的就是LVM逻辑卷管理来进行扩展的。

    1、为什么会有逻辑卷管理

    传统磁盘管理是直接对硬盘分区进行访问,你如果磁盘不够了,再加一块硬盘,然后分区格式化,系统和应用直接对分区后的硬盘直接访问。

    这个访问是独立,脱离原有目录系统的,比如在windows系统里经常出现C盘不够了,当时分区没想到windows会如此臃肿,要解决这个问题,

    只能重新挂硬盘,借助第三方软件来动态的、非在线式的调整,而且,非常慢。

    而LVM逻辑卷管理,可以动态的、实时的实现这个过程,非常快。LVM能做到这点,是LVM在磁盘上抽象了一层管理系统,系统和应用已经不

    直接访问磁盘,而是访问这个抽象层,也就是LVM里的逻辑卷。

    2、常用的LVM命令

     
      物理卷  
      卷组     逻辑卷  
      扫描     pvscan(pvs)     vgscan(vgs)     lvscan(lvs)  
      创建   pvcreate   vgcreate   lvcreate
      显示   pvdisplay   vgdisplay   lvdisplay
      删除   pvremove   vgremove   lvremove
      扩展     vgextend   lvextend
      缩减     vgreduce   lvreduce

    3、逻辑卷示例

    3.1、创建物理卷

    查看目前物理卷
    [root@bigdata-senior01 ~]# pvs
      PV         VG     Fmt  Attr PSize   PFree
      /dev/sda2  centos lvm2 a--  <19.00g    0 
      /dev/sdb3  centos lvm2 a--  <15.00g    0 
    
    查看目前磁盘情况,这个命令比较多,这里用lsblk直观一些
    [root@bigdata-senior01 ~]# lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   20G  0 disk 
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   19G  0 part 
      ├─centos-root 253:0    0   32G  0 lvm  /
      └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
    sdb               8:16   0   20G  0 disk 
    ├─sdb1            8:17   0    2G  0 part /backup
    ├─sdb2            8:18   0    3G  0 part [SWAP]
    └─sdb3            8:19   0   15G  0 part 
      └─centos-root 253:0    0   32G  0 lvm  /
    sdc               8:32   0    1G  0 disk 
    sdd               8:48   0    1G  0 disk 
    sde               8:64   0    1G  0 disk 
    sdf               8:80   0    1G  0 disk 
    sdg               8:96   0    1G  0 disk 
    sr0              11:0    1  4.2G  0 rom  
    
    把sdc,sdd,sde三个磁盘都创建成物理卷
    [root@bigdata-senior01 ~]# pvcreate /dev/sdc /dev/sdd /dev/sde
      Physical volume "/dev/sdc" successfully created.
      Physical volume "/dev/sdd" successfully created.
      Physical volume "/dev/sde" successfully created.
    
    [root@bigdata-senior01 ~]# pvs
      PV         VG     Fmt  Attr PSize   PFree
      /dev/sda2  centos lvm2 a--  <19.00g    0 
      /dev/sdb3  centos lvm2 a--  <15.00g    0 
      /dev/sdc          lvm2 ---    1.00g 1.00g
      /dev/sdd          lvm2 ---    1.00g 1.00g
      /dev/sde          lvm2 ---    1.00g 1.00g

    3.2、创建新卷组esdata

    查看目前卷组情况
    [root@bigdata-senior01 ~]# vgs
      VG     #PV #LV #SN Attr   VSize  VFree
      centos   2   2   0 wz--n- 33.99g    0 
    
    创建esdata卷组
    [root@bigdata-senior01 ~]# vgcreate esdata /dev/sdc /dev/sdd /dev/sde
      Volume group "esdata" successfully created
    
    再次查看
    [root@bigdata-senior01 ~]# vgs
      VG     #PV #LV #SN Attr   VSize  VFree 
      centos   2   2   0 wz--n- 33.99g     0 
      esdata   3   0   0 wz--n- <2.99g <2.99g

    3.3、创建逻辑卷,800M大小

    [root@bigdata-senior01 ~]# lvs
      LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao---- 31.99g                                                    
      swap centos -wi-ao----  2.00g                                                    
    
    从esdata上创建名字为vo_esData的逻辑卷,800M
    [root@bigdata-senior01 ~]# lvcreate -n vo_esData -L 800M esdata
      Logical volume "vo_esData" created.
    
    [root@bigdata-senior01 ~]# lvs
      LV        VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root      centos -wi-ao----  31.99g                                                    
      swap      centos -wi-ao----   2.00g                                                    
      vo_esData esdata -wi-a----- 800.00m 

    3.4、格式化逻辑卷vo_esData

    查看逻辑卷路径
    [root@bigdata-senior01 ~]# lvdisplay --- Logical volume --- LV Path /dev/esdata/vo_esData LV Name vo_esData VG Name esdata LV UUID tMu3LD-Xxyy-10b4-Nbvn-SFe9-hn9W-kdFlDV LV Write Access read/write LV Creation host, time bigdata-senior01.home.com, 2019-01-17 15:39:59 +0800 LV Status available # open 0 LV Size 800.00 MiB Current LE 200 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2
    格式化成ext4格式,为啥不是xfs格式?因为xfs缩减不方便 [root@bigdata-senior01 ~]# mkfs.ext4 /dev/esdata/vo_esData mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 51296 inodes, 204800 blocks 10240 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=209715200 7 block groups 32768 blocks per group, 32768 fragments per group 7328 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成

    3.5、挂载

    [root@bigdata-senior01 /]# mount /dev/esdata/vo_esData /mnt/esdata
    [root@bigdata-senior01 /]# ls /mnt/esdata
    lost+found
    [root@bigdata-senior01 /]# df -h
    文件系统                      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root        32G  4.2G   28G   13% /
    devtmpfs                      901M     0  901M    0% /dev
    tmpfs                         912M     0  912M    0% /dev/shm
    tmpfs                         912M  8.6M  904M    1% /run
    tmpfs                         912M     0  912M    0% /sys/fs/cgroup
    /dev/sda1                    1014M  143M  872M   15% /boot
    /dev/sdb1                     2.0G   67M  2.0G    4% /backup
    tmpfs                         183M     0  183M    0% /run/user/1004
    /dev/mapper/esdata-vo_esData  772M  1.6M  714M    1% /mnt/esdata

    3.6、扩展逻辑卷,把刚才创建的800M的逻辑卷扩展到1.5G,只要卷组里还有足够的资源,就可以扩展逻辑卷。

    如果卷组的空间不够,还可以再加硬盘创建物理卷,然后,把物理卷加入到对应的卷组里,保证卷组的资源。

    [root@bigdata-senior01 /]# vgs
      VG     #PV #LV #SN Attr   VSize  VFree 
      centos   2   2   0 wz--n- 33.99g     0 
      esdata   3   1   0 wz--n- <2.99g <2.21g #卷组还有2.21GB的空间可用
    
    [root@bigdata-senior01 /]# vgdisplay
      --- Volume group ---
      VG Name               esdata
      System ID             
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  2
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                3
      Act PV                3
      VG Size               <2.99 GiB
      PE Size               4.00 MiB
      Total PE              765
      Alloc PE / Size       200 / 800.00 MiB
      Free  PE / Size       565 / <2.21 GiB #卷组还有2.21GB的空间可用
      VG UUID               HhfZYk-xAbw-oYGP-S2bc-r53K-CxUO-ds2NUi
    
    [root@bigdata-senior01 /]# lvs
      LV        VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root      centos -wi-ao----  31.99g                                                    
      swap      centos -wi-ao----   2.00g                                                    
      vo_esData esdata -wi-ao---- 800.00m                                                    
    [root@bigdata-senior01 /]# lvextend -L 1.5G /dev/esdata/vo_esData
      Size of logical volume esdata/vo_esData changed from 800.00 MiB (200 extents) to 1.50 GiB (384 extents).
      Logical volume esdata/vo_esData successfully resized.
    [root@bigdata-senior01 /]# lvs
      LV        VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root      centos -wi-ao---- 31.99g                                                    
      swap      centos -wi-ao----  2.00g                                                    
      vo_esData esdata -wi-ao----  1.50g   
    
    [root@bigdata-senior01 /]# vgs
      VG     #PV #LV #SN Attr   VSize  VFree 
      centos   2   2   0 wz--n- 33.99g     0 
      esdata   3   1   0 wz--n- <2.99g <1.49g

    卸载设备,然后才能拉伸文件系统容量
    [root@bigdata-senior01 /]# umount /dev/esdata/vo_esData
    [root@bigdata-senior01 /]# e2fsck /dev/esdata/vo_esData
    e2fsck 1.42.9 (28-Dec-2013)
    /dev/esdata/vo_esData: clean, 11/51296 files, 7726/204800 blocks
    [root@bigdata-senior01 /]# resize2fs /dev/esdata/vo_esData
    resize2fs 1.42.9 (28-Dec-2013)
    请先运行 'e2fsck -f /dev/esdata/vo_esData'.

    [root@bigdata-senior01 /]# e2fsck -f /dev/esdata/vo_esData
    e2fsck 1.42.9 (28-Dec-2013)
    第一步: 检查inode,块,和大小
    第二步: 检查目录结构
    第3步: 检查目录连接性
    Pass 4: Checking reference counts
    第5步: 检查簇概要信息
    /dev/esdata/vo_esData: 11/51296 files (0.0% non-contiguous), 7726/204800 blocks
    [root@bigdata-senior01 /]# resize2fs /dev/esdata/vo_esData
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/esdata/vo_esData to 393216 (4k) blocks.
    The filesystem on /dev/esdata/vo_esData is now 393216 blocks long.

    [root@bigdata-senior01 /]# mount /dev/esdata/vo_esData /mnt/esdata
    [root@bigdata-senior01 /]# df -h
    文件系统                      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root        32G  4.2G   28G   13% /
    devtmpfs                      901M     0  901M    0% /dev
    tmpfs                         912M     0  912M    0% /dev/shm
    tmpfs                         912M  8.6M  904M    1% /run
    tmpfs                         912M     0  912M    0% /sys/fs/cgroup
    /dev/sda1                    1014M  143M  872M   15% /boot
    /dev/sdb1                     2.0G   67M  2.0G    4% /backup
    tmpfs                         183M     0  183M    0% /run/user/1004
    /dev/mapper/esdata-vo_esData  1.5G  2.4M  1.4G    1% /mnt/esdata

    3.7、缩小逻辑卷容量

    [root@bigdata-senior01 ~]# umount /dev/esdata/vo_esData
    
    [root@bigdata-senior01 ~]# e2fsck -f /dev/esdata/vo_esData 
    e2fsck 1.42.9 (28-Dec-2013)
    第一步: 检查inode,块,和大小
    第二步: 检查目录结构
    第3步: 检查目录连接性
    Pass 4: Checking reference counts
    第5步: 检查簇概要信息
    /dev/esdata/vo_esData: 11/87936 files (0.0% non-contiguous), 10228/393216 blocks
    
    #减少文件系统到1G左右
    [root@bigdata-senior01 ~]# resize2fs /dev/esdata/vo_esData 1G
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/esdata/vo_esData to 262144 (4k) blocks.
    The filesystem on /dev/esdata/vo_esData is now 262144 blocks long.
    
    #减少逻辑卷到1G,可能会损坏数据
    [root@bigdata-senior01 ~]# lvreduce -L 1G /dev/esdata/vo_esData 
      WARNING: Reducing active logical volume to 1.00 GiB.
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce esdata/vo_esData? [y/n]: y
      Size of logical volume esdata/vo_esData changed from 1.50 GiB (384 extents) to 1.00 GiB (256 extents).
      Logical volume esdata/vo_esData successfully resized.
    
    [root@bigdata-senior01 ~]# mount /dev/esdata/vo_esData /mnt/esdata
    [root@bigdata-senior01 ~]# df -h
    文件系统                      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root        32G  4.2G   28G   13% /
    devtmpfs                      901M     0  901M    0% /dev
    tmpfs                         912M     0  912M    0% /dev/shm
    tmpfs                         912M  8.7M  904M    1% /run
    tmpfs                         912M     0  912M    0% /sys/fs/cgroup
    /dev/sda1                    1014M  143M  872M   15% /boot
    /dev/sdb1                     2.0G   67M  2.0G    4% /backup
    tmpfs                         183M     0  183M    0% /run/user/1004
    /dev/mapper/esdata-vo_esData  994M  2.0M  925M    1% /mnt/esdata

    3.8、逻辑卷里硬盘出问题怎么办?假设上例的/dev/sdc磁盘出现问题,如何处理?

    先查看物理卷情况,/dev/sdc损坏的盘有数据,需要先把数据迁移
    [root@bigdata-senior01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb3 centos lvm2 a-- <15.00g 0 /dev/sdc esdata lvm2 a-- 1020.00m 0 /dev/sdd esdata lvm2 a-- 1020.00m 1016.00m /dev/sde esdata lvm2 a-- 1020.00m 1020.00m

    迁移/dev/sdc数据到/dev/sde,确保目标盘空间够用 [root@bigdata-senior01 ~]# pvmove /dev/sdc /dev/sde /dev/sdc: Moved: 1.18% /dev/sdc: Moved: 100.00%

    迁移完成 [root@bigdata-senior01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb3 centos lvm2 a-- <15.00g 0 /dev/sdc esdata lvm2 a-- 1020.00m 1020.00m /dev/sdd esdata lvm2 a-- 1020.00m 1016.00m /dev/sde esdata lvm2 a-- 1020.00m 0

    从卷组esdata里移除 /dev/sdc [root@bigdata-senior01 ~]# vgreduce esdata /dev/sdc Removed "/dev/sdc" from volume group "esdata" [root@bigdata-senior01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb3 centos lvm2 a-- <15.00g 0 /dev/sdc lvm2 --- 1.00g 1.00g /dev/sdd esdata lvm2 a-- 1020.00m 1016.00m /dev/sde esdata lvm2 a-- 1020.00m 0 [root@bigdata-senior01 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 2 2 0 wz--n- 33.99g 0 esdata 2 1 0 wz--n- 1.99g 1016.00m

    移除物理卷/dev/sdc [root@bigdata-senior01 ~]# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped. [root@bigdata-senior01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb3 centos lvm2 a-- <15.00g 0 /dev/sdd esdata lvm2 a-- 1020.00m 1016.00m /dev/sde esdata lvm2 a-- 1020.00m 0

    3.9、修复的硬盘重新装回去(或者是一块新的,旧的已经安息)

    [root@bigdata-senior01 ~]# lsblk
    NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda                  8:0    0   20G  0 disk 
    ├─sda1               8:1    0    1G  0 part /boot
    └─sda2               8:2    0   19G  0 part 
      ├─centos-root    253:0    0   32G  0 lvm  /
      └─centos-swap    253:1    0    2G  0 lvm  [SWAP]
    sdb                  8:16   0   20G  0 disk 
    ├─sdb1               8:17   0    2G  0 part /backup
    ├─sdb2               8:18   0    3G  0 part [SWAP]
    └─sdb3               8:19   0   15G  0 part 
      └─centos-root    253:0    0   32G  0 lvm  /
    sdc                  8:32   0    1G  0 disk 
    sdd                  8:48   0    1G  0 disk 
    └─esdata-vo_esData 253:2    0    1G  0 lvm  /mnt/esdata
    sde                  8:64   0    1G  0 disk 
    └─esdata-vo_esData 253:2    0    1G  0 lvm  /mnt/esdata
    sdf                  8:80   0    1G  0 disk 
    sdg                  8:96   0    1G  0 disk 
    sr0                 11:0    1  4.2G  0 rom  

    重新把/dev/sdc创建物理卷 [root@bigdata-senior01 ~]# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.
    查看 [root@bigdata-senior01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb3 centos lvm2 a-- <15.00g 0 /dev/sdc lvm2 --- 1.00g 1.00g /dev/sdd esdata lvm2 a-- 1020.00m 1016.00m /dev/sde esdata lvm2 a-- 1020.00m 0

    扩充卷组esdata [root@bigdata-senior01 ~]# vgextend esdata /dev/sdc Volume group "esdata" successfully extended
    [root@bigdata-senior01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb3 centos lvm2 a-- <15.00g 0 /dev/sdc esdata lvm2 a-- 1020.00m 1020.00m /dev/sdd esdata lvm2 a-- 1020.00m 1016.00m /dev/sde esdata lvm2 a-- 1020.00m 0
    [root@bigdata-senior01 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 2 2 0 wz--n- 33.99g 0 esdata 3 1 0 wz--n- <2.99g <1.99g

    逻辑卷根本不知道底层的硬盘已经换了一块。

     4.0、逻辑卷的磁盘需要分区标识吗?

    磁盘不分区就可以创建物理卷,但是我们依然可以用fdisk对磁盘进行分区标识,LVM的分区标识是8e,打上标识后,磁盘要转成普通磁盘使用需要重新分区,这也算一个安全手段。
    我们也可以把磁盘分区几个区后,对其中某几个区创建物理卷。

    5、删除逻辑卷

    [root@bigdata-senior01 ~]# df -h
    文件系统                      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root        32G  4.2G   28G   13% /
    devtmpfs                      901M     0  901M    0% /dev
    tmpfs                         912M     0  912M    0% /dev/shm
    tmpfs                         912M  8.7M  904M    1% /run
    tmpfs                         912M     0  912M    0% /sys/fs/cgroup
    /dev/sda1                    1014M  143M  872M   15% /boot
    /dev/sdb1                     2.0G   67M  2.0G    4% /backup
    tmpfs                         183M     0  183M    0% /run/user/1004
    /dev/mapper/esdata-vo_esData  994M  2.0M  925M    1% /mnt/esdata
    
    其实 /dev/esdata/vo_esData和/dev/mapper/esdata-vo_esData都是链接文件
    [root@bigdata-senior01 ~]# ll /dev/esdata/vo_esData 
    lrwxrwxrwx 1 root root 7 1月  17 17:18 /dev/esdata/vo_esData -> ../dm-2
    [root@bigdata-senior01 ~]# ll /dev/mapper/esdata-vo_esData 
    lrwxrwxrwx 1 root root 7 1月  17 17:18 /dev/mapper/esdata-vo_esData -> ../dm-2
    
    卸载文件系统 [root@bigdata-senior01 ~]# umount /dev/esdata/vo_esData
    移除逻辑卷 [root@bigdata-senior01 ~]# lvremove /dev/esdata/vo_esData Do you really want to remove active logical volume esdata/vo_esData? [y/n]: y Logical volume "vo_esData" successfully removed

    移除卷组 [root@bigdata-senior01 ~]# vgremove esdata Volume group "esdata" successfully removed

    移除物理卷 [root@bigdata-senior01 ~]# pvremove /dev/sdc /dev/sdd /dev/sde Labels on physical volume "/dev/sdc" successfully wiped. Labels on physical volume "/dev/sdd" successfully wiped. Labels on physical volume "/dev/sde" successfully wiped.
  • 相关阅读:
    题解 LNOI2014 LCA
    题解 P3413 【SAC#1
    题解 P3372 【【模板】线段树 1】(珂朵莉树解法)
    题解 P2610 【[ZJOI2012]旅游】
    题解 CF911D 【Inversion Counting】
    题解 CF1037D 【Valid BFS?】
    bootstrap常用部件下载
    sql获取上月同期
    VSS配置
    SQL中的union,except,intersect用法
  • 原文地址:https://www.cnblogs.com/asker009/p/10282800.html
Copyright © 2011-2022 走看看