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

Ò»·Ý·Ç³£ÄÚÐеÄLinux LVM HOWTO

·¢²¼Ê±¼ä:2006-08-29 00:22:05À´Ô´:ºìÁª×÷Õß:Temoc
×÷ Õߣº лÆô·¢

1. Ð÷ÂÛ
»¶Ó­Ä㣬Ç×°®µÄ¶ÁÕß¡£

дÕâ¸öÎĵµµÄÄ¿µÄÊÇΪÁ˸æËßÄãʲôÊÇLVM£¬ËüÔõÑù¹¤×÷£¬ÄãÔõÑùÔËÓÃËüʹÄãµÄÉú»î±äµÃ¸üÈÝÒס£ËäÈ»ÓÐÒ»·ÝLVM FAQ£¬µ«ÈÔÊǵÂÎĵģ¬ËüÊÇ´Ó²»Í¬µÄ½Ç¶ÈÀ´ÃèдµÄ¡£ËüÊÇÒ»·Ý¡°ÕæµÄ¡±HOWTO£¬ÔÚ´«ÊÚÀí½â£¨ÓÐÏ£ÍûµÄ£©µÄʱºòÒ²ÊǷdz£ÄÚÐеġ£

ÎÒҪ˵Çå³þÎÒ²»ÊÇÒ»¸öLinuxÂß¼­¾í¹ÜÀíÆ÷£¨Logical Volume Manager£©µÄ×÷Õß¡£ÎÒÏòÄÇЩ×÷Õß±íʾ¾´Ò⣬ͬʱÎÒÏ£ÍûÄܺÍËûÃǺÏ×÷¡£

²»¿É˼ÒéµÄÊÇÎÒÉõÖÁ²»ÖªµÀLVMµÄ¿ª·¢Õß¡£ÎÒÏ£ÍûÕâÖÖÇé¿ö²»¾Ã»á¸Ä±ä¡£ÎÒÊÂÏÈÏòËûÃDZíʾµÀǸ¡£

1.1 ÃâÔðÉùÃ÷ & Ðí¿É
·Ö·¢Õâ¸öÎĵµÊÇÏ£ÍûËü¶ÔÄãÓÐÓ㬵«ÊDz»ÌṩÈκε£±££¬Ò²Ã»ÓÐÏúÊÛ»òÊÊÓ¦ÌØÊâÄ¿µÄµÄÒþº¬µ£±£¡£

Èç¹ûÄãµÄ´ÅÅÌÈÚ»¯ÁË£¬Ä㹫˾½â¹ÍÁËÄã-Õâ¾ö²»ÊÇÎÒÃÇµÄ´í¡£¶Ô²»Æð¡£Çë¼ÇµÃ¾­³£×ö±¸·Ý£¬ÔÚûÓÐÖØÒªÊý¾ÝµÄϵͳÉÏ×öʵÑé¡£

´ËÍ⣬Richard Allen²»´ú±íËûÀϰå˵»°¡£

LinuxÊÇLinus TorvaldsµÄ×¢²áÉ̱ꡣ

Ó¢ÎÄÔ­ÎÄ£¨Èô·­ÒëÓÐÎó£¬ÒÔÔ­ÎÄΪ׼£©

This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If your disks melt and your company fires you - its never our fault. Sorry. Make frequent backups and do your experiments on non-mission critical systems.

Furthermore, Richard Allen does not speak for his employer.

Linux is a registered trademark of Linus Torvalds.

1.2 Ô¤±¸ÖªÊ¶
²»ÊÇÌ«¶à¡£Èç¹ûÄãÔø¾­°²×°¹ýLinuxºÍ´´½¨¹ýÎļþϵͳ£¨fdisk/mkfs£©£¬ÄÇÄã¾Í×¼±¸¾ÍÐ÷ÁË¡£µ«ÒòΪ×ÜÊÇÒÔrootÉí·Ý²Ù×÷£¬ËùÒÔÒ»¶¨ÒªÐ¡ÐĽ÷É÷£¡´íÎóµÄÃüÁî»ò²Ù×÷É豸Îļþ¶¼¿ÉÄÜËð»µÒѾ­´æÔÚµÄÊý¾Ý¡£

Èç¹ûÄãÖªµÀÔõÑùÅäÖÃHP/UX LVM£¬ÄÇÄ㼸ºõ¶¼Íê³ÉÁË£¬Linux¹¤×÷µÃºÜÏóHPÉϵĴ¦Àí¡£

1.3 ×¢ÒâÊÂÏî
¹ØÓÚÕâ·ÝÎĵµÓм¸µãÐèҪעÊÍ¡£ËäÈ»ÎÒдÁ˴󲿷֣¬µ«ÎÒÕæµÄ²»Ï£ÍûËüÍ£²½¡£ÎÒ¼á¾öÏàÐÅOpen Source£¬ÎÒ¹ÄÀøÄã·´À¡¡¢¸üС¢´ò²¹¶¡µÈµÈ¡£²»Òª²»Ô¸Òâ¸æËßÎÒÃÇÓйØÅŰæ»òÆÕͨµÄÀÏ´íÎó¡£

Èç¹ûÄã¸Ð¾õÄã¸üÓÐ×ʸñÀ´Î¬»¤Ò»²¿·Ö£¬»òÕßÄãÈÏΪÄãÄÜ´´×÷ºÍά»¤Ò»¸öеIJ¿·Ö£¬»¶Ó­Äã¡£Õâ¸öHOWTOµÄSGML¸ñʽÊÇͨ¹ýCVS¿ÉÓõġ£ÎÒÔ¤ÏëÕâ»áÊǸöºÏ×÷¼Æ»®¡£

Õâ·ÝÎĵµÀÄã»á·¢ÏÖÐí¶àFIXMEµÄ֪ͨ¡£²¹¶¡×ÜÊÇ»¶Ó­µÄ£¡ÎÞÂÛÄãÔÚÄÄÀï·¢ÏÖFIXME£¬Äã¶¼ÒªÃ÷°×ÄãÕý²ÈÔÚδ֪µÄÁìÓò¡£Õâ²»ÊÇ˵ÆäËûµØ·½Ã»ÓдíÎ󣬶øÊÇ˵ÕâÀïÊÇÒªÌØ±ð×¢ÒâµÄµØ·½¡£Èç¹ûÄãÒѾ­ÑéÖ¤ÁËʲô£¬Çë¸æËßÎÒ£¬ÎÒºÃɾ³ýÕâFIXME֪ͨ¡£

1.4 ·ÃÎÊ£¬CVS & ¸üÐÂ
Õâ·ÝHOWTOµÄ¹æ·¶¶¨Î»ÔÚ ÕâÀï¡£

ÎÒÃÇÏÖÔÚÓÐÄäÃûµÄCVS·ÃÎÊ£¬¶ÔÈ«ÊÀ½çÆÕ±éÓÐЧ¡£ÕâʹÄã¸üÈÝÒ×»ñµÃ×îаæµÄHOWTO£¬²¢Ìṩ¸Ä±äºÍÔöÇ¿¡£

Èç¹ûÄãÏëͨ¹ýCVS»ñµÃÕâ·ÝHOWTO£¬ÏÂÃæ½ÌÄãÔõÑù×ö£º

$ export CVSROOT=:pserver:anon@outpost.ds9a.nl:/var/cvsroot
$ cvs login
CVS password: [enter cvs (without s)]
$ cvs co lvm-howto
cvs server: Updating lvm-howto
U lvm-howto/lvm-howto.sgml

Èç¹ûÄã·¢ÏÖ´íÎ󣬻òÕßÏëÔö¼Óʲô£¬±¾µØÐÞ¸´Ëü£¬²¢ÔËÐС°cvs diff -u¡±£¬Í¬Ê±½«½á¹û·¢¸øÎÒÃÇ¡£

ÌṩÁËÒ»¸öMakefileÎļþÀ´°ïÖúÄã´´½¨postscript£¬dvi£¬pdf£¬html ºÍ plain text¸ñʽ¡£Äã¿ÉÄÜÐèÒª°²×°sgml-tools£¬ghostscript ºÍ tetex ÒÔ»ñµÃËùÓиñʽ¡£

1.5 Õâ·ÝÎĵµµÄ±àÅÅ
ÎÒÃǽ«Ê×ÏȽâÊÍһЩÐèÒªµÄ»ù±¾ÖªÊ¶¡£ÎÒÃǾ¡Á¿Éè·¨°üÀ¨Àý×ÓÀ´°ïÖúÀí½â¡£

