ºìÁªLinuxÃÅ»§
Linux°ïÖú

Linux LVM

·¢²¼Ê±¼ä:2011-06-03 20:31:43À´Ô´:ºìÁª×÷Õß:haizdl@126.com
LVMʹÓÃÊÖ²á




1 ¼ò½é


1.1 ʲôÊÇLVM


LVMÊÇ Logical Volume ManagerµÄ¼òд£¬ËüÓÉHeinz MauelshagenÔÚLinux 2.4ÄÚºËÉÏʵÏÖ£¬Ä¿Ç°×îа汾Ϊ£ºÎȶ¨°æ1.0.5£¬¿ª·¢°æ 1.1.0-rc2£¬ÒÔ¼°LVM2¿ª·¢°æ¡£Ó봫ͳµÄ´ÅÅÌÓë·ÖÇøÏà±È£¬LVMΪ¼ÆËã»úÌṩÁ˸ü¸ß²ã´ÎµÄ´ÅÅÌ´æ´¢¡£Ëüʹϵͳ¹ÜÀíÔ±¿ÉÒÔ¸ü·½±ãµÄΪӦÓÃÓëÓû§·ÖÅä´æ´¢¿Õ¼ä¡£ÔÚLVM¹ÜÀíϵĴ洢¾í¿ÉÒÔ°´ÐèÒªËæÊ±¸Ä±ä´óСÓëÒÆ³ý(¿ÉÄÜÐè¶ÔÎļþϵͳ¹¤¾ß½øÐÐÉý¼¶)¡£LVMÒ²ÔÊÐí°´Óû§×é¶Ô´æ´¢¾í½øÐйÜÀí£¬ÔÊÐí¹ÜÀíÔ±ÓøüÖ±¹ÛµÄÃû³Æ(Èçsales¡¢development)´úÌæÎïÀí´ÅÅÌÃû(Èçsda¡¢sdb)À´±êʶ´æ´¢¾í¡£



1.2 ΪʲôʹÓÃLVM


LVMͨ³£ÓÃÓÚ×°±¸´óÁ¿´ÅÅ̵Äϵͳ£¬µ«ËüͬÑùÊÊÓÚ½öÓÐÒ»¡¢Á½¿éÓ²Å̵ÄСϵͳ¡£



1.2.1 СϵͳʹÓÃLVMµÄÒæ´¦



´«Í³µÄÎļþϵͳÊÇ»ùÓÚ·ÖÇøµÄ£¬ÕâÖÖ·½Ê½±È½ÏÖ±¹Û£¬µ«²»Ò׸ı䣺1.²»Í¬µÄ·ÖÇøÏà¶Ô¶ÀÁ¢£¬ÎÞÏ໥ÁªÏµ£¬¸÷·ÖÇø¿Õ¼äºÜÒ×ÀûÓò»Æ½ºâ£¬¿Õ¼ä²»Äܳä·ÖÀûÓá£2.µ±Ò»¸öÎļþϵͳ£¯·ÖÇøÒÑÂúʱ£¬ÎÞ·¨¶ÔÆäÀ©³ä£¬Ö»ÄܲÉÓÃÖØÐ·ÖÇø£¯½¨Á¢Îļþϵͳ£¬·Ç³£Âé·³£»»ò°Ñ·ÖÇøÖеÄÊý¾ÝÒÆµ½ÁíÒ»¸ö¸ü´óµÄ·ÖÇøÖУ»»ò²ÉÓ÷ûºÅÁ¬½ÓµÄ·½Ê½Ê¹ÓÃÆäËü·ÖÇøµÄ¿Õ¼ä¡£3.Èç¹ûÒª°ÑÓ²ÅÌÉϵĶà¸ö·ÖÇøºÏ²¢ÔÚÒ»ÆðʹÓã¬Ö»ÄܲÉÓÃÔÙ·ÖÇøµÄ·½Ê½£¬Õâ¸ö¹ý³ÌÐèÒªÊý¾ÝµÄ±¸·ÝÓë»Ö¸´¡£



µ±²ÉÓÃLVMʱ£¬Çé¿öÓÐËù²»Í¬£º1.Ó²Å̵Ķà¸ö·ÖÇøÓÉLVMͳһΪ¾í×é¹ÜÀí£¬¿ÉÒÔ·½±ãµÄ¼ÓÈë»òÒÆ×ß·ÖÇøÒÔÀ©´ó»òÕß¼õС¾í×éµÄ¿ÉÓÃÈÝÁ¿£¬³ä·ÖÀûÓÃÓ²Å̿ռ䡣2.Îļþϵͳ½¨Á¢ÔÚÂß¼­¾íÉÏ£¬¶øÂß¼­¾í¿É¸ù¾ÝÐèÒª¸Ä±ä´óСÒÔÂú×ãÒªÇó¡£3.Îļþϵͳ½¨Á¢ÔÚLVMÉÏ£¬¿ÉÒÔ¿ç·ÖÇø£¬·½±ãʹÓá£



