Lvm逻辑卷
接上篇来说,我们知道在linux下处理有RAID0,1 ,4,5,6,,10 ,还有LV(logical volume)可扩展收缩卷,linux上叫LVM 逻辑卷管理器。大家有没想过这个问题,当们的存储设备的空间已经全部存储满了,我们该咋办?呵呵,在这里我们的LVM逻辑卷的优势就体现的淋漓尽致了,LVM具有几乎无限扩展的能力。下面我们来简单分析下LVM 的数据存储体系结构,
创建逻辑卷的总体上大致可以步骤分为三步
1. 将pp块设备为转化成pv物理卷
2. 将pv物理卷添加到vg卷组
3. 将vg卷组转化为lv逻辑卷
下面我们先来学习一下他的命令用法和格式
Pv pvcreate -v device(/dev/sda5) 将pv块设备化成物理卷
Pvdisplay /dev/sda5 查看结果
Pvscan 在系统的任何磁盘中搜索已经存在的物理卷
Vg vgcreate vol1 /dev/sda5
-l 指定最大有几个逻辑卷
-p 指定最大有几个物理块设备
-s 设定PE的大小
vgextend vol1(要添加的卷组的名称) /dev/sda6(pv物理卷)
vgreduce -a 移除空的或者好的物理卷
--removemissing 移除丢失的或者坏的物理卷
Vgs vol1 显示卷ixnxi
Vgexport vol1 隐藏(不活动时才行)
Vgimport vol1 显示
Vgchange -l 更改vg设定的属性指定最大有几个逻辑卷
-p 更改vg指定最大有几个物理块设备
-s 这里调用-s来改变vg属性!!!!
Vgscan vol1 扫描卷组
Lv
Lvcreate -L 100M -n lv1 vol1
-m 镜像卷
-i 条带卷
-p 指定权限
-L 指定大小
-s 创建snapshot快照
-n 指定名字
Lvextend -L +100M|100M /dev/vol1/lv1
Lvreduce -L -100M|100M /dev/vol1/lv1
Lvscan
Lvrename 卷组名 就逻辑卷名 新逻辑卷名
下面我们就一个具体的案例来深刻理解下个命令的用法
新建两个空间均为512M的物理卷,并以之创建卷组myvol1;(格式化?)
新建逻辑卷lvm1,大小为300M,并要求其开机挂载至/share目录;
新建目录/share/test,设置其所属组为oinstall;
扩展逻辑卷lvm1的大小至500M,要求不能损坏其中的文件;
收缩逻辑卷lvm1的大小至200M,要求不能损坏其中的文件;
为此卷创建snapshot,名称为lvm1snap;
1. 新建两个512M的物理卷组,并创建卷组myvol
[root@station23 ~]# fdisk /dev/sda
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2308 18434587+ 8e Linux LVM
/dev/sda3 2309 2373 522112+ 82 Linux swap / Solaris
/dev/sda4 2374 15665 106767990 5 Extended
/dev/sda5 2374 2436 506016 8e Linux LVM
/dev/sda6 2437 2499 506016 8e Linux LVM
这里我们分别建立两个物理卷/dev/sda5 /dev/sda6,这里的格式必须为linux LVM格式
[root@station23 ~]# partprobe 重新读取分区信息,使之立即生效
[root@station23 ~]# pvcreate -v /dev/sda5 /dev/sda6 创建物理分区
Set up physical volume for "/dev/sda5" with 1012032 available sectors
Zeroing start of device /dev/sda5
Physical volume "/dev/sda5" successfully created
Set up physical volume for "/dev/sda6" with 1012032 available sectors
Zeroing start of device /dev/sda6
Physical volume "/dev/sda6" successfully created
[root@station23 ~]# pvdisplay 查看物理卷创建情况
"/dev/sda5" is a new physical volume of "494.16 MB"
--- NEW Physical volume ---
PV Name /dev/sda5
VG Name
PV Size 494.16 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 32M1nK-NB3O-D3NM-IaKg-d83f-75XL-2xdhte
"/dev/sda6" is a new physical volume of "494.16 MB"
--- NEW Physical volume ---
PV Name /dev/sda6
VG Name
PV Size 494.16 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3k3i3x-6MAs-cX5j-tXJY-790Y-JDCr-PQoI8c
创建卷组myvol1
[root@station23 ~]# vgcreate myvol1 /dev/sda5 /dev/sda6
Volume group "myvol1" successfully created
[root@station23 ~]# vgdisplay myvol1 查看卷组创建情况
--- Volume group ---
VG Name myvol1
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 984.00 MB
PE Size 4.00 MB
Total PE 246
Alloc PE / Size 0 / 0
Free PE / Size 246 / 984.00 MB
VG UUID BDI2wz-XPuu-hZan-VpIu-H6tg-3zTk-Vhyu2x
创建逻辑卷lvm1 大小为300M
[root@station23 ~]# lvcreate -L 300M -n lvm1 myvol1
Logical volume "lvm1" created
[root@station23 ~]# lvdisplay lvm1 这里失败的原因的没写全路径
Volume group "lvm1" not found
[root@station23 ~]# lvdisplay /dev/myvol1/lvm1
--- Logical volume ---
LV Name /dev/myvol1/lvm1
VG Name myvol1
LV UUID 15mVY6-82LS-B39d-663P-Xrlf-p3Ju-cy3Mzp
LV Write Access read/write
LV Status available
# open 0
LV Size 300.00 MB
Current LE 75
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
[root@station23 ~]# mkfs -t ext3 /dev/myvol1/lvm1 格式化lvm1为ext3
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@station23 ~]# mkdir -p /share/test 创建/share/test文件
[root@station23 ~]# vim /etc/fstab 设置lvm1 开机自动挂载
/dev/myvol1/lvm1 /share/test ext3 defaults 0 0
~
~
"/etc/fstab" 9L, 656C written 9,47-75 All
新建目录/share/test,设置其所属组为oinstall
[root@station23 /]# mkdir /share/test
[root@station23 /]# chown -R :oinstall /share
[root@station23 /]# ls -ld /share/test/
drwxr-xr-x 2 root oinstall 1024 Feb 25 12:39 /share/test/
[root@station23 /]# ls -ld /share
drwxr-xr-x 4 root oinstall 1024 Feb 25 12:39 /share
[root@station23 ~]# mount /dev/myvol1/lvm1 /share 挂载lvm1至/share目录下
扩展逻辑卷lvm1的大小至500M,要求不能损坏其中的文件;
[root@station23 test]# touch aa 新建aa文件,用于测试是否损坏了文件
[root@station23 test]# lvextend -L 500M /dev/myvol1/lvm1 /扩展lv逻辑卷500M 区分+500M
Extending logical volume lvm1 to 500.00 MB
Logical volume lvm1 successfully resized 成功标志
[root@station23 test]# resize2fs /dev/myvol1/lvm1 重新定义lv大小,这步一定不能少resize2fs 1.39 (29-May-2006)
Filesystem at /dev/myvol1/lvm1 is mounted on /share; on-line resizing required
Performing an on-line resize of /dev/myvol1/lvm1 to 512000 (1k) blocks.
The filesystem on /dev/myvol1/lvm1 is now 512000 blocks long.
[root@station23 test]# ls aa文件依然存在,扩展成功
aa
收缩逻辑卷lvm1的大小至200M,要求不能损坏其中的文件;
[root@station23 test]# umount /dev/myvol1/lvm1 失败原因,在挂载目录
umount: /share: device is busy
umount: /share: device is busy
[root@station23 test]# cd
[root@station23 ~]# umount /dev/myvol1/lvm1 收缩逻辑卷时一定要先卸载
[root@station23 ~]# e2fsck -f /dev/myvol1/lvm1 e2fsck 1.39 (29-May-2006)
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/myvol1/lvm1: 13/127512 files (7.7% non-contiguous), 26640/512000 blocks
[root@station23 ~]#resize2fs /development/myvol1/lvm1 200M
[root@station23 ~]# lvreduce -L 200M /dev/myvol1/lvm1 收缩至200M 区分-200M
WARNING: Reducing active logical volume to 200.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvm1? [y/n]: y
Reducing logical volume lvm1 to 200.00 MB
Logical volume lvm1 successfully resized
[root@station23 ~]# cd /share
[root@station23 share]# ls
test
[root@station23 share]# cd
[root@station23 ~]# mount /dev/myvol1/lvm1 /share
[root@station23 ~]# cd /share/
[root@station23 share]# ls
lost+found test
[root@station23 share]# cd test/
[root@station23 test]# ls 查看是否损坏文件
aa
[root@station23 test]#
为此卷创建snapshot,名称为lvm1snap;
[root@station23 test]# lvcreate -L 100M -s -p r -n lvm1snapshot /dev/myvol1/lvm1
Logical volume "lvm1snapshot" created
Ok