2. ʲôÊÇLVM£¿
´«Í³ÉÏ£¬Ò»¸ö·ÖÇø´óСÊǾ²Ì¬µÄ¡£ÕâÒªÇóÒ»¸öϵͳ°²×°ÈËÔ±±ØÐ뿼ÂǵIJ»ÊÇ¡°ÎÒÒªÔÚÕâ¸ö·ÖÇøÉÏ´æ´¢¶àÉÙÊý¾Ý¡±£¬¶øÊÇ¡°ÎÒ¡®¾¿¾¹¡¯ÒªÔÚÕâ¸ö·ÖÇøÉÏ´æ´¢¶àÉÙÊý¾Ý¡±¡£µ±Ò»¸öÓû§ÔÚÕâ¸ö·ÖÇøÉÏûÓпռäÁË£¬ËûҪô²»µÃ²»ÖØÐ·ÖÇø£¨Õâ¿ÉÄÜÒªÇóÕû¸ö²Ù×÷ÏµÍ³ÖØ×°£©£¬ÒªÃ´Ïó·ûºÅÁ¬½ÓÒ»ÑùʹÓÃ×é×°»ú¡£

Ò»¸ö·ÖÇø¾ÍÊÇÎïÀí´ÅÅÌÉÏһϵÁÐÁ¬ÐøÊý¾Ý¿éµÄ¸ÅÄîÒѾ­ÑݱäÁË¡£¶àÊýÀàUnixϵͳÏÖÔÚÓÐÄÜÁ¦·Ö½âÎïÀí´ÅÅ̵½Ðí¶àµ¥Ôª¡£¶à¸öÇý¶¯Æ÷ÉϵĴ洢µ¥Ôª¿ÉÒÔ»ã¾Û³ÉÒ»¸ö¡°Âß¼­¾í¡±£¬ËüÃÇ¿ÉÒÔ·ÖÅ䏸·ÖÇø¡£ÁíÍ⣬µ¥Ôª¿ÉÒÔËæ×ſռäÒªÇóµÄ¸Ä±ä¶ø´Ó·ÖÇøÖÐÌí¼ÓºÍɾ³ý¡£

Õâ¾ÍÊÇ»ù±¾µÄÂß¼­¾í¹ÜÀíÆ÷£¨LVM£©

ÀýÈ磬¼ÙÉèÄãÓÐÒ»¸ö1GBµÄ´ÅÅÌ£¬²¢ÇÒ´´½¨¡°/home¡±·ÖÇø»¨ÁË600MB¡£ÉèÏëÄãûÓпռäÁË£¬ÓÚÊǾö¶¨¡°/home¡±ÐèÒª1GB¡£Óô«Í³µÄ·ÖÇø¹ÛÄÄã²»µÃ²»ÓÐÁíÍâÒ»¸öÖÁÉÙ1GB´óСµÄÇý¶¯Æ÷¡£½Ó×ÅÔö¼ÓÕâ¸ö´ÅÅÌ£¬´´½¨ÐµÄ/home£¬²¢ÇÒ½«ÏÖÓеÄÊý¾Ý¿½±´¹ýÈ¥¡£

È»¶ø£¬ÓÃLVMÅäÖã¬Äã½ö½öÖ»ÐèÒªÔö¼Ó400MB£¨»ò¸ü´ó£©µÄ´ÅÅÌ£¬²¢½«ËüµÄ´æ´¢µ¥ÔªÌí¼Óµ½¡°/home¡±·ÖÇøÖС£ÆäËû¹¤¾ß¿ÉÒÔÈÃÄãµ÷ÕûÔ­À´ÎļþϵͳµÄ´óС£¬ËùÒÔÄã½ö½öÖ»ÐèÒªµ÷Õû¡°/home¡±´óСÀ´Ê¹Óøü´óµÄ·ÖÇø£¬½Ó×Å·µ»Øµ½ÉÌÎñÖС£

Ò»¸ö·Ç³£ÌØÊâµÄ´¦Àí£¬LVMÉõÖÁ¿ÉÒÔ×öËü×ÔÉíµÄ¡°¿ìÕÕ¡±£¬ÕâʹÄãÄܶԲ»¿ÉÒÆ¶¯µÄÄ¿±ê×ö±¸·Ý¡£ÎÒÃÇ·µ»Øµ½Õâ¸ö¼¤¶¯ÈËÐĵĿÉÄÜÖУ¬ÉÔºó£¬ÓÐÐí¶àÁíÍâµÄÕæÊµÓ¦Óá£

ÒÔÏÂÕ½ÚÖУ¬ÎÒÃǽâÊÍÁËLVMµÄ»ù±¾ÒªËØ£¬ºÍËüʹÓÃÖеÄÐí¶à¸ÅÒª¡£

3. »ù±¾Ô­Àí
Ok£¬²»ÒªÒòΪ¿Ö¾å¶øÍ£Ö¹£¬µ«ÊÇLVMÓÐÐí¶àÄãÒªÃ÷°×µÄÊõÓÒÔÃâÄãΣ¼°ÄãµÄÎļþϵͳ¡£

ÎÒÃÇ´ÓÏÂÃæ¿ªÊ¼£¬»ò¶à»òÉÙ¡£

ÎïÀí½éÖÊ The physical media
ÄãÓ¦¸Ã¸ÐÊÜ¡°ÎïÀí¡±Õâ¸öµ¥´ÊÓм«´óµÄÑÓÉ죬ËäÈ»ÎÒÃǸտªÊ¼¼ÙÉèËü½ö½öÊÇÒ»¸öÓ²ÅÌ£¬»òÕßÒ»¸ö·ÖÇø¡£ÀýÈ磬/dev/hda£¬/dev/hda6£¬/dev/sda¡£Äã¿ÉÒÔת»»Ò»¸ö¿éÉ豸ÉÏÈκÎÁ¬Ðø¿éµ½Ò»¸ö¡£¡£¡£
¡¡
ÎïÀí¾í Physical Volume (PV)
Ò»¸öPVÖ»²»¹ýÊÇÓÐÐí¶à¹ÜÀíÊý¾ÝÌí¼ÓÔÚËüÀïÃæµÄÎïÀí½éÖÊ-Ò»µ©ÄãÌí¼ÓÁËËü£¬LVM¾ÍÈÏΪËüÊÇ¡£¡£¡£µÄÒ»¸ö³ÖÓÐÕß¡£
¡¡
ÎïÀí·ÖÇø Physical Extents (PE)
ÎïÀí·ÖÇøÕæµÄÏóһЩ´óµÄÊý¾Ý¿é£¬Í¨³£Óм¸MB¡£PE¿ÉÒÔ·ÖÅä¸øÒ»¸ö¡£¡£¡£
¡¡
¾í×é Volume Group (VG)
Ò»¸öVGÊÇÓÉÐí¶àÎïÀí·ÖÇø×é³ÉµÄ£¨¿ÉÄÜÀ´×Ô¶à¸öÎïÀí¾í»òÓ²ÅÌ£©¡£ËäÈ»Õâ¿ÉÄÜÈÝÒ×ÈÃÄãÈÏΪһ¸öVG¾ÍÊÇÓɼ¸¸öÓ²ÅÌ×é³ÉµÄ£¨ÀýÈç/dev/hdaºÍ/dev/sda£©£¬µ«ÊǸüÈ·ÇеÄ˵£¬Ëü°üº¬ÓÉÕâЩӲÅÌÌṩµÄÐí¶àPE¡£
¡¡
>´ÓÕâ¸ö¾í×飬PE¿ÉÒÔ·ÖÅä¸øÒ»¸ö¡£¡£¡£
¡¡
Âß¼­¾í Logical Volume (LV)
Yes£¬ÎÒÃÇ×îÖÕµ½´ïij´¦¡£Ò»¸öÂß¼­¾íÊÇÎÒÃǹ¤×÷µÄ×îÖÕ½á¹û£¬ÕâÀïÊÇÎÒÃÇ´æ´¢ÐÅÏ¢µÄµØ·½¡£ÕâµÈͬÓÚ´«Í³·ÖÇøµÄÏë·¨¡£
ÏóÓÃͨ³£µÄ·ÖÇøÒ»Ñù£¬ÔÚÂß¼­¾íÉÏÄãÄÜ´ú±íÐԵĴ´½¨Ò»¸ö¡£¡£¡£
¡¡
Îļþϵͳ Filesystem
ÎļþϵͳÊÇÄãÏëËü³ÉΪµÄÐÎ̬£º±ê×¼µÄ ext2£¬ReiserFS£¬NWFS£¬XFS£¬JFX£¬NTFS£¬µÈµÈ¡£¡£¡£¶ÔLinuxÄÚºËÀ´Ëµ£¬ÔÚͨ³£µÄ·ÖÇøºÍÂß¼­¾íÖ®¼äûÓвî±ð¡£
ÎÒÊÔ×Å»­ÁËÒ»¸öASCIIͼÀ´Ê¹ÕâЩÐÎÏ󻯡£