1.2.2 ´óϵͳʹÓÃLVMµÄÒæ´¦



ÔÚʹÓúܶàÓ²Å̵ĴóϵͳÖУ¬Ê¹ÓÃLVMÖ÷ÒªÊÇ·½±ã¹ÜÀí¡¢Ôö¼ÓÁËϵͳµÄÀ©Õ¹ÐÔ¡£ÔÚÒ»¸öÓкܶ಻ͬÈÝÁ¿Ó²Å̵ĴóÐÍϵͳÖУ¬¶Ô²»Í¬µÄÓû§µÄ¿Õ¼ä·ÖÅäÊÇÒ»¸ö¼¼ÇÉÐԵŤ×÷£¬ÒªÔÚÓû§ÐèÇóÓëʵ¼Ê¿ÉÓÿռäÖÐѰÇóÆ½ºâ¡£Óû§£¯Óû§×éµÄ¿Õ¼ä½¨Á¢ÔÚLVMÉÏ£¬¿ÉÒÔËæÊ±°´ÒªÇóÔö´ó£¬»ò¸ù¾ÝʹÓÃÇé¿ö¶Ô¸÷Âß¼­¾í½øÐе÷Õû¡£µ±ÏµÍ³¿Õ¼ä²»×ã¶ø¼ÓÈëеÄÓ²ÅÌʱ£¬²»±Ø°ÑÓû§µÄÊý¾Ý´ÓÔ­Ó²ÅÌÇ¨ÒÆµ½ÐÂÓ²ÅÌ£¬¶øÖ»Ðë°ÑеķÖÇø¼ÓÈë¾í×é²¢À©³äÂß¼­¾í¼´¿É¡£Í¬Ñù£¬Ê¹ÓÃLVM¿ÉÒÔÔÚ²»Í£·þÎñµÄÇé¿öÏ¡£°ÑÓû§Êý¾Ý´Ó¾ÉÓ²ÅÌ×ªÒÆµ½ÐÂÓ²Å̿ռäÖÐÈ¥¡£



2 LVM¹¹³É


LVMµÄ½á¹¹¼òͼÈçÏ£º




2.1 ¾í×évolume group (VG)


¾í×éÊÇLVMÖÐ×î¸ß³éÏó²ã£¬ÊÇÓÉÒ»¸ö»ò¶à¸öÎïÀí¾íËù×é³ÉµÄ´æ´¢Æ÷³Ø¡£



2.2 ÎïÀí¾íphysical volume (PV)


µäÐ͵ÄÎïÀí¾íÊÇÓ²ÅÌ·ÖÇø£¬µ«Ò²¿ÉÒÔÊÇÕû¸öÓ²ÅÌ»òÒÑ´´½¨µÄSoftware RAID ¾í¡£



2.3 Âß¼­¾ílogical volume (LV)


Âß¼­¾íÏ൱ÓÚ·ÇLVMϵͳÖеķÖÇø£¬ËüÔÚ¾í×éÉϽ¨Á¢£¬ÊÇÒ»¸ö±ê×¼µÄ¿éÉ豸£¬¿ÉÒÔÔÚÆäÉϽ¨Á¢Îļþϵͳ¡£



2.4 ÎïÀí¿éphysical extent (PE)


ÎïÀí¾í°´´óСÏàµÈµÄ¡°¿é¡±Îªµ¥Î»´æ´¢£¬¿éµÄ´óСÓë¾í×éÖÐÂß¼­¾í¿éµÄ´óСÏàͬ¡£



2.5 Âß¼­¿élogical extent (LE)


Âß¼­¾í°´¡°¿é¡±Îªµ¥Î»´æ´¢£¬ÔÚÒ»¾í×éÖеÄËùÓÐÂß¼­¾íµÄ¿é´óСÊÇÏàͬµÄ¡£



2.6 ×ÜÊö


Àý×Ó£ºÓÐÒ»¸ö¾í×éVG1£¬ËüµÄÎïÀí¿é´óСΪ4MB¡£ÔÚÕâ¸ö¾í×éÖÐΪ2¸öÓ²ÅÌ·ÖÇø£º/dev/hda1Óë/dev/hdb1£¬ËüÃÇ·Ö±ð³ÉΪÎïÀí¾íPV1ÓëPV2¡£ÎïÀí¾í½«°´4MBΪµ¥Î»·Ö¿é£¬ÈçPV1ÓëPV2·Ö±ð¿É·ÖΪ99Óë248¿é¡£ÔÚVG1ÉϽ¨Á¢Âß¼­¾í£¬ËüµÄ´óС¿ÉÔÚ1ÖÁ347(99+248)¿éÖ®¼ä¡£µ±½¨Á¢Âß¼­¾íʱ£¬»á½¨Á¢Âß¼­¿éÓëÎïÀí¿éµÄÒ»Ò»Ó³Éä¹ØÏµ¡£



