Linux中对lvm逻辑卷的管理

#########################基本概念#########################

==

  • pv ##物理卷
    被lv命令处理过的物理分区
  • vg ##物理卷组
    被组装到一起的物理卷
  • pe ##物理扩展块
    是整个LVM中的最小存储单位,LVM默认使用4MB的PE数据块
  • lvm ##逻辑卷
    直接使用逻辑设备,可以增大缩减并保持原有数据不变
    文件系统是否可以拉伸由文件系统决定
    xfs的文件系统不可以拉伸
    设备被拉伸或缩减文件系统要做出改变
    H 1M=1000k
    h 1M=1024k
    在原始容量不变时对设备的容量进行伸缩

    准备工作:
    新建分区,并且修改分区的标签为8e
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    查看系统中存在的设备
    在这里插入图片描述

1.lvm建立

1 .创建物理卷pv

watch -n 1 ‘pvs;echo ===;vgs;echo ===;lvs;echo ===;df -H /mnt’
监控lvm建立的过程以及/mnt/的变化
在这里插入图片描述
在这里插入图片描述
2 . 创建物理卷组 vg0

[root@server_sshd ~]# vgcreate vg0 /dev/vdb6
  Volume group "vg0" successfully created

注意:vgcreate 后不加任何参数表示使用默认的PE数据块,即4M,如果想要设置PE的大小可以使用
vgcreate -s xx vgname 设备名
-s :后面接PE的大小,单位可以是M,G,T(大小写都可以)

在这里插入图片描述

3 . 将设备加入到物理卷组

[root@server_sshd ~]# vgextend vg0 /dev/vdb7
  Volume group "vg0" successfully extended

在这里插入图片描述

  1. 划分逻辑卷lv0
[root@server_sshd ~]# lvcreate -L 200M -n lv0 vg0
  Logical volume "lv0" created
  • -L : 后面接容量,容量的单位可以是M,G,T等,这个数字必须是PE的倍数,若不符合,系统会自行计算最接近的容量
    -l: 后面接PE的个数,容量=PE大小*PE个数
    如此实验中的PE的大小时默认的4M,容量大小为200M,那么PE的个数就是50这是也可以使用命令
    lvcreate -l 50 -n lv0 vg0
    (-l和-L选择一个用即可,但都需要搭配-n使用)
    -n:后面接的是lv的名称

在这里插入图片描述
5 .格式化逻辑卷

[root@server_sshd ~]# mkfs.xfs /dev/vg0/lv0
meta-data=/dev/vg0/lv0           isize=256    agcount=4, agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

在这里插入图片描述
6. 挂载逻辑卷

[root@server_sshd ~]# mount /dev/vg0/lv0 /mnt/
[root@server_sshd ~]# df
Filesystem          1K-blocks    Used Available Use% Mounted on
/dev/vda1            10473900 3340804   7133096  32% /
devtmpfs               469332       0    469332   0% /dev
tmpfs                  484920      84    484836   1% /dev/shm
tmpfs                  484920   12840    472080   3% /run
tmpfs                  484920       0    484920   0% /sys/fs/cgroup
/dev/mapper/vg0-lv0    201388   10400    190988   6% /mnt

在这里插入图片描述

2.拉伸

  1. 表示拉伸到800M,lv的大小改变
    [root@server_sshd ~]# lvextend -L 800M /dev/vg0/lv0
    在这里插入图片描述
    在这里插入图片描述
    2 . 格式化文件系统,文件系统的大小发生改变
    [root@server_sshd ~]# xfs_growfs /dev/vg0/lv0

在这里插入图片描述
3. 要继续拉伸lv,但vg的剩余大小不够,新建设备
fdisk /dev/vdb
在这里插入图片描述
在这里插入图片描述
同步分区表
partprobe
在这里插入图片描述
加入到pv
[root@server_sshd ~]# pvcreate /dev/vdb8
Physical volume “/dev/vdb8” successfully created
在这里插入图片描述
4 . 加入到vg

[root@server_sshd ~]# vgextend vg0 /dev/vdb8
  Volume group "vg0" successfully extended

在这里插入图片描述
5. 拉伸lv到1500M,设备大小发生改变,文件系统大小不变

[root@server_sshd ~]# lvextend -L 1500M /dev/vg0/lv0
  Extending logical volume lv0 to 1.46 GiB
  Logical volume lv0 successfully resized

在这里插入图片描述
6. 格式化文件系统