Ò»¸öÎïÀí¾í£¬°üº¬ÁËÐí¶àÎïÀí·ÖÇø£º

+---[ Physical Volume ]----+
| PE | PE | PE | PE | PE | PE |
+--------------------+

Ò»¸ö¾í×飬°üº¬ÁË2¸öÎïÀí¾í£¨PV£©ÓÐ6¸öÎïÀí·ÖÇø£º

+----[ Volume Group ]-----------+
| +-[PV]-----+ +-[PV]------+ |
| | PE | PE | PE | | PE | PE | PE | |
| +---------+ +----------+ |
+--------------------------+

ÎÒÃÇÏÖÔÚ×ö¸ü½øÒ»²½À©Õ¹£º

+----[ Volume Group ]-----------+
| +-[PV]-----+ +-[PV]------+ |
| | PE | PE | PE | | PE | PE | PE | |
| +-+--+--+--+ +-+---+---+--+ |
| | | | +---/ | | |
| | | | | | | |
| +-+--+--+-+ +---+---+-+ |
| | Logical | | Logical | |
| | Volume | | Volume | |
| | | | | |
| | /home | | /var | |
| +-------+ +--------+ |
+--------------------------+

Õâ¸öÏòÎÒÃÇչʾÁËÁ½¸öÎļþϵͳ£¬Ëü¿çÔ½Á½¸ö´ÅÅÌ¡£/homeÎļþϵͳ°üº¬4¸öÎïÀí·ÖÇø£¬/varÎļþϵͳ°üº¬2¸ö¡£

bert hubert ÕýÔÚдһ¸ö¹¤¾ßÀ´¸üÕæÊµµÄÃèÊöLVM£¬ÕâÀïÌṩÁËһЩËüÔÚÆÁÄ»ÉϳöÏÖµÄÍâ¹Û¡£¿´ÆðÀ´±ÈASCIIͼ»­ÒªºÃ¡£

3.1 Show & Tell
Ok£¬ÕâЩ¸ÅÄîºÜÄÑÀí½â£¨¡¯We are LVM of Borg¡­£©£¬Òò´ËÏÂÃæ¸ø³öÁË´´½¨Ò»¸öÂß¼­¾íµÄÀý×Ó¡£²»ÒªÕ³ÌùÕâ¸öÀý×Óµ½ÄãµÄ¿ØÖÆÌ¨£¬ÒòΪÕâÑù»áÆÆ»µÊý¾Ý£¬³ý·ÇÅöÇÉÄãµÄ¼ÆËã»úµÄ/dev/hda3ºÍ/dev/hdb2ûÓÐʹÓá£

Èç¹ûÓÐÒÉÎÊ£¬²é¿´ÉÏÃæµÄASCIIͼ»­¡£

ÄãÓ¦¸ÃÊ×ÏÈÉèÖÃ/dev/hda3ºÍ/dev/hdb2µÄ·ÖÇøÀàÐÍΪ0¡Á8e£¬Ëü±íʾ¡±Linux LVM¡±¡£Çë×¢ÒâÄãµÄfdiskµÄ°æ±¾¿ÉÄÜÈÔ²»ÈÏʶÕâÖÖÀàÐÍ£¬Òò´ËËüÏÔʾΪ¡°Unknown¡±£º

# fdisk /dev/hda

Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 83 Linux
/dev/hda4 608 614 56227+ 83 Linux

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e

Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 8e Unknown
/dev/hda4 608 614 56227+ 83 Linux

Command (m for help): w

ÎÒÃǶÔ/dev/hdb2×öͬÑùµÄ²Ù×÷£¬Ôڴ˾Ͳ»ÑÝʾÁË¡£ÕâÊÇÐèÒªµÄ£¬ÒÔÖÁLVMÄÜÖØ½¨ÄãÓ¦¸Ã¶ªÊ§µÄÅäÖá£

ͨ³££¬²»ÐèÒªÖØÆô£¬µ«ÓÐЩ¼ÆËã»úÈ´ÒªÇó¡£Òò´ËÈç¹ûÏÂÃæµÄÀý×Ó²»¹¤×÷£¬ÊÔÊÔÖØÆô¡£

½Ó×ÅÎÒÃÇ´´½¨ÎïÀí¾í£¨PV£©£¬ÈçÏ£º

# pvcreate /dev/hda3
pvcreate -- physical volume ¡°/dev/hda3¡å successfully created
# pvcreate /dev/hdb2
pvcreate -- physical volume ¡°/dev/hdb2¡å successfully created

ÎÒÃÇÔÙ½«ÕâÁ½¸öÎïÀí¾í£¨PV£©¼Óµ½Ò»¸ö½Ð×ö¡°test¡±µÄ¾í×飨VG£©ÖУº

# vgcreate test /dev/hdb2 /dev/hda3
vgcreate -- INFO: using default physical extent size 4 MB
vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte
vgcreate -- doing automatic backup of volume group ¡°test¡±
vgcreate -- volume group ¡°test¡± successfully created and activated

ÏÖÔÚÎÒÃÇÓÐÒ»¸ö¿ÕµÄ¾í×飨VG£©£¬ÈÃÎÒÃÇÀ´¼ì²éһϣº

# vgdisplay -v test
-- Volume group --
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 0 / 0
Free PE / Size 46 / 184 MB

-- No logical volumes defined in test --

-- Physical volumes --
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13

PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 33

ÕâÀïµÄÐí¶àÊý¾Ý-´ó¶àÊýÏÖÔÚ¶¼ÈÝÒ×Àí½âÁË¡£ÎÒÃÇ¿´µ½Ã»ÓÐÂß¼­¾í£¨LV£©¶¨Ò壬Òò´ËÎÒÃÇÒª²¹ÉÏËü¡£ÎÒÃǽ«ÔÚ¡°test¡±¾í×飨PV£©Öд´½¨Ò»¸ö50MBµÄÂß¼­¾í£¬½Ð×ö¡°HOWTO¡±£º

# lvcreate -L 50M -n HOWTO test
lvcreate -- rounding up size to physical extent boundary ¡°52 MB¡±
lvcreate -- doing automatic backup of ¡°test¡±
lvcreate -- logical volume ¡°/dev/test/HOWTO¡± successfully created

Ok£¬µ½ÕâÀÎÒÃÇ´´½¨Ò»¸öÎļþϵͳ£º

# mke2fs /dev/test/HOWTO
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
13328 inodes, 53248 blocks
2662 blocks (5.00%) reserved for the super user
First data block=1
7 block groups
8192 blocks per group, 8192 fragments per group
1904 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961

Writing inode tables: done
Writing superblocks and filesystem accounting information: done
# mount /dev/test/HOWTO /mnt
# ls /mnt
lost+found

ÎÒÃÇ×öÍêÁË£¡ÈÃÎÒÃǻعËÎÒÃǵľí×飨VG£©£¬ËüÏÖÔÚ³äÂúÁËһЩ¶«Î÷£º

# vgdisplay test -v
-- Volume group --
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 1
Open LV 1
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 13 / 52 MB
Free PE / Size 33 / 132 MB

-- Logical volume --
LV Name /dev/test/HOWTO
VG Name test
LV Write Access read/write
LV Status available
LV # 1
# open 1
LV Size 52 MB
Current LE 13
Allocated LE 13
Allocation next free
Read ahead sectors 120
Block device 58:0

-- Physical volumes --
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13

PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 20

ºÃ£¬Õâ¾ÍÊÇÁË¡£/dev/hda3ÍêȫûÓ㬶ø/dev/hdb2ÓÐ13¸öÎïÀí·ÖÇø£¨PE£©ÔÚÓá£

3.2 ¼¤»îºÍ·Ç¼¤»î£ºÄں˿ռäºÍÓû§¿Õ¼ä
ºÍʹÓÃËùÓвÙ×÷ϵͳһÑù£¬Linux»®·ÖÁËÁ½¸ö²¿·Ö£ºÄں˿ռ䣨kernel space£©ºÍÓû§¿Õ¼ä£¨user space£©¡£Óû§¿Õ¼äÓÐʱ½Ð×öÓû§Çø£¨userland£©£¬ÕâÒ²ÊǹØÓÚÕâ¸öÖ÷ÌâµÄÒ»¸öºÜºÃµÄÃû×Ö¡£