2.7 Ó³Éäģʽ (linear/striped)


ÔÚ½¨Á¢Âß¼­¾íʱ£¬¿ÉÒÔÑ¡ÔñÂß¼­¿éÓëÎïÀí¿éÓ³ÉäµÄ²ßÂÔ£º

1.ÏßÐÔÓ³É䣭½«°ÑÒ»¶¨·¶Î§µÄÎïÀí¿é°´Ë³Ðò·ÖÅ䏸Âß¼­¾í£¬Èç LVµÄLE 1-99Ó³Éäµ½PV1£¬LE 100-347Ó³Éäµ½PV2¡£ 2.½»´íģʽ£­½«°ÑÂß¼­¿é½»´íÓ³Éäµ½²»Í¬µÄÎïÀí¾íÖУ¬Èç LVµÄLE 1Ó³ÉäΪPV1µÄPE1£¬LE 2Ó³ÉäΪPV2µÄPE1£¬LE 3Ó³ÉäΪPV1µÄPE2...¡£ÕâÖÖ·½Ê½¿ÉÒÔÌá¸ßÂß¼­¾íµÄÐÔÄÜ£¬µ«ÊDzÉÓÃÕâÖÖ·½Ê½½¨Á¢µÄÂß¼­¾í½«²»ÄÜÔÚËüÃÇËùÔÚµÄÎïÀí¾íÖÐÀ©Õ¹¡£



2.8 Snapshots (¿ìÕÕ)


LVMÌṩÁËÒ»¸ö·Ç³£ºÃµÄÌØÐÔ£ºsnapshots¡£ËüÔÊÐí¹ÜÀíÔ±½¨Á¢Ò»¸ö¿éÉ豸£º¸ÃÉ豸ÊÇÒ»Âß¼­¾íÔÚijһʱ¿Ì¶³½áµÄ¾«È·¿½±´¡£Õâ¸öÌØÐÔͨ³£ÓÃÓÚÅú´¦Àí¹ý³Ì(È籸·Ý)ÐèÒª´¦ÀíÂß¼­¾í£¬µ«ÓÖ²»ÄÜֹͣϵͳ¡£µ±²Ù×÷Íê³Éʱ£¬snapshotÉ豸¿ÉÒÔ±»ÒƳý¡£Õâ¸öÌØÐÔÒªÇóÔÚ½¨Á¢snapshotÉ豸ʱÂß¼­¾í´¦ÓÚÏàÈÝ״̬¡£



3 LVMµÄÒ»°ã²Ù×÷


3.1 ½¨Á¢PV


Ϊ°ÑÒ»¸ö´ÅÅÌ»ò·ÖÇø×÷ΪPV£¬Ê×ÏÈӦʹÓà pvcreate ¶ÔÆä³õʼ»¯£¬Èç¶ÔIDEÓ²ÅÌ/dev/hdb¡£

PV³õʼ»¯ÃüÁîpvcreateµÄÒ»°ãÓ÷¨Îª£º

# pvcreate PV1 [ PV2 ... ]

#ËüµÄ²ÎÊý¿ÉÒÔÊÇÕû¸ö´ÅÅÌ£¬·ÖÇø£¬Ò²¿ÉÒÔÊÇloopÉ豸¡£



lʹÓÃÕû¸ö´ÅÅÌ£º

# pvcreate /dev/hdb

Õ⽫ÔÚ´ÅÅÌÉϽ¨Á¢VGµÄÃèÊö·û¡£

lʹÓôÅÅÌ·ÖÇø£º£¨Ê¹ÓÃfdisk µÄt ÃüÁî°Ñ/dev/hda1µÄ·ÖÇøÀàÐÍÉèΪ0x8e£¬È»ºóÔËÐУ©

# pvcreate /dev/hdb1



3.2 ½¨Á¢VG


vgcreateµÄÒ»°ãÓ÷¨Îª£º

# vgcreate [options] VG_name PV1 [PV2 ...]

#ÆäÖеĿÉÑ¡Ïî°üÀ¨ÉèÖÃVG×î´óÖ§³ÖµÄLVÊý¡¢PE´óС(ȱʡΪ4MB)µÈ¡£



