创建LVM的过程(逻辑参考图):
- 在物理设备上创建物理分区,每个物理分区称为一个PE
- 使用fdisk工具创建物理分区卷标(修改为8e),形成PV(Physical Volume 物理卷)
- 使用vgcreate 将多个PV添加到一个VG(Volume Group 卷组)中,此时VG成为一个大磁盘
- 在VG大磁盘上划分LV(Logical Volume 逻辑卷),将逻辑卷格式化后即可挂载使用
LVM命令结构
更具体的请参考man手册
功能 |
PV管理命令 |
VG管理命令 |
LV管理命令 |
Scan扫描 |
pvscan/pvs |
vgscan/vgs |
lvscan/lvs |
Create建立 |
pvcreate |
vgcreate |
lvcreate |
display显示 |
pvdisplay |
vgdisplay |
lvdisplay |
Extend扩展 |
pvremove |
vgremove |
lvremove |
Reduce减少 |
vgreduce |
lvreduce |
1、创建PV
[root@i-it ~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc [root@i-it ~]# pvcreate /dev/sd[bc] Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created
2、查看PV信息
[root@i-it ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name vg_##### PV Size 119.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 30594 Free PE 0 Allocated PE 30594 PV UUID MgIEVe-DS6Q-uGyJ-UJfm-FCc2-cCmK-UOM3c3 "/dev/sdb" is a new physical volume of "120.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 120.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID rDSSFs-FO1J-jhU4-pfM6-trMy-F0N2-oS3Hh5 "/dev/sdc" is a new physical volume of "120.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 120.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID qpe8m5-EeFn-Kluh-ry0S-eBqP-6A3g-BbpyND
2、创建VG
[root@i-it ~]# vgcreate i-it -s 32M /dev/sd[bc] Volume group "i-it" successfully created ##-s 在创建时指定PE块的大小,默认是4M。 ##查看系统上VG的状态## [root@i-it ~]# vgdisplay --- Volume group --- VG Name i-it 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 239.94 GiB PE Size 32.00 MiB Total PE 7678 Alloc PE / Size 0 / 0 Free PE / Size 7678 / 239.94 GiB VG UUID iVPm5w-N0ji-cY5O-gM6r-lmlH-n3UJ-VqPhzl --- Volume group --- VG Name vg_#### System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 119.51 GiB ##VG总大小 PE Size 4.00 MiB ##默认的PE块大小是4M Total PE 30594 ##总PE块数 Alloc PE / Size 30594 / 119.51 GiB ##可用的PE数目及磁盘大小 Free PE / Size 0 / 0 ##已经使用的PE块数目 VG UUID XoiW3x-9erh-8ZXR-5Syk-1szb-qWW5-ZW5Jdc
3、在VG中划出LV
[root@i-it ~]# lvcreate -L 512M -n i-it-data i-it Logical volume "i-it-data" created ## -L指定LV大小 ## -n 指定lv卷名称 [root@i-it ~]# lvcreate -l 25 -n i-it-data1 i-it Logical volume "i-it-data1" created ## -l 指定LV大小占用多少个PE块;上面大小为:25*32M=800M ##查看建立的LV## [root@i-it ~]# lvdisplay --- Logical volume --- LV Path /dev/i-it/i-it-data LV Name i-it-data VG Name i-it LV UUID R3d6wY-VY38-kT2J-P14F-Olkt-3Rib-VwIMXd LV Write Access read/write LV Creation host, time i-it.com, 2014-04-11 04:49:20 +0800 LV Status available # open 0 LV Size 512.00 MiB Current LE 16 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:3 --- Logical volume --- LV Path /dev/i-it/i-it-data1 LV Name i-it-data1 VG Name i-it LV UUID 8PW9RN-tPkk-FPeV-3iXd-2q36-sfjy-daKX49 LV Write Access read/write LV Creation host, time i-it.com, 2014-04-11 04:50:58 +0800 LV Status available # open 0 LV Size 800.00 MiB Current LE 25 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4 ##省略...
4、格式化LV卷,挂在使用
[root@i-it ~]# mkfs -t ext4 -b 2048 -L DATA /dev/i-it/i-it-data mke2fs 1.41.12 (17-May-2010) Filesystem label=DATA OS type: Linux ......省略 挂载分区,拷贝一些测试文件进去 [root@i-it ~]# mount /dev/i-it/i-it-data /mnt/ [root@i-it ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_itchenyi09-lv_root 50G 2.6G 45G 6% / tmpfs 495M 224K 495M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/mapper/vg_itchenyi09-lv_home 67G 181M 63G 1% /home /dev/sr1 4.2G 4.2G 0 100% /media/CentOS_6.5_Final /dev/mapper/i--it-i--it--data 504M 20M 460M 4% /mnt [root@i-it ~]# cp -rpf /tmp/* /mnt/
5、扩大LV卷I-IT-DATA的容量
逻辑扩展:
[root@i-it ~]# lvextend -L +500M /dev/i-it/i-it-data Rounding size to boundary between physical extents: 512.00 MiB Extending logical volume i-it-data to 1.00 GiB Logical volume i-it-data successfully resized ##-L 5G :指定扩展到5G,当前卷不可大于改值,系统会找最近的柱面进行匹配; ##-L +500M :值在原有大小的基础上扩大500M; ##-l [+]50 类似上面,但是以Pe块为单位进行扩展; ################################################### [root@i-it ~]# lvdisplay --- Logical volume --- LV Path /dev/i-it/i-it-data LV Name i-it-data VG Name i-it LV UUID R3d6wY-VY38-kT2J-P14F-Olkt-3Rib-VwIMXd LV Write Access read/write LV Creation host, time i-it.com, 2014-04-11 04:49:20 +0800 LV Status available # open 1 LV Size 1.00 GiB Current LE 32 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:3
物理扩展:
###resize2fs调整已建立的ext2/3/4档案系统的大小。### [root@i-it ~]# resize2fs -p /dev/i-it/i-it-data resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/i-it/i-it-data is mounted on /mnt; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/i-it/i-it-data to 524288 (2k) blocks. The filesystem on /dev/i-it/i-it-data is now 524288 blocks long. 查看当前挂载的文件系统,以及动态扩展后的文件状态 [root@i-it ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_itchenyi09-lv_root 50G 2.6G 45G 6% / tmpfs 495M 224K 495M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/mapper/vg_itchenyi09-lv_home 67G 181M 63G 1% /home /dev/sr1 4.2G 4.2G 0 100% /media/CentOS_6.5_Final /dev/mapper/i--it-i--it--data 1008M 21M 937M 3% /mnt [root@i-it ~]# ls /mnt/ keyring-2qN2je orbit-gdm pulse-FAl8E3Q5BSD6 pulse-tt3Bxg2U6j8Y lost+found orbit-root pulse-GxZ9645yOvNO yum.log
6、缩减LV容量
缩减容量是一件危险的操作;缩减必须在离线状态下执行;并且必须先强制检查文件系统错误,防止缩减过程损坏数据
[root@i-it ~]# e2fsck -f /dev/i-it/i-it-data e2fsck 1.41.12 (17-May-2010) 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 DATA: 50/98304 files (0.0% non-contiguous), 22651/786432 blocks
缩减物理卷的大小
[root@i-it ~]# resize2fs /dev/i-it/i-it-data 512M resize2fs 1.41.12 (17-May-2010) ##vsphere中的测试机,勿重视一些小的细节### Resizing the filesystem on /dev/i-it/i-it-data to 262144 (2k) blocks. The filesystem on /dev/i-it/i-it-data is now 262144 blocks long.
缩减逻辑大小
[root@i-it ~]# lvreduce -L 512M /dev/i-it/i-it-data WARNING: Reducing active logical volume to 512.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce i-it-data? [y/n]: y Reducing logical volume i-it-data to 512.00 MiB Logical volume i-it-data successfully resized
查看状态、重新挂载:
[root@i-it ~]# lvdisplay --- Logical volume --- LV Path /dev/i-it/i-it-data LV Name i-it-data VG Name i-it LV UUID R3d6wY-VY38-kT2J-P14F-Olkt-3Rib-VwIMXd LV Write Access read/write LV Creation host, time i-it.com, 2014-04-11 04:49:20 +0800 LV Status available # open 0 LV Size 512.00 MiB Current LE 16 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:3 --- Logical volume --- LV Path /dev/i-it/i-it-data1 LV Name i-it-data1 VG Name i-it LV UUID 8PW9RN-tPkk-FPeV-3iXd-2q36-sfjy-daKX49 LV Write Access read/write LV Creation host, time i-it.com, 2014-04-11 04:50:58 +0800 LV Status available # open 0 LV Size 800.00 MiB Current LE 25 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4 ##省略... #重新挂载到/mnt# [root@i-it ~]# mount /dev/i-it/i-it-data /mnt/ [root@i-it ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_itchenyi09-lv_root 50G 2.6G 45G 6% / tmpfs 495M 224K 495M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/mapper/vg_itchenyi09-lv_home 67G 181M 63G 1% /home /dev/sr1 4.2G 4.2G 0 100% /media/CentOS_6.5_Final /dev/mapper/i--it-i--it--data 504M 20M 460M 4% /mnt #文件完好# [root@i-it ~]# ls /mnt/ keyring-2qN2je orbit-gdm pulse-FAl8E3Q5BSD6 pulse-tt3Bxg2U6j8Y lost+found orbit-root pulse-GxZ9645yOvNO yum.log
7、 扩展VG,向VG中添加一个PV:
[root@i-it ~]# pvcreate /dev/sdd Physical volume "/dev/sdd" successfully created [root@i-it ~]# vgextend i-it /dev/sdd Volume group "i-it" successfully extended --- Physical volume --- PV Name /dev/sdd VG Name i-it PV Size 120.00 GiB / not usable 32.00 MiB Allocatable yes PE Size 32.00 MiB Total PE 3839 Free PE 3839 Allocated PE 0 PV UUID BrHLqC-IqR7-GNH6-SZHb-Zdt9-TvX2-ci2puN
8、缩减VG,取出VG中的某个PV:
移除某个PV时,需要先转移该PV上数据到其他PV,然后再将该PV删除
移出指定PV中的数据:
[root@i-it ~]# pvmove /dev/sdd No data to move for i-it ##如果sdc2上面有数据,则会花一段时间移动,并且显示警告信息,再次确认后才会执行 ##如上,提示该分区中没有数据; 移除PV: [root@i-it ~]# vgreduce i-it /dev/sdd Removed "/dev/sdd" from volume group "i-it" ##若发现LVM中磁盘工作不太正常,怀疑是某一块磁盘工作由问题后就可以用该方法移出问题磁盘上的数据,然后删掉问题盘##
LVM快照
描述:
在一个非常繁忙的服务器上,备份大量的数据时,需要停掉大量的服务,否则备份下来的数据极容易出现不一致状态,而使备份根本不能起效;这时快照就起作用了
逻辑卷快照实质是访问原始数据的另外一个路径而已;快照保存的是做快照那一刻的数据状态;做快照以后,任何对原始数据的修改,会在修改前拷贝一份到快照区域,所以通过快照查看到的数据永远是生成快照那一刻的数据状态;但是对于快照大小有限制,做快照前需要估算在一定时间内数据修改量大小,如果在创建快照期间数据修改量大于快照大小了,数据会溢出照成快照失效崩溃
快照不是永久的。如果你卸下LVM或重启,它们就丢失了,需要重新创建。
创建快照:
[root@i-it ~]# lvcreate -L 500M -p r -s -n datasnap /dev/i-it/i-it-data Rounding up size to full physical extent 512.00 MiB Logical volume "datasnap" created ## -L –l 设置大小 ## -p :permission,设置生成快照的读写权限,默认为RW;r为只读 ##-s 指定lvcreate生成的是一个快照 ##-n 指定快照名称 挂载快照到指定位置: [root@i-it ~]# mount /dev/i-it/datasnap /bak/ mount: block device /dev/mapper/i--it-datasnap is write-protected, mounting read-only 此时可以操作快照中的文件,在处理完毕后需要及时删除快照 [root@i-it ~]# ls /mnt/ keyring-2qN2je orbit-gdm pulse-FAl8E3Q5BSD6 pulse-tt3Bxg2U6j8Y lost+found orbit-root pulse-GxZ9645yOvNO yum.log