¹ØÓÚÂß¼­¾í¹ÜÀíÆ÷µÄ´´½¨ºÍÐ޸ͼÊÇÔÚÓû§¿Õ¼ä×öµÄ£¬È»ºó´«¸øÄںˡ£Ò»µ©¾í×é»òÂß¼­¾íÏòÄں˻㱨£¬Ëü¾Í½Ð×ö¡°¼¤»î£¨Active£©¡±¡£µ±Ëü±»¼¤»îʱ£¬Ö»ÓÐijЩ¸ü¸Ä¿ÉÒÔÖ´ÐУ¬ÆäËûµÄ¸ü¸ÄÖ»ÓÐÔÚËü·Ç¼¤»îʱִÐС£

4. Ê×ÒªÌõ¼þ
LVMÔںܴó·¶Î§ÄÚµÄÄÚºËÖж¼ÓÐЧ¡£ÔÚLinux 2.4£¬LVM½«È«²¿±»¼¯³É¡£ÄÚºË2.3.47ºÍÒÔǰµÄ£¬LVMÒª¾­¹ý´¦ÀíÀ´ºÏ²¢µ½Ö÷ÄÚºËÖС£

4.1 ÄÚºË
Linux 2.4
°üº¬ÁËÄãÐèÒªµÄËùÓÐÄÚÈÝ¡£Ï£Íû´ó¶àÊýµÄ·¢Ðа涼½«LVMµ±³ÉÄ£¿é¼¯³ÉÀ´·¢ÐС£Èç¹ûÄãÐèÒª±àÒ룬½ö½öÊǵ±ÄãÑ¡Ôñ¿éÉ豸ʱ´ò¹´LVMÑ¡Ïî¡£

Linux 2.3.99.*
Ò»µ©ÄÚºËÏòǰ·¢Õ¹Îȶ¨ÁË£¬Õⲿ·Ö¾Í²»»á´æÔÚÁË¡£µ«ÊÇÏÖÔÚ£¬ÎÒÃÇ»¹ÊÇÒªÃèÊöһϡ£

µ±ÎÒÃÇдÕâÆªÎĵµÊ±£¬Linux×îеÄÄں˰汾ÊÇ2.3.99pre5£¬ËüÈÔÈ»ÐèҪһЩСµÄ²¹¶¡²ÅÄÜʹLVM¹¤×÷¡£

¶ÔÓÚLinux 2.3.99pre3£¬ÓÐÁ½¸ö²¹¶¡·¢ÐУº

Ò»¸ö²¹¶¡ÊÇÕÅÌùÔÚlinux-kernel£¬ÔÚÕâÀï¿ÉÒÔÕÒµ½¡£

Andrea Arcangeli¸Ä½øÁËÕâ¸ö²¹¶¡£¬ÌṩÁËÒ»¸öÔöÁ¿µÄ²¹¶¡£¬ËüÓ¦ÓÃÓÚ2.3.99pre3 LVM²¹¶¡ºÍÕâÖ®ÉÏ¡£

¶ÔÓÚLinux 2.3.99pre5£¬bert hubert½«ÕâÁ½¸ö²¹¶¡ºÏ²¢³ÉÒ»¸öÁË£¬²¢ÇÒÖ÷ÒªÕë¶Ô2.3.99pre5¡£ÔÚÕâÀï¿ÉÒÔÕÒµ½Õâ¸ö²¹¶¡¡£Ê¹ÓÃËüҪСÐÄ¡£

2.3.99pre6-1£¬Êǵģ¬ÊDz¹¶¡µÄÒ»¸öÔ¤ÀÀ°æ£¬ÌØÉ«ÊǵÚÒ»´ÎÍê³ÉÁËLVMµÄÖ§³Ö£¡ËüÈÔÈ»ÒÅ©ÁËAndreasµÄ²¹¶¡£¬µ«ÎÒÃÇÈ·ÐÅËü²»¾ÃÕæµÄ»á·¢Ðеġ£

2.3.99pre4-ac1ȱʡÓÐÒ»¸öСµÄ²¹¶¡ÔÚ£¬²¢ÇÒÄܹ¤×÷¡£ËäÈ»Ëü²»°üÀ¨AndreasµÄ²¹¶¡¡£

Linux 2.2
FIXME: write this

Linux 2.3
FIXME: write this

4.2 Óû§ÓàµØ
ÄãÐèÒª´ÓLVMÕ¾µãÏÂÔØÓÐЧµÄ¹¤¾ß¡£ÓÃglibc2.1±àÒëϵͳҪÇóµÄһЩ²¹¶¡¡£¼´Ê¹ÕâÑù£¬ÔÚDebian 2.2ÉÏÈÔ»á³ö´í¡£

5. Ôö³¤Îļþϵͳ
Äã¿ÉÒÔÓÃÒ»¸öÔ¤±¸ºÃµÄ½Å±¾×ö´óÁ¿µÄ¹¤×÷£¬Ò²¿ÉÒÔ¸ù¾ÝÄãµÄÐèÒªÊÖ¹¤×ö

5.1 ʹÓÃe2fsadm
Èç¹ûÔÚÄãµÄ¾í×éÖÐÓÐÊ£Óà¿Õ¼ä£¬²¢ÇÒÄãʹÓõÄÊÇext2Îļþϵͳ£¨´ó¶àÊýÈ˶¼ÊÇÕâÑùµÄ£©£¬Äã¾Í¿ÉÒÔʹÓÃÕâ¸ö±ã½ÝµÄ¹¤¾ß¡£

e2fsadmÃüÁîÀûÓÃÉÌÒµµÄresize2fs¹¤¾ß¡£ËäÈ»ÈËÃǶ¼¸Ð¾õresize2fsÊÇÒ»¸öºÜºÃµÄÈí¼þ£¬µ«ÊÇËü²¢Ã»Óб»¹ã·ºµÄ°²×°¡£

Èç¹ûÄãÏëʹÓÃFSFµÄext2resizeÃüÁÄãÐèÒª¸æËße2fsadmÒÔÏÂÄÚÈÝ£º

# export E2FSADM_RESIZE_CMD=ext2resize
# export E2FSADM_RESIZE_OPTS=¡±"

Óàϵľͼòµ¥ÁË£¬e2fsadmʹÓÃʱºÜÏóÆäËûµÄLVMÃüÁ

# e2fsadm /dev/test/HOWTO -L+50M
e2fsadm -- correcting size 102 MB to physical extent boundary 104 MB
e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
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/test/HOWTO: 11/25688 files (0.0% non-contiguous), 3263/102400 blocks
lvextend -- extending logical volume ¡°/dev/test/howto¡± to 104 MB
lvextend -- doing automatic backup of volume group ¡°test¡±
lvextend -- logical volume ¡°/dev/test/HOWTO¡± successfully extended

ext2_resize_fs
ext2_grow_fs
ext2_block_relocate
ext2_block_relocate_grow
ext2_grow_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
ext2_add_group
direct hits 4096 indirect hits 0 misses 1
e2fsadm -- ext2fs in logical volume ¡°/dev/test/HOWTO¡± successfully extended to 104 MB

5.2 Ôö³¤Âß¼­¾í
e2fsadmÃüÁîΪÄã×öÁËÕâЩ¹¤×÷¡£È»¶ø£¬Á˽âÔõÑùÊÖ¹¤À´×ö¿ÉÄÜ»áÓÐÓõġ£

Èç¹ûÔÚÄãµÄ¾í×éÖÐÓÐÊ£Óà¿Õ¼ä£¬ÄÇôֻÐèÒªÒ»ÐУº

# lvextend -L+12M /dev/test/HOWTO
lvextend -- rounding size to physical extent boundary
lvextend -- extending logical volume ¡°/dev/test/HOWTO¡± to 116 MB
lvextend -- doing automatic backup of volume group ¡°test¡±
lvextend -- logical volume ¡°/dev/test/HOWTO¡± successfully extended

5.3 Ôö³¤¾í×é
ÕâÊÇÓÃvgextend¹¦ÄÜʵÏֵģ¬ËüºÜÏóÏÚ±ýÒ»ÑùÈÝÒס£ÄãÊ×ÏÈÐèÒª´´½¨Ò»¸öÎïÀí¾í¡£ÕâÒªÓÃpvcreateÀ´ÊµÏÖ¡£Ê¹ÓÃÕâ¸ö¹¤¾ß£¬Äãת»»ÈκοéÉ豸Ϊһ¸öÎïÀí¾í¡£

ÕâÑù×öÁËÖ®ºó£¬vgextend×öÓàϵÄÈÎÎñ£º