lÔÚʹÓÃpvcreate ½¨Á¢ÁËPVºó£¬¿ÉÒÔÓÃvgcreate ½¨Á¢¾í×飬ÈçÓÐPV1¡¢PV2·Ö±ðÊÇ/dev/hda1Óë/dev/hdb1£¬Ê¹ÓÃ

# vgcreate testvg /dev/hda1 /dev/hdb1

lµ±Ê¹ÓÃdevfsϵͳʱ£¬Ó¦Ê¹ÓÃÉ豸µÄÈ«Ãû¶ø²»ÄÜÊÇSymbol Link£¬Èç¶ÔÉÏÀýӦΪ£º

# vgcreate testvg /dev/ide/host0/bus0/target0/lun0/part1/ /dev/ide/host0/bus0/target1/lun0/part1



3.3 ¼¤»îVG


ÔÚ±»¼¤»î֮ǰ£¬VGÓëLVÊÇÎÞ·¨·ÃÎʵģ¬Õâʱ¿ÉÓÃÃüÁ

# vgchange -a y testvg

¼¤»îËùҪʹÓõľí×é¡£µ±²»ÔÙʹÓÃVGʱ£¬¿ÉÓÃ

# vgchange -a n testvg

ʹ֮²»ÔÙ¿ÉÓá£



3.4 ÒÆ³ýVG


ÔÚÒÆ³ýÒ»¾í×éǰӦȷÈϾí×éÖв»ÔÙÓÐÂß¼­¾í£¬Ê×ÏÈÐÝÃß¾í×飺

# vgchange -a n testvg

È»ºó¿ÉÓÃvgremoveÒÆ³ý¸Ã¾í×飺

# vgremove testvg



3.5 ΪVGÔö¼ÓÐÂPV


µ±¾í×é¿Õ¼ä²»×ãʱ£¬¿ÉÒÔ¼ÓÈëеÄÎïÀí¾íÀ´À©´óÈÝÁ¿£¬Õâʱ¿ÉÓÃÃüÁîvgextend£¬Èç

# vgextend testvg /dev/hdc1

ÆäÖÐ/dev/hdc1ÊÇеÄPV£¬µ±È»ÔÚÕâ֮ǰ£¬ËüӦʹÓÃpvcreate³õʼ»¯¡£



3.6 ´ÓVGÒÆ³ýPV


ÔÚÒÆ³ýPV֮ǰ£¬Ó¦È·ÈϸÃPVûÓñ»LVʹÓã¬Õâ¿ÉÓÃÃüÁîpvdisplay£¬È磺

# pvdisplay /dev/hda1

ÈçÕâ¸öPVÈÔÔÚ±»Ê¹Óã¬ÔòÓ¦°ÑÊý¾Ý´«ÒƵ½ÆäËüPVÉÏ¡£ÔÚÈ·ÈÏËüδ±»Ê¹Óú󣬿ÉÓÃÃüÁîvgreduce°ÑËü´ÓVGÖÐɾ³ý£¬È磺

# vgreduce testvg /dev/hda1



3.7 ´´½¨LV


ÔÚ´´½¨Âß¼­¾íǰ£¬Ó¦¾ö¶¨LVʹÓÃÄÄЩPV£¬Õâ¿ÉÓÃÃüÁîvgdisplayÓëpvdisplay²é¿´µ±Ç°¾í×éÓëPVµÄʹÓÃÇé¿ö¡£ÔÚÒÑÓеľí×éÉÏ´´½¨Âß¼­¾íʹÓÃÃüÁîlvcreate£¬È磺

# lvcreate -L1500 -ntestlv testvg

#½«ÔÚ¾í×étestvgÉϽ¨Á¢Ò»¸ö1500MBµÄÏßÐÔLV£¬ÆäÃüÃûΪtestlv£¬

¶ÔÓ¦µÄ¿éÉ豸Ϊ/dev/testvg/testlv¡£



# lvcreate -i2 -I4 -l100 -nanothertestlv testvg

#½«ÔÚ¾í×étestvgÉϽ¨Á¢ÃûΪanothertestlvµÄLV£¬Æä´óСΪ100LE£¬

²ÉÓý»´í·½Ê½´æ·Å£¬½»´íֵΪ2£¬¿é´óСΪ4KB¡£



Èç¹ûÐèÒªLVʹÓÃÕû¸öVG£¬¿ÉÊ×ÏÈÓÃvgdisplay ²éÕÒ Total PEÖµ£¬È»ºóÔÚÔËÐÐlvcreateʱָ¶¨¡£È磺

# vgdisplay testvg | grep "Total PE"

# lvcreate -l 10230 testvg -n mylv

