Linux之lvm

lvm的用法

使用 lvm 可以方便的扩容或者缩容磁盘空间

如下例:

首先需要安装 lvm


yum install -y "/*/lvm"

在知道命令但是不知道软件包名的情况下可以使用yum install -y "/*/命令"来安装

准备好磁盘分区

创建好3个新分区(/dev/sdb1,/dev/sdb2,/dev/sdb3)大小都未1G,并且改变3个新分区类型为8e


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e 
已将分区“Linux”的类型更改为“Linux LVM”


准备物理卷


[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.

pvdisplay或者pvs:列出当前物理卷信息

[root@localhost ~]# pvdisplay
  "/dev/sdb1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               eGslCj-Kn2v-gV4T-2z82-MkI7-pwcc-Q0RwN1

创建卷组

vgcreate 组名 物理卷(多个物理卷之间用空格隔开)


[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
  Volume group "vg1" successfully created

vgdisplay或者vgs:查看卷组信息


[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.99 GiB
  PE Size               4.00 MiB
  Total PE              510
  Alloc PE / Size       0 / 0   
  Free  PE / Size       510 / 1.99 GiB
  VG UUID               7PRZil-Y1ah-mXzB-AeZd-2NyT-6PH6-3YGIXY

创建逻辑卷


[root@localhost ~]# lvcreate -L 100M -n lv1 vg1
  Logical volume "lv1" created.
  

-L:设定逻辑卷容量

-n:设定逻辑卷名

vg1:不是逻辑卷是从卷组vg1中划分的

格式化逻辑卷


[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

挂载逻辑卷


[root@localhost ~]# mount /dev/vg1/lv1 /mnt
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             18G  2.0G   16G   11% /
devtmpfs             489M     0  489M    0% /dev
tmpfs                494M     0  494M    0% /dev/shm
tmpfs                494M   13M  481M    3% /run
tmpfs                494M     0  494M    0% /sys/fs/cgroup
/dev/sda1            197M   75M  122M   39% /boot
/dev/mapper/vg1-lv1   93M  1.6M   85M    2% /mnt
[root@localhost ~]# ll /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 7月   9 05:01 /dev/vg1/lv1 -> ../dm-0
[root@localhost ~]# ll /dev/mapper/vg1-lv1
lrwxrwxrwx. 1 root root 7 7月   9 05:01 /dev/mapper/vg1-lv1 -> ../dm-0

/dev/vg1/lv1 和 /dev/mapper/vg1-lv1 都指向同一个设备 ../dm-0


扩容逻辑卷(ext文件系统)

*. 卸载逻辑卷


[root@localhost ~]# umount /mnt
[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        18G  2.0G   16G   11% /
devtmpfs        489M     0  489M    0% /dev
tmpfs           494M     0  494M    0% /dev/shm
tmpfs           494M   13M  481M    3% /run
tmpfs           494M     0  494M    0% /sys/fs/cgroup
/dev/sda1       197M   75M  122M   39% /boot

*. 重新设定逻辑卷容量


[root@localhost ~]# lvresize -L 200M /dev/vg1/lv1
  Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents).
  Logical volume vg1/lv1 successfully resized.
 

*. 检查磁盘错误


[root@localhost ~]# e2fsck -f !$
e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 11/25688 files (9.1% non-contiguous), 8896/102400 blocks

*. 更新逻辑卷信息


[root@localhost ~]# resize2fs !$
resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 204800 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 204800 blocks long.
[root@localhost ~]# mount !$ /mnt
mount /dev/vg1/lv1 /mnt

*. 重新挂载逻辑卷


[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             18G  2.0G   16G   11% /
devtmpfs             489M     0  489M    0% /dev
tmpfs                494M     0  494M    0% /dev/shm
tmpfs                494M   13M  481M    3% /run
tmpfs                494M     0  494M    0% /sys/fs/cgroup
/dev/sda1            197M   75M  122M   39% /boot
/dev/mapper/vg1-lv1  190M  1.6M  175M    1% /mnt

缩容逻辑卷(不支持xfs)

*. 卸载逻辑卷

*. 检查磁盘错误


[root@localhost ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 11/49400 files (9.1% non-contiguous), 11884/204800 blocks

*. 更新逻辑卷信息


[root@localhost ~]# resize2fs !$ 150M
resize2fs /dev/vg1/lv1 150M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 153600 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 153600 blocks long.

*. 重新设置逻辑卷容量


[root@localhost ~]# lvresize -L 150M /dev/vg1/lv1
  Rounding size to boundary between physical extents: 152.00 MiB.
  WARNING: Reducing active logical volume to 152.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
  Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 152.00 MiB (38 extents).
  Logical volume vg1/lv1 successfully resized.

*. 重新挂载逻辑卷


[root@localhost ~]# mount /dev/vg1/lv1 /mnt
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             18G  2.0G   16G   11% /
devtmpfs             489M     0  489M    0% /dev
tmpfs                494M     0  494M    0% /dev/shm
tmpfs                494M   13M  481M    3% /run
tmpfs                494M     0  494M    0% /sys/fs/cgroup
/dev/sda1            197M   75M  122M   39% /boot
/dev/mapper/vg1-lv1  142M  1.6M  130M    2% /mnt

此处指定的容量必须跟第三步中的容量一致

缩容后的容量不能小于逻辑卷已使用容量

扩容逻辑卷(xfs文件系统)

*. 卸载逻辑卷

*. 将逻辑卷格式化未xfs格式


[root@localhost ~]# mkfs.xfs -f /dev/vg1/lv1
meta-data=/dev/vg1/lv1           isize=256    agcount=4, agsize=9728 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=38912, 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

*. 挂载逻辑卷

*. 重新设定逻辑卷容量


[root@localhost ~]# mount !$ /mnt
mount /dev/vg1/lv1 /mnt
[root@localhost ~]# lvresize -L 300M /dev/vg1/lv1 
  Size of logical volume vg1/lv1 changed from 152.00 MiB (38 extents) to 300.00 MiB (75 extents).
  Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# xfs_growfs !$
xfs_growfs /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1    isize=256    agcount=4, agsize=9728 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=38912, 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 38912 to 76800
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             18G  2.0G   16G   11% /
devtmpfs             489M     0  489M    0% /dev
tmpfs                494M     0  494M    0% /dev/shm
tmpfs                494M   13M  481M    3% /run
tmpfs                494M     0  494M    0% /sys/fs/cgroup
/dev/sda1            197M   75M  122M   39% /boot
/dev/mapper/vg1-lv1  297M  7.9M  289M    3% /mnt

在重新设定逻辑卷容量后,需要使用 xfs_growfs /dev/vg1/lv1 才能实现扩容


当卷组的容量都被逻辑卷使用完之后,如何实现扩容?

posted @ 2017-09-21 00:02  指环王Raul  阅读(275)  评论(0编辑  收藏  举报