# pvcreate /dev/sda1
pvcreate -- physical volume ¡°/dev/sda1¡å successfully created
# vgextend webgroup /dev/sda1
vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte
vgextend -- doing automatic backup of volume group ¡°webgroup¡±
vgextend -- volume group ¡°webgroup¡± successfully extended

Çë×¢Ò⣬ΪÁËÒª×öÕâЩ£¬ÄãµÄ¾í×鱨ÐëÊǼ¤»îµÄ¡£Äã¿ÉÒÔͨ¹ýÖ´ÐÐÏó¡°vgchange -a y webgroup¡±À´Ê¹Ëü¼¤»î¡£

5.4 Ôö³¤Îļþϵͳ
Èç¹ûÄãÏëÊÖ¹¤×ö£¬ÓÐÁ½Ìõ·¾¶¿ÉÒÔʵÏÖ¡£

ext2ÀëÏߣ¬Ê¹ÓÃext2resize
ÀëÏߣ¬¾ÍÒâζ×ÅÄã±ØÐëumountÕâ¸öÎļþϵͳÀ´×öÕâЩ¸Ä±ä¡£ÔÚ×öÕâЩ¸Ä±äµÄʱºò£¬Õâ¸öÎļþϵͳºÍËüÉÏÃæµÄÊý¾ÝÔÝʱ²»¿ÉÓá£Èç¹ûÄãÏëÀ©³ä¸ù·ÖÇø»òÆäËûÖØÒªµÄ·ÖÇø£¬Äã±ØÐëÓÃÆäËûµÄÆô¶¯½éÖÊÀ´Òýµ¼¡£

ext2resize¹¤¾ß¿ÉÒÔÔÚGNU ftpÕ¾µãÕÒµ½£¬µ«´ó¶àÊýµÄ·¢Ðа涼½«Ëü×÷Ϊһ¸ö°üÀ´·¢ÐС£ËüµÄÓï·¨Ò²¼òµ¥Ò×¶®£º

# ext2resize /dev/HOWTO/small 40000

ÕâÀï40000ÊÇÎļþϵͳÒѾ­Ôö³¤»òÊÕËõÖ®ºóµÄ¿éµÄÊýÄ¿¡£

ext2ÔÚÏß
FIXME: write this

6. Ìæ»»´ÅÅÌ
ÕâÊÇLVMµÄºÃ´¦Ö®Ò»¡£Ò»µ©Äã·¢ÏÖij¸ö´ÅÅÌÓдíÎó£¬ÄǾÍÊÇÒªÒÆ¶¯ÄãµÄÊý¾ÝµÄʱºòÁË¡£Ê¹ÓÃLVMËüºÜÏóÏÚ±ýÒ»ÑùÈÝÒס£ÎÒÃÇÊ×ÏȾÙÒ»¸öÃ÷ÏÔµÄÌæ»»Àý×Ó£¬ÄãÏÈÌí¼ÓÒ»¸ö´ÅÅ̵½ÏµÍ³ÖУ¬ËüÖÁÉÙÒªºÍÄãÏëÒªÌæ»»µÄ´ÅÅÌÒ»Ñù´ó¡£

ÒªÒÆ¶¯Êý¾Ý£¬ÎÒÃÇÒÆ¶¯¾í×éµÄÎïÀí·ÖÇøµ½ÁíÒ»¸ö´ÅÅÌÉÏ£¬»òÕ߸ü׼ȷµÄ˵£¬µ½ÁíÒ»¸öÎïÀí¾íÉÏ¡£Òª×öÕâЩ£¬LVM¸øÎÒÃÇÌṩÁËpvmove¹¦ÄÜ¡£

¼ÙÉèÎÒÃÇ»³ÒɵÄÄÇ¿é´ÅÅ̽Ð/dev/hda1£¬²¢ÇÒÎÒÃÇÏëÓÃ/dev/sdb3À´Ìæ»»Ëü¡£ÎÒÃÇÊ×ÏȽ«/dev/sdb3Ìí¼Óµ½°üº¬/dev/hda1µÄÄǸö¾í×éÖС£

ÔÚÕâ֮ǰ£¬umountÕâ¸ö¾í×éÉϵÄËùÓÐÎļþϵͳ¿´À´ÊÇÃ÷Öǵġ£ÓÐÒ»¸öÈ«±¸·ÝÒ²²»»áËð»µÊ²Ã´¡£

FIXME: is this necessary?

½ÓÏÂÀ´ÎÒÃÇÖ´ÐÐpvmove¡£·Ç³£¼òµ¥µÄ£¬ÎÒÃǽö½öÌáµ½ÎÒÃÇÏëÒªÒÆ×ßµÄÄÇ¿é´ÅÅÌ£¬¾ÍÏóÕâÑù£º

# pvmove /dev/hda1
pvmove -- moving physical extents in active volume group ¡°test1¡å
pvmove -- WARNING: moving of active logical volumes may cause data loss!
pvmove -- do you want to continue? [y/n] y
pvmove -- doing automatic backup of volume group ¡°test1¡å
pvmove -- 12 extents of physical volume ¡°/dev/hda1¡å successfully moved

ÇëÁôÒâÕâ¸ö¾¯¸æ¡£¶øÇÒ¿´À´ÖÁÉÙÓÐЩÄں˻òLVMµÄ°æ±¾ÔÚʹÓÃÕâ¸öÃüÁîʱÓÐÎÊÌâ¡£ÎÒÊÇÓÃ2.3.99pre6-2À´²âÊԵģ¬Ëü¿ÉÒÔ¹¤×÷£¬µ«Òª¾¯¸æ¡£

ÏÖÔÚ£¬/dev/hda1ûÓаüº¬ÈκÎÎïÀí·ÖÇøÁË£¬ÎÒÃÇ¿ÉÒÔ½«Ëü´Ó¾í×éÖÐɾ³ý£º

# vgreduce test1 /dev/hda1
vgreduce -- doing automatic backup of volume group ¡°test1¡å
vgreduce -- volume group ¡°test1¡å successfully reduced by physical volume:
vgreduce -- /dev/hda1

FIXME: we need clarity on a few things. Should the volume group be active? When do we get data loss?

6.1 µ±ÊÂÇé·¢ÉúÔÚÍíÆÚʱ
Èç¹ûÒ»¸ö´ÅÅÌûÓгöÏÖ¾¯¸æ¾Íʧ°ÜÁË£¬Äã¾Í²»ÄÜÒÆ×ßËüÉÏÃæµÄÎïÀí·ÖÇøµ½ÁíÒ»¸öÎïÀí¾íÉÏ£¬ÕâÑùÄã¿ÉÄܻᶪʧÊý¾Ý£¬³ý·ÇÔÚÕâ¸öʧ°ÜµÄPVÉϵÄÂß¼­¾íÊǾµÏñÁ˵ġ£ÕýÈ·µÄÐÐΪÊÇÓÃÒ»¸öͬÑùµÄPV»òÕßÖÁÉÙͬÑù´óСµÄ·ÖÇøÀ´Ìæ»»Õâ¸öʧ°ÜµÄPV¡£

/etc/lvmconfĿ¼°üº¬ÁËLVMÊý¾ÝºÍ½á¹¹µÄ±¸·Ý£¬°üÀ¨ÄÄЩ´ÅÅÌ×ö³ÉÁËPV£¬Ã¿¸öPVÊôÓÚÄĸöVG£¬Ã¿¸öVGÖÐÓÐÄÄЩLV¡£

Ìæ»»Á˳ö´íµÄ´ÅÅÌÖ®ºó£¬Äã¿ÉÒÔÓÃvgcfgrestorÃüÁîÀ´»Ö¸´LVMÊý¾Ýµ½ÐµÄPVÉÏ¡£Ëü»Ö¸´¾í×éºÍËùÓÐËüµÄÐÅÏ¢£¬µ«ÊDz»»á»Ö¸´ÔÚÂß¼­¾íÉϵÄÊý¾Ý¡£ÕâÊÇÒòΪµ±LVMÊý¾Ý×öһЩ¸ü¸Äʱ£¬LVMÃüÁî×Ô¶¯×ö±¸·Ý¡£

-----------------------------------------------------

7. ΪһÖÂÐÔ±¸·Ý×ö¿ìÕÕ
ÕâÊǸü¼ÓÄÑÒÔÖÃÐŵÄÒ»¸ö¿ÉÄÜÐÔ¡£¼ÙÉèÄãÓÐÒ»¸ö·Ç³£·±Ã¦µÄ·þÎñÆ÷£¬ÓÐÐí¶à¶«Î÷ÔËÐС£ÎªÁËÒ»¸öÓÐÓõı¸·Ý£¬ÄãÐèҪֹͣ´óÁ¿µÄ³ÌÐò£¬·ñÔò£¬Ä㽫ÒÔÊý¾Ý²»Ò»Ö¸æÖÕ¡£