½«Ê¹Óþí×étestvgµÄÈ«²¿¿Õ¼ä´´½¨Âß¼­¾ímylv¡£ÔÚ´´½¨Âß¼­¾íºó£¬¾Í¿ÉÔÚÆäÉÏ´´½¨Îļþϵͳ²¢Ê¹ÓÃËü¡£



ÃüÁîlvcreateµÄ³£Ó÷½·¨£º

# lvcreate [options] -n Âß¼­¾íÃû ¾í×éÃû [PV1 ... ]

ÆäÖеij£ÓÿÉÑ¡ÏîÓУº

-i Stripes £º²ÉÓý»´í(striped)·½Ê½´´½¨LV£¬ÆäÖÐStripesÖ¸¾í×éÖÐPVµÄÊýÁ¿¡£

-I Stripe_size £º²ÉÓý»´í·½Ê½Ê±²ÉÓõĿé´óС(µ¥Î»ÎªKB)£¬

Stripe_size±ØÐëΪ2µÄÖ¸Êý£º2N £¬N=2,3...9¡£

-l LEs £ºÖ¸¶¨LVµÄÂß¼­¿éÊý¡£

-L size £ºÖ¸¶¨LVµÄ´óС£¬Æäºó¿ÉÒÔÓÃK¡¢M¡¢G±íʾKB¡¢MB¡¢GB¡£

-s £º´´½¨Ò»ÒÑ´æÔÚLVµÄsnapshot¾í¡£

-n name £ºÎªLVÖ¸¶¨Ãû³Æ¡£



3.8 ɾ³ýLV


Ϊɾ³ýÒ»¸öÂß¼­¾í£¬±ØÐëÊ×ÏÈ´ÓÏµÍ³Ð¶ÔØÆäÉϵÄÎļþϵͳ£¬È»ºó¿ÉÓÃlvremoveɾ³ý£¬È磺

# umount /dev/testvg/testlv

# lvremove /dev/testvg/testlv

lvremove -- do you really want to remove "/dev/testvg/testlv"? [y/n]: y

lvremove -- doing automatic backup of volume group "testvg"

lvremove -- logical volume "/dev/testvg/testlv" successfully removed



3.9 À©Õ¹LV


ΪÂß¼­¾íÔö¼ÓÈÝÁ¿¿ÉʹÓÃlvextend£¬¼´¿ÉÒÔÖ¸¶¨ÒªÔö¼ÓµÄ³ß´çÒ²¿ÉÒÔÖ¸¶¨À©ÈݺóµÄ³ß´ç¡£Èç

# lvextend -L12G /dev/testvg/testlv

#½«À©´óÂß¼­¾ítestlvµÄÈÝÁ¿Îª12GB¡£

# lvextend -L+1G /dev/testvg/testlv

#½«ÎªLV testlvÔÙÔö´óÈÝÁ¿1GBÖÁ13GB¡£

ΪLVÀ©ÈݵÄÒ»¸öǰÌáÊÇ£ºLVËùÔÚµÄVGÓÐ×ã¹»µÄ¿ÕÏд洢¿Õ¼ä¿ÉÓá£

ÔÚΪLVÀ©ÈÝÖ®ºó£¬Ó¦Í¬Ê±ÎªLVÖ®ÉϵÄÎļþϵͳÀ©ÈÝ£¬Ê¹¶þÕßÏàÆ¥Åä¡£¶Ô²»Í¬µÄÎļþϵͳÓÐÏà¶ÔÓ¦µÄÀ©ÈÝ·½·¨¡£



3.9.1 ext2/ext3



³ý·ÇÄÚºËÒÑÓÐext2online ²¹¶¡£¬·ñÔòÔڸıäext2/ext3ÎļþϵͳµÄ´óÐ¡Ê±Ó¦Ð¶ÔØËü£º

# umount /dev/testvg/testlv

# resize2fs /dev/testvg/testlv

# mount /dev/testvg/testlv /home

ÕâÀï¼ÙÉètestlv°²×°µãΪ/home¡£ÔÚes2fsprogs-1.19»òÒÔÉϰ汾Öаüº¬resize2fsÃüÁî¡£

ÔÚLVM·¢ÐаüÖÐÓÐÒ»¸ö³ÆÎªe2fsadmµÄ¹¤¾ß£¬Ëüͬʱ°üº¬ÁËlvextendÓëresize2fsµÄ¹¦ÄÜ£¬È磺

# e2fsadm -L+1G /dev/testvg/testlv

µÈ¼ÛÓÚÏÂÃæÁ½ÌõÃüÁ

# lvextend -L+1G /dev/testvg/testlv

# resize2fs /dev/testvg/testlv

µ«Óû§ÈÔÐèÊ×ÏÈÐ¶ÔØÎļþϵͳ¡£



