LVM实战

 

LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便。

结构组成

  1. 物理卷 (PV)
    一个可供存储LVM的块设备. 例如: 一块硬盘, 一个MBR或GPT分区, 一个回环文件, 一个被内核映射的设备 (例如 dm-crypt).它包含一个特殊的LVM头。
  2. 卷组 (VG)
    物理卷的一个组,作为存放逻辑卷的容器。
  3. 逻辑卷 (LV)
    "虚拟/逻辑卷"存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统。
  4. 物理块 (PE)
    一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。


相关命令


lvmdiskscan 列出可被用作物理卷的设备
pvcreate 创建物理卷
pvdisplay /dev/sda2 查看物理卷
pvs  /dev/sda2 查看物理卷

vgcreate VolGroup00 /dev/sda2  创建卷组
vgextend VolGroup00 /dev/sdb1 卷组扩大到其他所有的物理卷
vgdisplay 查看卷组


lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1 创建逻辑卷
lvdisplay 查看逻辑卷
lvs 查看逻辑卷
lvremove VolGroup00/lvolhome  移除逻辑卷

 

 

实例

先用三块硬盘创建卷组vg1, 逻辑卷lv_opt,mount到 /opt路径,然后再增加一块硬盘

查看硬盘,sda是系统盘,另外有sdb,sdc,sdd,sde四块未格式化硬盘

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 447.1G  0 disk 
├─sda1   8:1    0   200M  0 part /boot/efi
├─sda2   8:2    0    16G  0 part [SWAP]
└─sda3   8:3    0   431G  0 part /
sdb      8:16   0   7.3T  0 disk 
sdc      8:32   0   7.3T  0 disk 
sdd      8:48   0   7.3T  0 disk 
sde      8:64   0   7.3T  0 disk 

 

先对4块空白硬盘分区

parted /dev/sdb mklabel gpt 
parted /dev/sdb mkpart primary 0 100%

parted /dev/sdc mklabel gpt 
parted /dev/sdc mkpart primary 0 100%

parted /dev/sdd mklabel gpt 
parted /dev/sdd mkpart primary 0 100%

parted /dev/sde mklabel gpt 
parted /dev/sde mkpart primary 0 100%

重新查看硬盘

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 447.1G  0 disk 
├─sda1   8:1    0   200M  0 part /boot/efi
├─sda2   8:2    0    16G  0 part [SWAP]
└─sda3   8:3    0   431G  0 part /
sdb      8:16   0   7.3T  0 disk 
└─sdb1   8:17   0   7.3T  0 part 
sdc      8:32   0   7.3T  0 disk 
└─sdc1   8:33   0   7.3T  0 part 
sdd      8:48   0   7.3T  0 disk 
└─sdd1   8:49   0   7.3T  0 part 
sde      8:64   0   7.3T  0 disk 
└─sde1   8:65   0   7.3T  0 part 

先对三块硬盘创建物理卷

  pvcreate /dev/sdb1
  pvcreate /dev/sdc1
  pvcreate /dev/sdd1

三块硬盘建立卷组卷组

  vgcreate vg1 /dev/sdb1 /dev/sdc1 /dev/sdd1

也可以改成用pvcreate先用一块硬盘建立卷组,然后 vgextend 追加两块硬盘

vgcreate vg1 /dev/sdb1

vgextend vg1 /dev/sdc1

vgextend vg1 /dev/sdd1

在vg1卷组上建立逻辑卷

lvcreate -l 100%VG -n lv_opt vg1

格式化成xfs格式

 mkfs -t xfs /dev/vg1/lv_opt

查看一下分区信息

[root@localhost ~]# blkid
/dev/sda1: SEC_TYPE="msdos" UUID="08E4-6C38" TYPE="vfat" 
/dev/sda2: TYPE="swap" UUID="e4f2bb0a-4572-4b10-8ffc-110bdbe5528f" 
/dev/sda3: UUID="963a58b1-4883-46ef-985f-123276f43929" TYPE="ext4" 
/dev/sdb1: UUID="Lu6aRW-3BrM-QAJU-Zna3-ZmFp-oRoa-ZzwyND" TYPE="lvm2pv" 
/dev/sdc1: UUID="1Jn6ej-tfeb-cKcr-zc2J-LZ94-O2Q6-aktDzY" TYPE="lvm2pv" 
/dev/sdd1: UUID="J0zvm9-NuWU-fNWU-MDi2-jkNX-dKbi-l0YmsJ" TYPE="lvm2pv" 
/dev/sde1: UUID="2aff6f49-68ed-4b54-94b2-0c5921976953" TYPE="ext4" 
/dev/mapper/vg1-lv_opt: UUID="81b7a88f-140c-483f-ae4a-1356c1d75ef9" TYPE="xfs" 

 

挂载逻辑卷

 mount /dev/mapper/vg1-lv_opt /opt

 设置开机启动挂载

echo '
UUID=81b7a88f-140c-483f-ae4a-1356c1d75ef9    /opt    xfs    defaults    0    0' >>/etc/fstab

这样三块硬盘就成功组建了一个逻辑卷,挂载在/opt目录

 

 

如果要追加一块硬盘怎么办?

创建物理卷

pvcreate /dev/sde1

追加在卷组vg1

vgextend /dev/vg1 /dev/sde1

给lvm逻辑卷扩容

lvextend -l +100%FREE  /dev/vg1/lv_opt

使用xfs_growfs命令同步文件系统(如果不操作这部,文件大小不会改变)

xfs_growfs /dev/mapper/vg1-lv_opt

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值