Ò»¸ö¹æ·¶µÄÀý×ÓÊÇ´Ó/tmpÒÆ¶¯Ò»¸öÎļþµ½/rootÏ£¬¶øÇÒ/root½«Ïȱ¸·Ý¡£µ±/root±»¶ÁµÄʱºò£¬Õâ¸öÎļþ»¹²»ÔÚÄÇÀï¡£µ±/tmp±»±¸·Ýʱ£¬Õâ¸öÎļþÒѾ­²»ÔÚÁË¡£

ÁíÒ»¸öÊÂÀýÊDZ£´æÊý¾Ý¿â»òĿ¼¡£Èç¹ûÒ»¸öÎļþÔÚʹÓÃ״̬£¬ÎÒÃǾÍûÓÐÈκÎÏßË÷ÁË£¬³ý·ÇÎÒÃǸøÓ¦ÓóÌÐòʱ¼ä×öÒ»¸öÇå³ýµÄ¹Ø±Õ¡£

ÕâÑùµÄ»°£¬ÐµÄÎÊÌâÓÖ³öÏÖÁË¡£ÎÒÃǹرճÌÐò£¬×öÎÒÃǵı¸·Ý£¬½Ó×ÅÖØÐÂÆô¶¯ËüÃÇ¡£Èç¹û±¸·ÝÖ»»¨¼¸·ÖÖÓÕâÊǺܺõ쬵«ÊÇ£¬Èç¹ûËüÒª»¨ÊýСʱ£¬»òÕßÄã¸ù±¾²»È·¶¨Ëüµ½µ×Òª»¨¶à¾ÃµÄʱºò£¬ÊÂÇé¾ÍÕæµÄÍ´¿àÁË¡£

LVM¿ÉÒÔÓª¾È¡£

ʹÓÃLVM£¬ÎÒÃÇ¿ÉÒÔ×öÒ»¸öLV˲¼äµÄ¿ìÕÕ£¬È»ºómountËü£¬ÔÙ±¸·ÝËü¡£

ÈÃÎÒÃÇÊÔÑéһϣº

# mount /dev/test/HOWTO /mnt
# echo > /mnt/a.test.file
# ls /mnt/
a.test.file lost+found
# ls -l /mnt/
total 13
-rw-r-r- 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found

Ok£¬ÎÒÃÇÏÖÔÚÓÐЩÊÂÇéÒªÓÃËüÒ»Æð×ö¡£ÈÃÎÒÃDzúÉúÕâ¸ö¿ìÕÕ£º

# lvcreate -size 16m -snapshot -name snap /dev/test/HOWTO
lvcreate -- WARNING: all snapshots will be disabled if more than 16 MB are changed
lvcreate -- INFO: using default snapshot chunk size of 64 KB
lvcreate -- doing automatic backup of ¡°test¡±
lvcreate -- logical volume ¡°/dev/test/HOWTO¡± successfully created

¶ÔÓÚ¡°-size¡±²ÎÊýÒÔºóÔÙÏêÊö¡£ÈÃÎÒÃÇmountÕâ¸ö¿ìÕÕ£º

# mount /dev/test/snap /snap
# ls /snap
total 13
-rw-r-r- 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found

ÏÖÔÚÎÒÃÇ´ÓÔ­´¦É¾³ýa.test.file£¬²¢ÇÒ¼ì²éËüÊÇ·ñÈÔÈ»ÔÚ¿ìÕÕÀ

# rm /mnt/a.test.file
# ls /snap
total 13
-rw-r-r- 1 root root 1 Apr 2 00:28 a.test.file
drwxr-xr-x 2 root root 12288 Apr 2 00:28 lost+found

Ì«ÁîÈ˾ªÑÈÁË£¡

7.1 ËüÊÇÈçºÎ¹¤×÷µÄ£¿
¼ÇµÃÎÒÃDz»µÃ²»ÉèÖá°-size¡±²ÎÊýÂð£¿ÕæÕý·¢ÉúµÄÊÂÇéÊÇ£¬¡°snap¡±¾íÐèÒªÓÐÄÇЩµ±LVMµ÷ÓÃʱ£¬ÔÚÔ­´¦Òª±»¸Ä±äµÄËùÓпéµÄÒ»¸ö¿½±´¡£

µ±ÎÒÃÇɾ³ýa.test.fileʱ£¬ËüµÄi½Úµã±»É¾³ý¡£ÕâÒýÆð64KBÒª±»±ê×¢³É¡°ÔàµÄ¡±-ͬʱԭʼÊý¾ÝµÄÒ»¸ö¿½±´±»Ð´µ½¡°snap¡±¾í¡£Õâ¸öÀý×ÓÖУ¬ÎÒÃÇ·ÖÅäÁË16MB¸ø¿ìÕÕ£¬Òò´ËÈç¹û¶àÓÚ16MBµÄ¿éÒª±»Ð޸ģ¬¿ìÕվͻáÎÞЧÁË¡£

Òª¾ö¶¨Ò»¸ö¿ìÕÕ·ÖÇøµÄÕýÈ·´óС£¬Ä㽫²»µÃ²»ÍƲâ»ùÓÚÖ÷LVµÄʹÓÃģʽ¡¢¿ìÕÕÒª¼¤»îµÄ×Üʱ¼ä¡£ÀýÈ磬ÔÚÎçÒ¹£¬µ±ÎÞÈËʹÓÃϵͳµÄÇé¿öÏ£¬Ò»¸ö¼¸Ð¡Ê±µÄ±¸·Ý¿ÉÄÜÒªÇóºÜСµÄ¿Õ¼ä¡£

Çë×¢Ò⣬¿ìÕÕ²»ÊÇÓÀ¾ÃµÄ¡£Èç¹ûÄãжÏÂLVM»òÖØÆô£¬ËüÃǾͶªÊ§ÁË£¬ÐèÒªÖØÐ´´½¨¡£

-----------------------------------------------------

8. ÈßÓà & ÐÔÄÜ
ΪÁËÐÔÄܵĿ¼ÂÇ£¬¿ÉÒÔ½«Êý¾Ý·ÖÉ¢ÔÚ¼¸¸öÌõ¿é»¯µÄ´ÅÅÌÉÏ¡£ÕâÒâζ×Å¿é1ÔÚPV AÉÏ£¬¿é2ÔÚPV BÉÏ£¬¿é3ÓÖÔÚPV AÉÏ¡£ÄãÒ²¿ÉÒÔÌõ¿é»¯¿ç¶àÓà2¿é´ÅÅÌ¡£

ÕâÑùµÄ°²ÅÅÒâζ×ÅÄãÓиü¶àÓÐЧµÄ´ÅÅÌ´ø¿í¡£Ò²¾ÍÊÇ˵°üº¬Á˸ü¶àµÄ¡°Öᡱ¡£ÒÔºó»áÏêÊö¡£

³ý´ËÖ®Í⣬ΪÁËÌá¸ßÐÔÄÜ£¬Ò²¿ÉÒÔ½«ÄãµÄÊý¾ÝÔÚ¶à¸ö´ÅÅÌÉÏÓжà·Ý¿½±´¡£Õâ½Ð×ö¾µÏñ¡£Ä¿Ç°£¬LVM±¾Éí»¹²»Ö§³ÖËü£¬µ«ÊÇÓжàÖÖ·½·¨ÄÜʵÏÖ¾µÏñ¡£

8.1 ΪºÎÒªÌõ¿é»¯£¿
´ÅÅ̵ÄÐÔÄÜÖÁÉÙÊÜÈýÖÖÒòËØµÄÓ°Ïì¡£×îÃ÷ÏÔµÄÊÇÒ»¿é´ÅÅÌÉϵÄÊý¾ÝÄÜÁ¬Ðø±»¶Á»òдµÄËÙ¶È¡£ÕâÊǵ±¶Á»òд½öÁ¬½ÓÁËÒ»¸öµ¥Ò»µÄ´ÅÅ̵ÄSCSI/IDE×ÜÏßÉϵÄÒ»¸ö´óÎļþʱµÄÏÞÖÆÒòËØ¡£