3.9.2 reiserfs



Óëext2²»Í¬£¬Reiserfs²»±ØÐ¶ÔØÎļþϵͳ£¬È磺

# resize_reiserfs -f /dev/testvg/testvl



3.9.3 xfs



SGI XFSÎļþϵͳ±ØÐëÔÚ°²×°µÄÇé¿öϲſɸıä´óС£¬²¢ÇÒҪʹÓð²×°µã¶ø²»ÊÇ¿éÉ豸£¬È磺

# xfs_growfs /home



3.10 ËõСLV


Âß¼­¾í¿ÉÀ©Õ¹Í¬ÑùÒ²¿ÉËõС£¬µ«Ó¦ÔÚËõСLV֮ǰÊ×ÏȼõСÎļþϵͳ£¬·ñÔò½«¿ÉÄܵ¼ÖÂÊý¾Ý¶ªÊ§¡£



3.10.1 ext2/ext3



¿ÉÒÔʹÓÃLVMµÄ¹¤¾ße2fsadm²Ù×÷£¬È磺

# umount /home

# e2fsadm -L-1G /dev/testvg/testvl

# mount /home

Èç¹û²ÉÓÃresize2fs£¬¾Í±ØÐëÖªµÀËõÉÙºó¾íµÄ¿éÊý£º

# umount /home

# resize2fs /dev/testvg/testvl 524288

# lvreduce -L-1G /dev/testvg/testvl

# mount /home



3.10.2 reiserfs



ÔÚËõСreiserfsʱ£¬Ó¦Ê×ÏÈÐ¶ÔØËü£¬È磺

# umount /home

# resize_reiserfs -s-1G /dev/testvg/testvl

# lvreduce -L-1G /dev/testvg/testvl

# mount -treiserfs /dev/testvg/testvl /home



3.10.3 xfs



ÎÞ·¨ÊµÏÖ¡£



3.11 ÔÚPV¼ä×ªÒÆÊý¾Ý


ÈôÒª°ÑÒ»¸öPV´ÓVGÖÐÒÆ³ý£¬Ó¦Ê×ÏÈ°ÑÆäÉÏËùÓлPEÖеÄÊý¾Ý×ªÒÆµ½ÆäËüPVÉÏ£¬¶øÐµÄPV±ØÐëÊDZ¾VGµÄÒ»²¿·Ö£¬ÓÐ×ã¹»µÄ¿Õ¼ä¡£ÈçÒª°ÑPV1:/dev/hda1ÉϵÄÊý¾ÝÒÆµ½PV2:/dev/sda1ÉÏ¿ÉÓÃÃüÁ

# pvmove /dev/hdb1 /dev/sdg1



Èç¹ûÔÚ¸ÃPVÖ®ÉϵÄLV²ÉÓý»´í·½Ê½´æ·Å£¬ÔòÕâ¸ö×ªÒÆ¹ý³Ì²»Äܱ»´ò¶Ï¡£

½¨ÒéÔÚ×ªÒÆÊý¾Ý֮ǰ±¸·ÝLVÖеÄÊý¾Ý¡£



3.12 ϵͳÆô¶¯£¯¹Ø±Õ


ΪʹϵͳÆô¶¯Ê±¿É×Ô¶¯¼¤»î²¢Ê¹ÓÃLVM£¬¿É½«ÒÔϼ¸ÐÐÌí¼Óµ½Æô¶¯ rc ½Å±¾ÖУº

# /sbin/vgscan

# /sbin/vgchange -a y

ÕâЩÐн«ä¯ÀÀËùÓпÉÓõľí×é²¢¼¤»îËüÃÇ¡£Òª×¢ÒâµÄÊÇ£¬ËüÃÇÓ¦ÔÚ°²×°¾í×éÉϵÄÎļþϵͳ²Ù×÷֮ǰ±»Ö´ÐУ¬·ñÔò½«ÎÞ·¨Õý³£°²×°Îļþϵͳ¡£

ÔÚϵͳ¹Ø»úʱ£¬Òª¹Ø±ÕLVM£¬Õâ¿É½«ÒÔÏÂÕâÐÐÌí¼Óµ½¹Ø»ú rc ½Å±¾ÖУ¬²¢È·±£ËüÔÚжװÁËËùÓÐÎļþϵͳºóÖ´ÐУº

# /sbin/vgchange -a n



4 ´ÅÅÌ·ÖÇøÎÊÌâ


4.1 Ò»¸ö´ÅÅÌÉϵĶà¸ö·ÖÇø


LVMÔÊÐíPV½¨Á¢ÔÚ¼¸ºõËùÓпéÉ豸ÉÏ£¬ÈçÕû¸öÓ²ÅÌ¡¢Ó²ÅÌ·ÖÇø¡¢Soft RAID£º

