LVMÊÇÂß¼Å̾í¹ÜÀí£¨Logical Volume Manager£©µÄ¼ò³Æ£¬ËüÊÇLinux»·¾³Ï¶ԴÅÅÌ·ÖÇø½øÐйÜÀíµÄÒ»ÖÖ»úÖÆ£¬LVMÊǽ¨Á¢ÔÚÓ²Å̺ͷÖÇøÖ®ÉϵÄÒ»¸öÂß¼²ã£¬À´Ìá¸ß´ÅÅÌ·ÖÇø¹ÜÀíµÄÁé»îÐÔ¡£Ç°ÃæÌ¸µ½£¬LVMÊÇÔÚ´ÅÅÌ·ÖÇøºÍÎļþϵͳ֮¼äÌí¼ÓµÄÒ»¸öÂß¼²ã£¬À´ÎªÎļþϵͳÆÁ±Îϲã´ÅÅÌ·ÖÇø²¼¾Ö£¬Ìṩһ¸ö³éÏóµÄÅÌ¾í£¬ÔÚÅ̾íÉϽ¨Á¢Îļþϵͳ¡£
Ïà¹Ø¸ÅÄ
ÎïÀí¾íPV£ºÊÇÖ¸Ó²ÅÌ·ÖÇø»òÕß´ÓÂß¼ÉÏ¿´ÆðÀ´ºÍÓ²ÅÌ·ÖÇøÀàËÆµÄÉ豸£¨±ÈÈçRAIDÉ豸£©¡£
Âß¼¾íLV£ºÒ»¸ö»òÕß¶à¸öÎïÀí¾í×é³ÉÒ»¸öÂß¼¾í¡£
¾í×éVG£ºÒ»¸ö»òÕß¶à¸öÂß¼¾í×é³ÉÒ»¸ö¾í×é¡£¾í×é°Ñ¶à¸öÂß¼¾í×éºÏÔÚÒ»Æð£¬ÐγÉÒ»¸ö¿É¹ÜÀíµÄµ¥Ôª¡£
ÎïÀí¿éPE£ºÎïÀí¾í°´´óСÏàµÈµÄ¡°¿é¡±Îªµ¥Î»´æ´¢£¬¿éµÄ´óСÓë¾í×éÖÐÂß¼¾í¿éµÄ´óСÏàͬ¡£
Âß¼¿éLE£ºÂß¼¾í°´¡°¿é¡±Îªµ¥Î»´æ´¢£¬ÔÚÒ»¾í×éÖеÄËùÓÐÂß¼¾íµÄ¿é´óСÊÇÏàͬµÄ¡£
´´½¨ÎïÀí·ÖÇø
ÔÚʹÓÃLVM֮ǰ£¬ÐèÒªÊ×ÏÈ»®·Ö´ÅÅÌ·ÖÇø£¬Ò²¾ÍÊÇÓÃfdiskÃüÁî»®·Ö´ÅÅÌ·ÖÇø£¬ÐèÒªÖ¸¶¨·ÖÇøÀàÐÍΪlinux LVM£¬¶ÔÓ¦µÄIDΪ8e(ÆäʵLVMÒ²ÄÜʶ±ðlinuxĬÈϵķÖÇøÀàÐÍ83)
[root@rhel5 ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 78 522112+ 82 Linux swap / Solaris
/dev/sda3 79 1383 10482412+ 8e Linux LVM
/dev/sda4 1384 2610 9855877+ 5 Extended
/dev/sda5 1384 1994 4907826 83 Linux
[root@rhel5 ~]# fdisk -t 8e /dev/sda5
´´½¨ÎïÀí¾íPV
´´½¨ÎïÀí¾íµÄÃüÁîÊÇpvcreate£¬Í¨¹ý¸ÃÃüÁî¿ÉÒÔ½«Ï£ÍûÌí¼Óµ½¾í×飨VG£©µÄËùÓдÅÅÌ·ÖÇø»òÕßÕû¸ö´ÅÅÌ´´½¨ÎªÎïÀí¾í¡£Ê¹ÓøñʽΪ£º
pvcreate ´ÅÅÌ·ÖÇø»òÕû¸ö´ÅÅÌ
[root@rhel5 ~]# pvcreate /dev/sda5
Physical volume "/dev/sda5" successfully created
´´½¨/¼¤»î¾í×éVG
´´½¨¾í×éµÄÃüÁîÊÇvgcreate£¬Ê¹ÓøñʽΪ£º
vgcreate ¾í×éÃû ÎïÀí¾í
[root@rhel5 ~]# vgcreate iscsi /dev/sda5
Volume group"iscsi" successfully created
¾í×é´´½¨Íê±Ïºó£¬¿ÉÒÔͨ¹ývgchangeÃüÁ»î¾í×飬¶øÎÞÐèÖØÆôϵͳ¡£VgchangeʹÓøñʽÈçÏ£º
vgchange -a y ¾í×éÃû £¨¼¤»î¾í×飩
vgchange -a n ¾í×éÃû £¨Í£Óþí×飩
´´½¨Âß¼¾íLV
´´½¨Âß¼¾íµÄÃüÁîÊÇlvcreate£¬³£ÓõÄʹÓøñʽΪ£º
lvcreate [-L Âß¼¾í´óС| -l PEÊý ] -n Âß¼¾íÃû³Æ ËùÊôµÄ¾í×éÃû
ÆäÖУº
-L£ººóÃæ½ÓÂß¼¾íµÄ´óС£¬¿ÉÒÔÓÃK¡¢M¡¢G±íʾ¡£ÀýÈç100M¡¢10GµÈ
-l£ºÓÃPEÊýÀ´¼ÆËãÂß¼¾íµÄ´óС¡£
[root@rhel5 ~]# lvcreate -n sharedisk -L 2G iscsi
Logical volume "sharedisk" created
ÏÔʾPV¡¢VG¡¢LVµÄÊôÐÔÐÅÏ¢
[root@rhel5 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 rootvg lvm2 a- 9.97G 0
/dev/sda5 iscsi lvm2 a- 4.68G 4.68G
[root@rhel5 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
iscsi 1 0 0 wz--n- 4.68G 4.68G
rootvg 1 1 0 wz--n- 9.97G 0
[root@rhel5 ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
sharedisk iscsi -wi-ao 2.00G
rootlv rootvg -wi-ao 9.97G
ÏàÓ¦µÄÒ²¿Éͨ¹ýpvdisplay¡¢vgdisplay¡¢lvdisplay²é¿´¸üÏêϸµÄÐÅÏ¢
¸ñʽ»¯Âß¼¾í£¬´´½¨Îļþϵͳ
[root@rhel5 ~]# mkfs.ext3 /dev/iscsi/sharedisk
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
262144 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@rhel5 ~]# tune2fs -c 0 -i 0 /dev/iscsi/sharedisk
tune2fs 1.39 (29-May-2006)
Setting maximal mount countto -1
Setting interval between checks to 0 seconds
[root@rhel5 ~]#mkdir /data
[root@rhel5 ~]# mount /dev/iscsi/sharedisk /data/
[root@rhel5 ~]# df -h
Îļþϵͳ ÈÝÁ¿ ÒÑÓà ¿ÉÓà ÒÑÓÃ% ¹ÒÔØµã
/dev/mapper/rootvg-rootlv 9.7G 7.6G 1.7G 83% /
/dev/sda1 99M 14M 80M 15% /boot
tmpfs 322M 0 322M 0% /dev/shm
/dev/mapper/iscsi-sharedisk 2.0G 68M 1.9G 4% /data
Ìí¼ÓеÄPVµ½VG
½ô½Ó×ÅÉÏÃæµÄ½²½âʵÀý£¬Í¨¹ýfdiskн¨Ò»¸ö´ÅÅÌ·ÖÇø£¬¶ÔÓ¦µÄ·ÖÇøÎª/dev/sda6£¬ÏÖÔÚÒª°ÑÐÂÔöµÄÓ²ÅÌ·ÖÇø¼ÓÈëµ½¾í×éiscsi£¬²Ù×÷ÈçÏ£º
[root@rhel5 ~]# vgdisplay iscsi | grep -i free //Ê×Ïȼì²éiscsi¾í×éÖеĿÕÏпռä
Free PE / Size 686 / 2.68 GB
[root@rhel5 ~]# pvcreate /dev/sda6 //ÏȽ«/dev/sda6ת»»ÎªÎïÀí¾í
Physical volume "/dev/sda6" successfully created
[root@rhel5 ~]# vgextend iscsi /dev/sda6 //½«ÐÂÔöÎïÀí¾íÌí¼Óµ½¾í×éiscsiÖÐ
Volume group"iscsi" successfully extended
[root@rhel5 ~]# vgdisplay iscsi | grep -i free //´ËʱʣÓà¾í×é¿Õ¼ä»¹ÓÐ4.55G£¬¸ÕºÃÊÇÐÂÔöÎïÀí¾íµÄ´óС
Free PE / Size 1164 / 4.55 GB
ÔÚÏßÀ©Õ¹LVµÄ´óС
LVM×îÖ÷ÒªµÄ¹¦ÄܾÍÊÇÄܶ¯Ì¬µÄµ÷Õû·ÖÇøµÄ´óС£¬ÆäʵҲ¾ÍÊÇÐÞ¸ÄÂß¼¾íµÄ´óС
lvresize [-L (+size) -l (+PEÊý)] Âß¼¾íÃû³Æ
À©Õ¹Âß¼¾ísharediskµÄ´óСµ½5G£¬Ö´ÐÐÒÔÏÂÃüÁ
[root@rhel5 ~]# lvresize -L 5G /dev/iscsi/sharedisk
[root@rhel5 ~]# resize2fs /dev/iscsi/sharedisk
resize2fs 1.39 (29-May-2006)
resize2fs: Bad magic number in super-block while trying toopen /dev/iscsi/sharedisk
Couldn't find valid filesystem superblock.
ËõСLVµÄ´óС
ËõСLV±ØÐëÏÈËõСLVËùÔÚµÄÎļþϵͳ(resize2fs)²ÅÄܽøÒ»²½ËõСLV(lvresize)
ËõСÂß¼¾ísharediakµÄ´óСΪ3G
[root@rhel5 ~]# umount /dev/iscsi/sharedisk
[root@rhel5 ~]# e2fsck -f /dev/iscsi/sharedisk //¼ì²éÎļþϵͳµÄ׼ȷÐÔ
e2fsck 1.39 (29-May-2006)
Couldn't find ext2 superblock, trying backup blocks...
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/iscsi/sharedisk: ***** FILE SYSTEM WAS MODIFIED *****
/dev/iscsi/sharedisk: 11/262144 files (9.1% non-contiguous), 25406/524288 blocks
[root@rhel5 ~]# resize2fs /dev/iscsi/sharedisk 3G //ËõСÎļþϵͳµÄ´óСΪ3G
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/iscsi/sharedisk to 786432 (4k) blocks.
The filesystem on /dev/iscsi/sharedisk is now 786432 blocks long.
[root@rhel5 ~]# lvresize -L 3G /dev/iscsi/sharedisk //ËõСÂß¼¾ísharediskµÄ´óСΪ3G
WARNING: Reducing active logical volume to 3.00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce sharedisk? [y/n]: y
Reducing logical volume sharedisk to 3.00 GB
Logical volume sharedisk successfully resized
[root@rhel5 ~]# mount /dev/iscsi/sharedisk /data/
ɾ³ýLV¡¢VG¡¢PV
ɾ³ýÎïÀí¾íµÄÃüÁîÊÇpvremove£¬½«ÎïÀí¾í´Ó¾í×éÒÆ³ýµÄÃüÁîÊÇvgreduce£¬É¾³ý¾í×éµÄÃüÁîÊÇvgremove£¬Í¬Àí£¬É¾³ýÂß¼¾íµÄÃüÁîÊÇlvremove¡£
ɾ³ýÒ»¸ö¾í×éµÄ˳ÐòÊÇ£ºÐ¶ÔØÂß¼¾í·ÖÇø-->ɾ³ý¾í×éÉÏËùÓÐÂß¼¾í-->ɾ³ý¾í×é
[root@rhel5 ~]# umount /dev/iscsi/sharedisk
[root@rhel5 ~]# lvremove /dev/iscsi/sharedisk
Do you really want to remove active logical volume sharedisk? [y/n]: y
Logical volume "sharedisk" successfully removed
[root@rhel5 ~]# vgchange -a n iscsi //Í£Óþí×éiscsi
0 logical volume(s) in volume group"iscsi" now active
[root@rhel5 ~]# vgreduce iscsi /dev/sda6 //´Ó¾í×éiscsi ÖÐÒÆ³ýÒ»¸ö/dev/sda6µÄÎïÀí¾í
Removed "/dev/sda6"from volume group"iscsi"
[root@rhel5 ~]# vgs iscsi
VG #PV #LV #SN Attr VSize VFree
iscsi 1 0 0 wz--n- 4.68G 4.68G
[root@rhel5 ~]# vgremove iscsi /dev/sda5
Volume group"iscsi" successfully removed
[root@rhel5 ~]# pvremove /dev/sda5
Labels on physical volume "/dev/sda5" successfully wiped
[root@rhel5 ~]# pvremove /dev/sda6
Labels on physical volume "/dev/sda6" successfully wiped
LVM¿ìÕÕ£º
LVM¿ìÕÕÊÇ»ùÓÚ´æ´¢¿é»ù±¾µÄ£¬¶ø²»ÊÇÎļþϵͳ¼¶±ðµÄ£¬ËùÒÔµ±Ò»¸ösnapshot´´½¨µÄʱºò£¬½ö¿½±´Ôʼ¾íÀïÊý¾ÝµÄÔªÊý¾Ý(meta-data)¡£´´½¨µÄʱºò£¬²¢²»»áÓÐÊý¾ÝµÄÎïÀí¿½±´£¬Òò´ËsnapshotµÄ´´½¨¼¸ºõÊÇʵʱµÄ£¬µ±Ôʼ¾íÉÏÓÐд²Ù×÷Ö´ÐÐʱ£¬snapshot¸ú×ÙÔʼ¾í¿éµÄ¸Ä±ä£¬Õâ¸öʱºòÔʼ¾íÉϽ«Òª¸Ä±äµÄÊý¾ÝÔڸıä֮ǰ±»¿½±´µ½snapshotÔ¤ÁôµÄ¿Õ¼äÀÒò´ËÕâ¸öÔÀíµÄʵÏÖ½Ð×öдʱ¸´ÖÆ(copy-on-write)¡£
ÔÚд²Ù×÷дÈë¿é֮ǰ£¬CoW½«ÔʼÊý¾ÝÒÆ¶¯µ½ snapshot¿Õ¼äÀÕâÑù¾Í±£Ö¤ÁËËùÓеÄÊý¾ÝÔÚsnapshot´´½¨Ê±±£³ÖÒ»Ö¡£¶ø¶ÔÓÚsnapshotµÄ¶Á²Ù×÷£¬Èç¹ûÊǶÁÈ¡Êý¾Ý¿éÊÇûÓÐÐ޸ĹýµÄ£¬ÄÇô»á½«¶Á²Ù×÷Ö±½ÓÖØ¶¨Ïòµ½Ôʼ¾íÉÏ£¬Èç¹ûÊÇÒª¶ÁÈ¡ÒѾÐ޸ĹýµÄ¿é£¬ÄÇô¾Í¶ÁÈ¡¿½±´µ½snapshotÖеĿ顣
²ÉÈ¡CoWʵÏÖ·½Ê½Ê±£¬snapshotµÄ´óС²¢²»ÐèÒªºÍÔʼ¾íÒ»Ñù´ó£¬Æä´óС½ö½öÖ»ÐèÒª¿¼ÂÇÁ½¸ö·½Ã棺´Óshapshot´´½¨µ½ÊÍ·ÅÕâ¶Îʱ¼äÄÚ£¬¹À¼Æ¿éµÄ¸Ä±äÁ¿Óжà´ó;Êý¾Ý¸üÐÂµÄÆµÂÊ¡£Ò»µ© snapshotµÄ¿Õ¼ä¼Ç¼ÂúÁËÔʼ¾í¿é±ä»»µÄÐÅÏ¢£¬ÄÇôÕâ¸ösnapshotÁ¢¿Ì±»ÊÍ·Å£¬´Ó¶øÎÞ·¨Ê¹Ó㬴Ӷøµ¼ÖÂÕâ¸ösnapshotÎÞЧ¡£
[root@rhel5 ~]# pvcreate /dev/sda{5,6}
Physical volume "/dev/sda5" successfully created
Physical volume "/dev/sda6" successfully created
[root@rhel5 ~]# vgcreate datavg /dev/sda{5,6}
Volume group"datavg" successfully created
[root@rhel5 ~]# lvcreate -n datalv -L 500M datavg
Logical volume "datalv" created
[root@rhel5 ~]# mkfs.ext3 /dev/datavg/datalv
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@rhel5 ~]# mount /dev/datavg/datalv /data
[root@rhel5 ~]# dd if=/dev/zero of=/data/test.img bs=10M count=10
10+0 records in
10+0 records out
104857600 bytes (105 MB) copied, 4.79465 seconds, 21.9 MB/s
[root@rhel5 ~]# lvcreate -L 400M -n snaplv -s /dev/datavg/datalv
Logical volume "snaplv" created
[root@rhel5 ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
datalv datavg owi-ao 500.00M
snaplv datavg swi-a- 400.00M datalv 0.00
rootlv rootvg -wi-ao 9.97G
[root@rhel5 ~]# mount /dev/datavg/snaplv /data_snap/
[root@rhel5 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootlv
9.7G 3.4G 5.8G 38% /
/dev/sda1 99M 14M 80M 15% /boot
tmpfs 212M 0 212M 0% /dev/shm
/dev/mapper/datavg-datalv
485M 111M 354M 24% /data
/dev/mapper/datavg-snaplv
485M 111M 354M 24% /data_snap
[root@rhel5 ~]# ls /data /data_snap/
/data:
lost+found test.img
/data_snap/:
lost+found test.img
[root@rhel5 ~]# dd if=/dev/zero of=/data/test2.img bs=10M count=10
10+0 records in
10+0 records out
104857600 bytes (105 MB) copied, 6.50751 seconds, 16.1 MB/s
[root@rhel5 ~]#
[root@rhel5 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootlv
9.7G 3.4G 5.8G 38% /
/dev/sda1 99M 14M 80M 15% /boot
tmpfs 212M 0 212M 0% /dev/shm
/dev/mapper/datavg-datalv
485M 212M 254M 46% /data
/dev/mapper/datavg-snaplv
485M 111M 354M 24% /data_snap
[root@rhel5 ~]# ls /data /data_snap/
/data:
lost+found test2.img test.img
/data_snap/:
lost+found test.img
[root@rhel5 ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
datalv datavg owi-ao 500.00M
snaplv datavg swi-ao 400.00M datalv 24.76
rootlv rootvg -wi-ao 9.97G
[root@rhel5 ~]# rm -rf /data/*
[root@rhel5 ~]# dd if=/dev/zero of=/data/snap.img bs=40M count=10 //´ËʱdatalvÉϵı仯Á¿½«³¬¹ý¿ìÕÕsnaplvµÄ´óС400M£¬Ôòsnaplv½«Ê§Ð§
[root@rhel5 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootlv
9.7G 3.4G 5.8G 38% /
/dev/sda1 99M 14M 80M 15% /boot
tmpfs 212M 0 212M 0% /dev/shm
/dev/mapper/datavg-datalv
485M 400M 85M 82% /data
/dev/mapper/datavg-snaplv
485M 111M 354M 24% /data_snap
[root@rhel5 ~]# lvs
/dev/datavg/snaplv: read failed after 0 of 2048 at 0: Input/output error
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
datalv datavg owi-ao 500.00M
snaplv datavg Swi-Io 400.00M datalv 100.00
rootlv rootvg -wi-ao 9.97G
[root@rhel5 ~]# rm -rf /data_snap/test.img //¿ìÕÕʧЧ£¬ÀïÃæµÄÎļþÒÑÎÞ·¨¶ÁÈ¡
rm: cannot remove `/data_snap/test.img': Read-only file system
[root@rhel5 ~]# mount -o remount,rw /data_snap/
mount: block device /dev/mapper/datavg-snaplv is write-protected, mounting read-only
[root@rhel5 ~]# lvremove /dev/datavg/snaplv //¿ìÕÕʧЧ£¬Ö»ÄÜÒÆ³ýLV
/dev/cdrom: open failed: Read-only file system
/dev/datavg/snaplv: read failed after 0 of 4096 at 0: Input/output error
Do you really want to remove active logical volume snaplv? [y/n]: y
Logical volume "snaplv" successfully removed
¿ÉÒÔ½«LVM¿ìÕÕÓ¦ÓÃÔÚKVMÐéÄâ»úÖУ¬´´½¨Ò»¸öLV×÷ΪÔʼӳÏñ£¬Îª¸ÃÔʼӳÏñ´´½¨LV¿ìÕÕ×÷ΪÐéÄâ»úµÄ´ÅÅÌÓ³Ïñ£¬ÕâÑù¿ÉÒÔѸËÙ¿Ë¡ϵͳ(´´½¨¿ìÕÕµÄʱ¼ä³£³£²»³¬¹ý¼¸Ãë)ÇÒ½ÚÊ¡´ÅÅ̿ռä(guest¹²ÏíÔʼӳÏñµÄ´ó¶àÊýÊý¾Ý)¡£¼´Ê¹ÏµÍ³³öÏÖÎÊÌâ£¬Ö»ÒªÒÆ³ý¿ìÕÕ¼´¿É¡£
×÷Õߣºmissedyou