½Ó×ÅÊǵ½´ÅÅ̵ÄÓÐЧ´ø¿í¡£Èç¹ûÄãÔÚÒ»¸öSCSI×ÜÏßÉÏÓÐ7¿éÅÌ£¬ÕâÒ²Ðí»áСÓÚÄãµÄ´ÅÅ̱¾ÉíдµÄËÙ¶È¡£Èç¹ûÄãÔ¸Ò⻨×ã¹»µÄÇ®£¬Äã¿ÉÒÔ±ÜÃâÕâ¸öÆ¿¾±³ÉΪһ¸öÎÊÌâ¡£

È»ºóÊÇÏìӦʱ¼ä¡£µ±³ÉÑèÓï˵£¬ÏìӦʱ¼ä×ÜÊÇ»µÏûÏ¢¡£ÉõÖÁ¸ü»µµÄÊÇ£¬Äã²»¿ÉÄÜͨ¹ý»¨¸ü¶àµÄÇ®À´½µµÍÏìӦʱ¼ä£¡ÏÖÔÚ³ö²úµÄ´ó¶àÊý´ÅÅÌÓÐÒ»¸ö´óÔ¼7msµÄÏìӦʱ¼ä¡£»¹ÓÐSCSIÏìӦʱ¼ä£¬Í¨³£ÊÇ´óÔ¼25ms¡£

FIXME: need recent numbers!

ÕâÒâζ×Åʲô£¿ÔÚÒ»¸öµäÐÍÇéÐΣ¬×ܵÄÏìӦʱ¼ä´óÔ¼ÊÇ30ms¡£Òò´ËÄãÿÃëÖÓÖ»ÄÜÖ´ÐдóÔ¼33¸ö´ÅÅ̲Ù×÷¡£Èç¹ûÄãÏëÿÃëÖÓÄÜ×öÊýǧ¸ö²éѯ£¬²¢ÇÒÄãûÓдóÁ¿µÄ»º´æ£¬ÄÇôÄã¾Í·Ç³£²»×ßÔËÁË¡£

Èç¹ûÄãÓжà¸ö´ÅÅÌ£¬»òÕß¡°Öᡱ£¬ÔÚ²¢Ðй¤×÷£¬ÄÇôÄã¿ÉÒÔÓжà¸öÃüÁîºÜºÃµØÎ§ÈÆÄãµÄÏìÓ¦ÎÊÌâͬʱִÐС£ÓÐЩӦÓóÌÐò£¬±ÈÈçÒ»¸ö´óµÄÐÂÎÅ·þÎñÆ÷£¬Èç¹ûûÓÐÌõ¿é»¯»òÆäËüI/OÃô½ÝÐÔËüÉõÖÁ²»ÔÙ¹¤×÷¡£

Õâ¾ÍÊÇÌõ¿é»¯×öµÄÊ¡£Èç¹ûÄãµÄ×ÜÏßÄÜʤÈΣ¬ÉõÖÁÁ¬ÐøµÄ¶ÁºÍд¿ÉÄÜ»á¸ü¿ì¡£

8.2 ΪºÎ²»Ìõ¿é»¯
Ìõ¿é»¯Ã»ÓнøÒ»²½µÄ´ëÊ©À´½â³ýÄãµÄ´íÎó»ú»á£¬°´Ò»¸ö¡°Ã¿´ÎÒ»±ÈÌØ¡±µÄ»ù±¾Ô­Ôò¡£Èç¹ûÄãµÄ´ÅÅÌÈÎÒ»¿éËÀÁË£¬ÄãÈ«²¿µÄÂß¼­¾í¶¼»á¶ªÊ§¡£Èç¹ûÄãÕýºÃÁ¬½ÓÊý¾Ý£¬½ö½öÎļþϵͳ²¿·Ö¶ªÊ§¡£

×îÖÕµÄÑ¡ÏîÊǾµÏñµÄÌõ¿é»¯¡£

FIXME: make a mirrored stripe with LVM and md

8.3 LVM±¾ÉíµÄÌõ¿é»¯
µ±ÓÃlvcreate´´½¨LVʱ£¬Ö¸¶¨Ìõ¿é»¯ÅäÖÃÏî¡£ÓÐÁ½¸öÏà¹Ø²ÎÊý¡£-i²ÎÊý¸æËßLVMÓ¦¸ÃÔÚ¶àÉÙ¸öPVÉÏ·ÖÉ¢Êý¾Ý¡£Ìõ¿é»¯²»ÊÇÕæµÄ°´Ò»´ÎÒ»±ÈÌØµÄ»ù´¡À´×öµÄ£¬¶øÊǰ´¿é¡£-I²ÎÊýÖ¸¶¨µ¥Î»ÎªKBµÄ¿é´óС¡£×¢ÒâËü±ØÐëÊÇ2µÄÒ»¸öÃÝ£¬¶øÇÒ×î´óµÄ¿é´óСΪ128KB¡£

ÀýÈ磺

# lvcreate -n stripedlv -i 2 -I 64 mygroup -L 20M
lvcreate -- rounding 20480 KB to stripe boundary size 24576 KB / 6 PE
lvcreate -- doing automatic backup of ¡°mygroup¡±
lvcreate -- logical volume ¡°/dev/mygroup/stripedlv¡± successfully created

ÐÔÄÜ×¢ÒâÊÂÏî
Èç¹û¿çͬһ¿é´ÅÅ̵ÄÁ½¸ö·ÖÇøÀ´Ìõ¿é»¯£¬ÐÔÄܵġ°Ôö¼Ó¡±¿ÉÄÜ»áÊǷdz£Ïû¼«µÄ-×¢Òâ±ÜÃâÕâÑù¡£¿çµ¥Ò»µÄIDE×ÜÏßÉϵÄÁ½¸ö´ÅÅÌÀ´Ìõ¿é»¯Ò²ÊÇûÓõÄ-³ý·ÇIDEÒѾ­¸Ä½øÁËÎÒËù¼ÇÒäµÄ¡£

FIXME: is this still true?

ºÜÀϵÄÖ÷°å¿ÉÄÜÓÐÁ½¸öIDE×ÜÏߣ¬µ«Êǵڶþ¸öͨ³£ÊÇÓÃÓÚÒ»¸öÏà¶ÔÂýµÄcdromÇý¶¯Æ÷¡£Äã¿ÉÒÔÓü¸¸ö¹¤¾ßÀ´Ö´Ðлù×¼£¬×îÁîÈËעĿµÄÊÇ¡°Bonnie¡±¡£ReiserFSÈËÃÇÒѾ­·¢²¼ÁËBonnie++£¬Ëü¿ÉÒÔÓÃÀ´²âÊÔÐÔÄÜÊý¾Ý¡£