# pvcreate /dev/sda1

# pvcreate /dev/sdf

# pvcreate /dev/hda8

# pvcreate /dev/hda6

# pvcreate /dev/md1

ËùÒÔÔÚÒ»¿éÓ²ÅÌÉÏ¿ÉÒÔÓжà¸öPV·ÖÇø£¬µ«Ò»°ã½¨ÒéÒ»¿éÓ²ÅÌÉÏÖ»ÓÐÒ»¸öPV£º±ãÓÚ¹ÜÀí£¬Ò×ÓÚ´¦Àí´íÎó¡£±ÜÃâ½»´í·½Ê½ÖÐÐÔÄÜϽµ¡£LVM²»Äܱæ±ðÁ½¸öPVÊÇ·ñÔÚͬһӲÅÌÉÏ£¬¹Êµ±²ÉÓý»´í·½Ê½Ê±£¬»áµ¼ÖÂÐÔÄܸü²î¡£µ«ÔÚijЩÇé¿öÏ¿ɲÉÓãº1°ÑÒÑ´æÔÚµÄϵͳºÏ²¢µ½LVMÖС£ÔÚÒ»¸öÖ»ÓÐÉÙÊýÓ²Å̵ÄϵͳÖУ¬×ª»»ÎªLVMʱÐèÔÚÔÚ¸÷·ÖÇøÖ®¼ä×ªÒÆÊý¾Ý¡£2°ÑÒ»¸ö´óÓ²ÅÌ·Ö¸ø²»Í¬µÄVGʹÓá£



4.2 Sun disk labels


½öÔÚSUNµÄSPARCϵͳÖÐÓдËÎÊÌâ¡£



5 ½¨Á¢LVMÓÃÀý


ÔÚ±¾½ÚÖУ¬½«ÔÚ3¿éSCSIÓ²ÅÌ£º/dev/sda£¬/dev/sdb£¬/dev/sdcÉϰ´²½½¨Á¢LVM¡£



5.1 ×¼±¸·ÖÇø


Ê×ÏÈÒª×öµÄÊdzõʼ»¯Ó²ÅÌ£¬½¨Á¢PV£»Õ⽫»áɾ³ýÓ²ÅÌÉϵÄÔ­ÓÐÊý¾Ý¡£ÔÚ´ËÓÃÕû¸öÓ²ÅÌΪPV£º

# pvcreate /dev/sda

# pvcreate /dev/sdb

# pvcreate /dev/sdc

pvcreateÔÚÿ¸öÓ²ÅÌµÄÆðʼ¶Ë½¨Á¢¾í×éÃèÊöÇø¡£



5.2 ´´½¨¾í×é


ÀûÓÃÉÏÃæÈý¸öPV½¨Á¢¾í×飺

# vgcreate test_vg /dev/sda /dev/sdb /dev/sdc/

È»ºó¿ÉÓÃvgdisplay ²é¿´£¯ÑéÖ¤¾í×éµÄÐÅÏ¢£º

# vgdisplay

ÆäÖÐ×îÖØÒªµÄǰÈýÌõÒªÕýÈ·£¬ÇÒVS sizeÊÇÒÔÉÏÈý¸öÓ²ÅÌÈÝÁ¿Ö®ºÍ¡£



5.3 ½¨Á¢LV


ÔÚÈ·¶¨¾í×étest_vgÕýÈ·ºó£¬¾Í¿ÉÔÚÆäÉÏ´´½¨LV¡£LVµÄ´óС¿ÉÔÚVG´óС·¶Î§ÄÚÈÎÒâÑ¡Ôñ£¬ÈçͬÔÚÓ²ÅÌÉÏ·ÖÇø¡£



5.3.1 ½¨Á¢ÏßÐÔ·½Ê½LV



ÔÚtest_vgÉϽ¨Á¢Ò»¸ö´óСΪ1GBµÄÏßÐÔ·½Ê½LV£º

# lvcreate -L1G -ntest_lv test_vg



5.3.2 ½¨Á¢½»´í·½Ê½LV



ÔÚtest_vgÉϽ¨Á¢Ò»¸ö´óСΪ1GBµÄ½»´í·½Ê½LV£¬½»´í²ÎÊýΪ4KB£º

# lvcreate -i3 -I4 -L1G -ntest_lv test_vg

Èç¹ûʹÓà -i2²ÎÊý£¬ÔòLV½«½öʹÓÃtest_vgÖеÄÁ½¿éÓ²ÅÌ¡£



5.4 ½¨Á¢Îļþϵͳ


ÔÚLV test_lv´´½¨ºó£¬¾Í¿ÉÔÚÆäÉϽ¨Á¢Îļþϵͳ£¬

