LVM:Logic Volume Manager, 逻辑卷管理器
是一种逻辑设备,像软raid一样,将几个磁盘分区或块设备组织起来。
PV(Physical Volume):物理卷,可以是任意的块设备
注意:
(1)PV的id是8e
(2)PV不能格式化,也不能存储数据
VG(Volume Group):卷组,至少包含一个PV,相当于扩展分区,可以位于不同的磁盘设备上。
LV(Logic Volume):逻辑卷,可以格式化、挂载,VG的大小依靠PV的增大或减小而改变。
快照卷:可以对LV做快照,保存数据某一时刻的状态。快照卷只是访问原文件的一个路径,即multipath(提供两个以上的访问通道)。快照卷的大小决于数据变化的频度和时间。
例子一:创建一个大小为10G的卷组,逻辑卷大小为5G。
1、首先创建分区,这里创建了两个5G的扩展分区,分区大小可以随意设置,分区个数也是随意设置的,只要总分区大小是10G就OK了。
2、创建PV:
也可以使用pvdisplay显示PV的详细内容:
3、创建VG:
PE:类似于Raid中的chunk,是在LV的基础上新增的另外一层数据的块大小,也是另一张逻辑层次上的空间大小的组成单元,这种块是一种空间块,在扩展LV大小时,就是通过新增一些PE来实现的。
在创建VG时可以使用-s选项指定PE大小,默认PE大小是4M。
注意:这里使用pvdisplay命令显示的PE大小:
4、创建大小为5G的LV:
lvcreate命令的常用参数:
-L 指定LV大小
-l 指定LV 大小(以PE的个数表示)
-n 指定LV的名字
-p 指定权限
下面开始创建LV:
- //格式化lv1并挂载至/mydata下:
- [root@linli ~]# mke2fs -j /dev/myvg/lv1
- [root@linli ~]# mkdir /mydata
- [root@linli ~]# mount /dev/myvg/lv1 /mydata/
- [root@linli ~]# mount
- /dev/mapper/myvg-lv1 on /mydata type ext3 (rw)
- //想要开机自动挂载,可以修改/etc/fstab文件,添加如下一行:
- /dev/myvg/lv1 /mydata ext3 defaults 0 0
5、缩减LV(由5G缩减至2G)
缩减LV时存在着风险,在缩减之前需要首先卸载、强制检测文件系统,然后再缩减逻辑边界、物理边界。
- //先复制一个文件到/mydata/下,以测试缩减过LV之后数据没有问题
- [root@linli ~]# cp /var/log/messages /mydata/
- [root@linli ~]# ls /mydata/
- lost+found messages
- //挂载LV,检测lv1的大小及messages文件:
- [root@linli ~]# mount /dev/myvg/lv1 /mydata/
- [root@linli ~]# df -lh
- /dev/mapper/myvg-lv1 2.0G 136M 1.8G 8% /mydata
- [root@linli ~]# ll /mydata/
- total 208
- drwx------ 2 root root 16384 Jul 5 22:55 lost+found
- -rw------- 1 root root 185649 Jul 7 17:26 messages
6、扩展LV (由2G扩展至3G)
需要先卸载LV,然后再扩展物理边界、逻辑边界:
- [root@linli ~]# cp -r /etc/* /mydata/
- [root@linli ~]# ll -d /mydata
- drwxr-xr-x 91 root root 4096 Jul 7 17:35 /mydata
- [root@linli ~]# umount /dev/myvg/lv1
- //扩展物理边界
- [root@linli ~]# lvextend -L 3G /dev/myvg/lv1
- Extending logical volume lv1 to 3.00 GB
- Logical volume lv1 successfully resized
- [root@linli ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- lv1 myvg -wi-a- 3.00G
- [root@linli ~]# mount /dev/myvg/lv1 /mydata/
- [root@linli ~]# df -lh
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/myvg-lv1 2.0G 240M 1.7G 13% /mydata
- //扩展逻辑边界,此时不用指定大小,就会自动扩展至物理边界大小
- [root@linli ~]# resize2fs /dev/myvg/lv1
- resize2fs 1.39 (29-May-2006)
- Filesystem at /dev/myvg/lv1 is mounted on /mydata; on-line resizing required
- Performing an on-line resize of /dev/myvg/lv1 to 786432 (4k) blocks.
- The filesystem on /dev/myvg/lv1 is now 786432 blocks long.
- [root@linli ~]# df -lh
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/myvg-lv1 3.0G 240M 2.6G 9% /mydata
- [root@linli ~]# ll -d /mydata/
- drwxr-xr-x 91 root root 4096 Jul 7 17:35 /mydata/
7、创建快照卷:
- [root@linli ~]# lvcreate -L 128M -s -p r -n snap_lv1 /dev/myvg/lv1
- Logical volume "snap_lv1" created
- [root@linli ~]# mkdir /backup
- [root@linli ~]# mount /dev/myvg/snap_lv1 /backup/
- mount: block device /dev/myvg/snap_lv1 is write-protected, mounting read-only
- //可以看到/backup/的大小与/mydata一样大
- [root@linli ~]# ll -d /backup/
- drwxr-xr-x 91 root root 4096 Jul 7 17:35 /backup/
- //编辑/mydata下的一个文件添加一行,然后查看/backup下的这个文件是否有改动:
- [root@linli ~]# vim /mydata/passwd
- 添加一行:This is a new line
- [root@linli ~]# tail -1 /mydata/passwd
- This is a new line!!!
- [root@linli ~]# tail -1 /backup/passwd
- magedu:x:502:502::/home/magedu:/bin/bash
通过快照卷可以进行数据备份:
- [root@linli ~]# tar jcf /tmp/mydata.tar.bz2 /backup/*
- [root@linli ~]# ll /tmp/mydata.tar.bz2
- -rw-r--r-- 1 root root 7108187 Jul 7 17:51 /tmp/mydata.tar.bz2
- [root@linli ~]# umount /backup/
- [root@linli ~]# lvremove /dev/myvg/snap_lv1
- Do you really want to remove active logical volume snap_lv1? [y/n]: y
- Logical volume "snap_lv1" successfully removed
- //此时可以查看一下,没有snap_lv1了,证明移除快照卷成功:
- [root@linli ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- lv1 myvg -wi-ao 3.00G
- home vol0 -wi-ao 1.94G
- root vol0 -wi-ao 31.25G
转载于:https://blog.51cto.com/smile2013/923316