8.4 Ó²¼þRAID
¶àÊý¸ßËÙµÄInter x86·þÎñÆ÷ÓÐÓ²¼þRAID¿ØÖÆÆ÷¡£ËüÃÇÖд󲿷ÖÖÁÉÙÓÐ2¸ö¶ÀÁ¢µÄSCSIͨµÀ¡£ÐÒÔ˵ÄÊÇ£¬ÕâЩÔÚLVMÉϺÜÉÙÓйØÏµ¡£ÔÚLinuxÄÜ¿´µ½Èç´ËÒ»¸ö¿ØÖÆÆ÷ÉϵÄÈκζ«Î÷֮ǰ£¬¹ÜÀíÔ±±ØÐëÔÚRAID¿ØÖÆÆ÷×ÔÉíÀﶨÒåÒ»¸öÂß¼­Çý¶¯Æ÷¡£¾ÙÒ»¸öÀý×Ó£¬Ëû£¨Ëý£©¿ÉÄÜÑ¡ÔñÌõ¿é»¯ÔÚSCSIͨµÀAÉϵÄÁ½¸ö´ÅÅÌ£¬È»ºó¾µÏñËüÃǵ½Í¨µÀBÉϵÄÁ½¿é´ÅÅÌÉÏ¡£ÕâÊÇÒ»¸öµäÐ͵ÄRAID 0/1ÅäÖã¬×î¼Ñ»¯ÐÔÄܺÍÊý¾Ý°²È«¡£µ±LinuxÔÚһ̨²ÉÓÃÕâÖÖÅäÖõĻúÆ÷ÉÏÆô¶¯Ê±£¬ËüÖ»ÄÜ¡°¿´¡±µ½ÔÚRAID¿ØÖÆÆ÷ÉϵÄÒ»¿é´ÅÅÌ£¬ÄǾÍÊǰüº¬ÁËRAID 0/1Ìõ¿é×éÉÏËÄ¿é´ÅÅ̵ÄÂß¼­Çý¶¯Æ÷¡£Õâ¾ÍÊÇ˵£¬ÖÁÓÚLVM¹ØÐĵ쬽ö½öÊÇÔÚÕą̂»úÆ÷ÉϵÄÒ»¿é´ÅÅÌ£¬Ëü½«±»Í¬ÑùµØÊ¹Óá£Èç¹ûÕâЩ´ÅÅÌÖеÄÒ»¸öʧ°ÜÁË£¬LVMÉõÖÁ²»ÖªµÀ¡£µ±¹ÜÀíÔ±Ìæ»»ÁË´ÅÅÌ£¨ÉõÖÁºÜ¿ìµÄÓÃÈȱ¸Ó²¼þ£©£¬LVMÒ²²»ÖªµÀÈÎÒ»ÖÖÇé¿ö·¢ÉúÁË¡£¿ØÖÆÆ÷»áÖØÐÂͬ²½¾µÏñµÄÊý¾Ý£¬Ò»Çж¼Á¼ºÃ¡£ÕâÀï¶àÊýÈË»áÍËÒ»²½À´Ñ¯ÎÊ¡°ÄÇôʹÓÃÕâ¸öRAID¿ØÖÆÆ÷£¬LVMΪÎÒ´øÀ´Ê²Ã´ºÃ´¦ÄØ£¿¡±×îÈÝÒ׵ĻشðÊÇ£¬¶àÊýÇé¿öÏ£¬ÄãÔÚRAID¿ØÖÆÆ÷ÀﶨÒåÁËÒ»¸öÂß¼­Çý¶¯Æ÷ºó£¬Äã²»¿ÉÄÜÔÚÒÔºóÌí¼Ó¸ü¶àµÄ´ÅÅ̵½ÄǸöÇý¶¯Æ÷ÁË¡£Òò´Ë£¬Èç¹ûÄãÎóËãÁËËùÒªÇóµÄ¿Õ¼ä£¬»òÕßÄãÖ»ÊÇÐèÒª¸ü¶àµÄ¿Õ¼ä£¬Äã¶¼²»¿ÉÄÜÌí¼ÓÒ»¸öеĴÅÅÌ»òÒ»×é´ÅÅ̵½Ô­À´µÄÌõ¿é×éÀï¡£ÕâÒâζ×ÅÄã±ØÐëÔÚÕâ¸ö¿ØÖÆÆ÷Àï´´½¨Ò»¸öеÄRAIDÌõ¿é×飬ȻºóÓÃLVMÄã¿ÉÒÔ¼òµ¥µÄÀ©Õ¹LVMµÄLV£¬ÒÔÖÂËüÎÞ·ìµÄ¿çÔ½RAID¿ØÖÆÆ÷ÀïµÄÁ½¸öÌõ¿é×é¡£

FIXME: Is there more needed on this subject ?

8.5 LinuxÈí¼þRAID
Linux 2.4´ø×ÅÒ»¸ö·Ç³£ºÃµÄRAID´úÌæ³öÏÖÁË¡£Linux 2.2ȱʡµÄ£¬µ±±»Alan Cox·¢²¼Ê±£¬ÊÇÒ»¸ö³õÆÚµÄRAID°æ±¾µÄÌØÐ´£¬ËüûÓб»ºÜºÃµÄÖØÊÓ¡£2.2ÈÔÈ»ÊÇÔçÆÚ°æ±¾ÌØÉ«µÄÔ­ÒòÊÇдÄں˵ÄÈËÃDz»ÏëÔÚÒ»¸öÎȶ¨µÄ°æ±¾Àï×ö¸Ä¶¯£¬ÄÇÑù»áÒªÇóʹÓÃÕ߸üС£

¸ü¶àµÄÈËÃÇ£¬°üÀ¨Red Hat£¬MandrakeºÍSuSE£¬Ñ¡ÔñÓñíÏֵúÜÍêÃÀµÄ0.90°æ±¾À´Ìæ»»Ëü¡£

ÕâÀïÎÒÃÇÖ»ÂÛÊö0.90°æ±¾¡£

FIXME: write more of this

-----------------------------------------------------

9. Cookbook
9.1 ÔÚ¼ÆËã»úÖ®¼äÒÆ¶¯LVM´ÅÅÌ
ʹÓÃÕâЩм¼Êõ£¬¼òµ¥µÄÈÎÎñÏó´Óһ̨¼ÆËã»úÒÆ¶¯´ÅÅ̵½Áíһ̨¼ÆËã»ú¾Í±äµÃÓÐЩ»ú¾¯ÁË¡£ÔÚÓÃLVM֮ǰ£¬Óû§Ö»ÐèÒª°ÑÕâ¿éÅ̷ŵ½ÐµĻúÆ÷Éϲ¢ÇÒmountÕâЩÎļþϵͳ¡£Ê¹ÓÃLVM£¬¾Í¶àÒ»µãÊÂÇéÒª×ö¡£LVM½á¹¹¼È±£´æÔÚ´ÅÅÌÉÏÒ²±£´æÔÚ/etc/lvmconfĿ¼ÀÒò´Ë£¬Òƶ¯Ò»¸ö»òÒ»×é°üº¬ÁËÒ»¸öVGµÄ´ÅÅÌËùÒª×öµÄΨһµÄÊÂÇéÊÇÈ·±£Õâ¸öVGÊôÓڵĻúÆ÷²»»áÆÆ»µËüµÄÊý¾Ý¡£ÕâÊÇͨ¹ývgexportÃüÁîÀ´ÊµÏֵġ£vgexport½ö½ö´Ó/etc/lvmconfɾ³ý¹ØÓÚÕâ¸öVGµÄ½á¹¹£¬¶ø²»»á¸ü¸Ä´ÅÅÌÉϵÄÈκÎÄÚÈÝ¡£Ò»µ©´ÅÅ̷ŵ½ÐµĻúÆ÷ÉÏ£¨ËûÃÇû±ØÒªÓÐÏàͬµÄID£©£¬Î¨Ò»Òª×öµÄÊÂÇé¾ÍÊÇÐÞ¸Ä/etc/lvmconf¡£ÕâÊÇͨ¹ývgimportÀ´×öµÄ¡£

ÀýÈ磺

ÔÚ»úÆ÷#1£º

vgchange -a n vg01
vgexport vg01

ÔÚ»úÆ÷#2£º

vgimport vg01 /dev/sda1 /dev/sdb1
vgchange -a y vg01

×¢ÒâÄãû±ØÒªÎªÕâ¸öVGʹÓÃÏàͬµÄÃû×Ö¡£Èç¹ûvgimportÃüÁîûÓб£´æÅäÖõı¸·Ý£¬ÄǾÍÓÃvgcfgbackupÀ´×ö¡£

9.2 ÖØ½¨/etc/lvmtab ºÍ/etc/lvmtab.d
FIXME: write about more neat stuff

-----------------------------------------------------

10. ½øÒ»²½ÔĶÁ
LVMÕ¾µã
Ö÷ÒªµÄÓÐЧLVM×ÊÔ´
µÂÎÄLVM HOWTO
Èç¹ûÄãÄܶÁ¶®µÂÎÄ£¬Ëü¾ÍÒѾ­°üº¬ÁËÐí¶àÐÅÏ¢
µÂÎÄHOWTOµÄ·­Òë
Peter.Wuestefeld@resnova.deÕýÔÚ½«µÂÎÄHOWTO·­Òë³ÉÓ¢Óï¡£¿´À´ËûÃǻỨÐí¶àʱ¼äÔÚÉÏÃæ¡£Èç¹ûÄ㻳ÒÉÎÒÃǵÄHOWTO£¬»òÕßÏëÖªµÀЩʲô£¬ÇëÊÔÊÔËûÃǵÄŬÁ¦¡£
HP/UX¹ÜÀí´ÅÅÌÏòµ¼
ÒòΪLinux LVM¼¸ºõ¾ÍÊÇHP/UXÖ´ÐеÄÒ»¸öÔ­Ñù£¬ËûÃǵÄÎĵµ¶ÔÎÒÃÇÒ²ÊǷdz£ÓÐÓõġ£ÊÇÒ»¸öºÜºÃµÄ×ÊÁÏ¡£

11. ÖÂл
ÎÒÃdz¢ÊÔÔÚÕâÀïÁгöËùÓаïÖúÎÒÃÇдÕâÆªHOWTOµÄÈË¡£°üÀ¨³Ê±¨¸üС¢ÐÞ¸´»òͶ¸åµÄÈË£¬»¹ÓаïÖúÎÒÃÇÀí½âÕâ¸öÖ÷ÌâµÄÈË¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. 59.56.167.* ÓÚ 2006-08-29 01:25:00·¢±í:

    ºÃ¶«¶«,ÊÕÏÂÁË