È磬ext2/ext3ϵͳ£º

# mke2fs /dev/test_vg/test_lv

È磬reiserfs£º

# mkreiserfs /dev/test_vg/test_lv



5.5 ²âÊÔÎļþϵͳ


°²×°LV£º

# mount /dev/test_vg/test_lv /mnt

# df

Ôò¿ÉÒÔͨ¹ý/mnt·ÃÎÊLV¡£



6 ʹÓÃsnapshot ×ö±¸·Ý


ÀýÈçÎÒÃÇÒª¶Ô¾í×é"test_vg"ÿÍí½øÐÐÊý¾Ý¿â±¸·Ý£¬¾ÍÒª²ÉÓÃsnapshotÀàÐ͵ľí×é¡£ÕâÖÖ¾í×éÊÇÆäËü¾í×éµÄÒ»¸öÖ»¶Á¿½±´£¬Ëüº¬ÓÐÔÚ´´½¨snapshot¾í×éʱԭ¾í×éµÄËùÓÐÊý¾Ý£¬ÕâÒâζÄã¿ÉÒÔ±¸·ÝÕâ¸ö¾í×é¶ø²»Óõ£ÐÄÔÚ±¸·Ý¹ý³ÌÖÐÊý¾Ý»á¸Ä±ä£¬Ò²²»ÐèÒªÔÝʱ¹Ø±ÕÊý¾Ý¿â¾íÒÔ±¸·Ý¡£



6.1 ½¨Á¢snapshot¾í


Ò»¸ösnapshot¾í¿É´ó¿ÉС£¬µ«±ØÐëÓÐ×ã¹»µÄ¿Õ¼ä´æ·ÅËùÓÐÔÚ±¾snapshot¾íÉú´æÆÚ¼ä¸Ä±äµÄÊý¾Ý£¬Ò»°ã×î´óÒªÇóÊÇÔ­¾í×éµÄ1.1±¶¡£Èç¿Õ¼ä²»¹»£¬snapshot¾í½«²»ÄÜʹÓá£

# lvcreate -L592M -s -n dbbackup /dev/test_vg/databases



6.2 °²×°snapshot¾í


ÏÖÔÚ¿ÉÒÔ°²×°¸Ã¾í£º

# mkdir /mnt/test_vg/dbbackup

# mount /dev/test_vg/dbbackup /mnt/test_vg/dbbackup

´ÓÉÏÃæ¿ÉÒÔ¿´³ö£¬snapshot¾íÊÇÖ»¶ÁµÄ¡£

µ±Ê¹ÓÃXFSÎļþϵͳʱ£¬mountÃüÁîҪʹÓÃnouuidÓënorecoveryÑ¡Ï

# mount /dev/test_vg/dbbackup /mnt/test_vg/dbbackup -o nouuid,norecovery,ro



6.3 ±¸·ÝÊý¾Ý


Èç²ÉÓÃtarÏò´Å´ø±¸·Ý£º

# tar -cf /dev/rmt0 /mnt/test_vg/dbbackup



6.4 ɾ³ýsnapshot¾í


ÔÚÍê³É±¸·Ýºó£¬¾Í¿ÉÐ¶ÔØ²¢É¾³ýsnapshot¾í¡£

# umount /mnt/test_vg/dbbackup

# lvremove /dev/test_vg/dbbackup
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 3 ÌõÆÀÂÛ

  1. Frthred ÓÚ 2011-06-04 08:52:26·¢±í:

    ˳·ѧѧ

  2. pl_014 ÓÚ 2011-06-04 07:10:35·¢±í:

    Ïȶ¥Ò»Ï£¬²»¹ýÔÚLVMµÄ³õÆÚ£¬»¹ºÜ²»Îȶ¨£¬µ±Ê±»ù±¾ÉÏÓÃlinux°²×°ÅÌ×Ô´øµÄ·ÖÇø¹¤¾ß·Ö³öÁËLVM¾í×éºó£¬¾ÍÁ¬×Ô¼ºÒ²²»ÈÏÁË£¬²»ÖªµÀÏÖÔÚÔõÑùÁË£¬¸Ð¾õ»¹ÊDz»·ÅÐÄ¡£

  3. whatot ÓÚ 2011-06-04 01:25:24·¢±í:

    ÕýÏëʹÓÃÒ»ÏÂÕâ¸ölvm£¬¿´gentoo»òÊÇarchÎĵµÊ±·¢ÏÖÁË£¬¸Ð¾õºÜ²»´í¡£¾Í¿ÉÒÔ±ÜÃâ°ÑÓ²ÅÌ·Ö³ÉÁãÁãËéËéµÄÁË