[root@server_sshd ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=16, agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=204800, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 204800 to 384000

在这里插入图片描述

注:
xfs的文件系统不能缩减
ext4 文件系统可以缩减
设备拉伸相同
每个文件系统的拉伸不同
拉伸不需要卸载,但缩减需要卸载
检测设备数据容量
要缩减的设备为不闲置时要将设备上的数据移至别的闲置设备上

3.缩减

  1. 卸载设备,将文件系统格式化为ext4类型,因为xfs文件系统不支持缩减
[root@server_sshd ~]# mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
96000 inodes, 384000 blocks
19200 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

在这里插入图片描述
在这里插入图片描述
2. 再次挂载设备,df查看

[root@server_sshd ~]# mount /dev/vg0/lv0 /mnt/
[root@server_sshd ~]# df
Filesystem          1K-blocks    Used Available Use% Mounted on
/dev/vda1            10473900 3340228   7133672  32% /
devtmpfs               469332       0    469332   0% /dev
tmpfs                  484920      84    484836   1% /dev/shm
tmpfs                  484920   12824    472096   3% /run
tmpfs                  484920       0    484920   0% /sys/fs/cgroup
/dev/mapper/vg0-lv0   1479088    4512   1381392   1% /mnt

在这里插入图片描述

  1. 将设备拉伸到1800M,文件系统不同拉伸的方法相同
    格式化文件系统,格式化的方法不同
[root@server_sshd ~]# lvextend -L 1800M /dev/vg0/lv0
  Extending logical volume lv0 to 1.76 GiB
  Logical volume lv0 successfully resized
[root@server_sshd ~]# resize2fs /dev/vg0/lv0
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg0/lv0 is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg0/lv0 is now 460800 blocks long.

在这里插入图片描述
在这里插入图片描述

  1. 卸载设备,进行缩减前检测设备数据
[root@server_sshd ~]# umount /mnt/
[root@server_sshd ~]# e2fsck -f /dev/vg0/lv0
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv0: 11/120000 files (9.1% non-contiguous), 16862/460800 blocks

在这里插入图片描述
在这里插入图片描述
5. 格式化文件系统,重新挂载设备后将lv缩减到1000M
在这里插入图片描述
在这里插入图片描述

[root@server_sshd ~]# lvreduce -L 1000M /dev/vg0/lv0
  WARNING: Reducing active and open logical volume to 1000.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
  Reducing logical volume lv0 to 1000.00 MiB
  Logical volume lv0 successfully resized

在这里插入图片描述

  1. 若是直接缩减vdb8可以直接pvremove /dev/vdb8
    若是要缩减vdb7 需要先将vdb7的数据移动到vdb8

[root@server_sshd ~]# pvmove /dev/vdb7 /dev/vdb8
/dev/vdb7: Moved: 95.2%
/dev/vdb7: Moved: 100.0%
在这里插入图片描述
7. vg缩减vdb7
[root@server_sshd ~]# vgreduce vg0 /dev/vdb7
Removed “/dev/vdb7” from volume group “vg0”
在这里插入图片描述
8. pv中移除vdb7
[root@server_sshd ~]# pvremove /dev/vdb7
Labels on physical volume “/dev/vdb7” successfully wiped
在这里插入图片描述

注:
拉伸和缩减是两个相反的过程
拉伸是从物理卷到物理卷组再到逻辑卷最后到文件系统
缩减是先文件系统开始,在缩减逻辑卷,物理卷组最后缩减物理卷

4.lvm的快照

读的时母盘
写的时候往快照存放

  1. 母盘挂载的时候在挂载点目录新建3个文件
   [root@server_sshd ~]# touch /mnt/file{1..3}
    [root@server_sshd ~]# ls /mnt/
    file1  file2  file3  lost+found

在这里插入图片描述
2. 卸载母盘

[root@server_sshd ~]# umount /mnt/

在这里插入图片描述
3. 创建快照

[root@server_sshd mnt]# lvcreate -L 50M -n /dev/vg0/lv0_snap -s /dev/vg0/lv0
  Rounding up size to full physical extent 52.00 MiB
  Logical volume "lv0_snap" created

在这里插入图片描述
4. 挂载快照,查看文件删除文件

[root@server_sshd mnt]# mount /dev/vg0/lv0_snap /mnt/

在这里插入图片描述

[root@server_sshd ~]# ls /mnt/
file1  file2  file3  lost+found

在这里插入图片描述

[root@server_sshd ~]# rm -fr /mnt/*
[root@server_sshd ~]# ls /mnt/

在这里插入图片描述
5. 卸载快照,移除快照

[root@server_sshd ~]# umount /mnt/
[root@server_sshd ~]# lvremove /dev/vg0/lv0_snap
Do you really want to remove active logical volume lv0_snap? [y/n]: y
  Logical volume "lv0_snap" successfully removed

在这里插入图片描述
6. 再次建立快照,挂载后查看文件

[root@server_sshd ~]# lvcreate -L 50M -n /dev/vg0/lv0_snap -s /dev/vg0/lv0
  Rounding up size to full physical extent 52.00 MiB
  Logical volume "lv0_snap" created
[root@server_sshd ~]# mount /dev/vg0/lv0_snap /mnt/
[root@server_sshd ~]# ls /mnt/
file1  file2  file3  lost+found

在这里插入图片描述
在这里插入图片描述

注:
当快照存在时
对快照读的操作读的是母盘
对快照写是对快照本身进行操作

5.lvm的删除

  1. 卸载设备
    [root@server_sshd ~]# umount /mnt/
    在这里插入图片描述

  2. 删除快照

    [root@server_sshd ~]# lvremove /dev/vg0/lv0_snap
    Do you really want to remove active logical volume lv0_snap? [y/n]: y
    Logical volume “lv0_snap” successfully removed

在这里插入图片描述
3. 删除逻辑卷

[root@server_sshd ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0? [y/n]: y
  Logical volume "lv0" successfully removed

在这里插入图片描述
4. 删除物理卷组

[root@server_sshd ~]# vgremove vg0
  Volume group "vg0" successfully removed

在这里插入图片描述
5. 删除物理卷

[root@server_sshd ~]# pvremove /dev/vdb6
  Labels on physical volume "/dev/vdb6" successfully wiped
[root@server_sshd ~]# pvremove /dev/vdb8
  Labels on physical volume "/dev/vdb8" successfully wiped

在这里插入图片描述
在这里插入图片描述
6. 删除设备

[root@server_sshd ~]# fdisk /dev/vdb

在这里插入图片描述
在这里插入图片描述

注:
lvm的建立和删除是相反的过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值