LINUX GAZETTE
...¸®´ª½º¸¦ Á» ´õ Àç¹ÌÀÖ°Ô!
³í¸®º¼·ý°ü¸®ÀÚ(Logical Volume Manager) »ç¿ëÇϱâ
By Vinayak Hegde

Çѱ۹ø¿ª ÀüÁ¤È£

ÀÌ ±ÛÀº Çѱ۹ø¿ªÆÇÀÔ´Ï´Ù. ¿ø¹®Àº ¿©±â¿¡¼­ º¼ ¼ö ÀÖ½À´Ï´Ù.

¹®Á¦

¸®´ª½º »ç¿ëÀÚ°¡ ºÎµúÄ¡°ÔµÇ´Â °¡Àå Å« ¹®Á¦Áß Çϳª´Â ¸®´ª½º¸¦ ¼³Ä¡½Ã °¢ ÆÄƼ¼Ç¿¡ ¾ó¸¶¸¸Å­ °ø°£À» ÇÒ´çÇÒÁö °áÁ¤ÇÏ´Â ÀÏÀÌ´Ù. ÀÌ ¹®Á¦´Â ´ç½ÅÀÌ ¸¹Àº ¼­¹ö¸¦ °ü¸®ÇÏ´Â ½Ã½ºÅÛ °ü¸®ÀÚÀ̰ųª µð½ºÅ© °ø°£ÀÌ ºÎÁ·ÇØÁüÀ» ¾È Áß±Þ/°í±Þ ¸®´ª½º »ç¿ëÀÚÀ̰ųª °ü°è¾øÀÌ ÇØ´çµÈ´Ù. ÀÌ·± ¹®Á¦°¡ ³¸¼³Áö ¾ÊÀ» °ÍÀÌ´Ù. ±×·¯¸é º¸Åë ¹®Á¦¸¦ ÇØ°áÇÏ·Á´Â ³ë·ÂÀÌ ½ÃÀ۵ȴÙ. »ç¿ëÀÚ´Â ÆÄƼ¼Ç°£¿¡ ½Éº¼¸µÅ©¸¦ °É°Å³ª parted°°Àº ÆÄƼ¼Ç Å©±âÁ¶Á¤ µµ±¸¸¦ »ç¿ëÇÏ´Â µî ±ò²ûÇÏÁö¾ÊÀº ¹æ¹ýµéÀ» »ç¿ëÇÏ¿© (¾Æ¸¶ ¸î³¯ ¹ãÀ» º¸³½ÈÄ) ÀÌ ¹®Á¦¸¦ ÇØ°áÇÑ´Ù. ±×·¯³ª ÀÌ´Â ÀӽùæÆíÀÌ°í ´Ù½Ã °°Àº ¹®Á¦¿¡ ºÎµúÄ¡°Ô µÈ´Ù.

¾ó¸¶³ª ÀÌ ¹®Á¦°¡ ÇØ°áµÇ±æ ¹Ù·¨´Â°¡!! ´ç½ÅÀº ÇÊ¿äÇÒ ¶§¸¶´Ù µð½ºÅ©°ø°£À» ÀÚÀ¯·Ó°Ô Ãß°¡Çϰí ÁÙÀÏ ¼ö ÀÖ´Â ½Ã½ºÅÛÀ» ¹Ù¶ö °ÍÀÌ´Ù. ´ç½ÅÀÌ Ç×»ó ÀÎÅͳݿ¡ ¿¬°áµÈ ¸¹Àº ¼­¹ö ½Ã½ºÅÛÀ» °ü¸®ÇÑ´Ù¸é ÀÌ·± °ÍÀÌ ´õ Àý½ÇÈ÷ ¹Ù¶ö °ÍÀÌ´Ù. ½Ã½ºÅÛÀÌ ¸îºÐ¸¸ ²¨Á®À־ ¼Õ½ÇÀÌ ¹ß»ýÇÑ´Ù. ½ÉÁö¾î °í°´ÀÌ ´Ù¸¥ »çÀÌÆ®·Î ¿Å°Ü°¥ À§Çèµµ ÀÖ´Ù. ¶Ç, ÀÌ·²¶§¸¶´Ù ÆÄƼ¼ÇÇ¥(partition table) Ç׸ñÀ» ¼öÁ¤ÇÏ°í ½Ã½ºÅÛÀ» Àç½ÃÀÛÇÏ´Â °Íµµ ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù. ÀÌ·± »óȲ¿¡ LVMÀÌ ±¸¼¼ÁÖ·Î µîÀåÇÑ´Ù.

LVM ¼Ò°³

¸®´ª½º LVMÀº »îÀ» ¸Å¿ì ½±°Ô ¸¸µç´Ù. LVMÀº ÆÄƼ¼Ç°ú Çϵåµð½ºÅ©¿¡ ºñÇØ ÀúÀå °ø°£À» ³ôÀº Â÷¿ø¿¡¼­ º¸°Ô ÇÑ´Ù. ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö´Â ¾Æ·¡¼­ ´Ù·é´Ù. LVMÀº 2.4.x ´ë¿¡ Á¤½Ä Ä¿³Î ¼Ò½º¿¡ Æ÷ÇԵǾú´Ù. LVM¸¦ »ç¿ëÇϱâÀü¿¡ °³³ä°ú ¿ë¾î¸¦ »ìÆìº¸ÀÚ.

LVM ¿ë¾î

¾î¶»°Ô LVMÀÌ µ¿ÀÛÇϳª

ÀÌÁ¦ LVMÀÇ ¿ë¾î¸¦ ¾Ë¾Æº¸¾ÒÀ¸´Ï, ½ÇÁ¦·Î ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ¾Ë¾Æº¸ÀÚ. ¹°¸®º¼·ýÀº ¹°¸®Àû ¹üÀ§ (PE, Physical Extent) ¶ó´Â ±âº» ´ÜÀ§·Î ³ª´²Áø´Ù. ¹°¸®Àû ¹üÀ§ÀÇ Å©±â´Â ÀÚÀ¯·ÓÁö¸¸, °°Àº º¼·ý±×·ì¿¡ ¼ÓÇÑ ¹°¸®º¼·ý³¢¸®´Â °°´Ù. ÇÑ ¹°¸®º¼·ý¾È¿¡¼­ PE´Â À¯ÀÏÇÑ ¹øÈ£¸¦ °¡Áø´Ù. PE´Â LVMÀÌ ¹°¸®Àû ÀúÀå°ø°£À» °¡¸®Å°´Â ÃÖ¼Ò ´ÜÀ§ÀÌ´Ù.

°¢°¢ÀÇ ³í¸®º¼·ýÀº ³í¸®Àû ¹üÀ§ (LE, Logical Extent) ¶ó´Â °¡¸®Å³ ¼ö ÀÖ´Â ±âº» ´ÜÀ§µé·Î ³ª´²Áø´Ù. °°Àº º¼·ý±×·ì¿¡¼­ ³í¸®Àû ¹üÀ§ÀÇ Å©±â´Â ¹°¸®Àû ¹üÀ§ÀÇ Å©±â¿Í °°´Ù. ¶Ç, ÇÑ º¼·ý±×·ì¾È¿¡ ÀÖ´Â ¸ðµç ³í¸®º¼·ýÀÇ LE Å©±âµµ ´ç¿¬È÷ °°´Ù.

°¢ PE´Â ¹°¸®º¼·ý¿¡¼­ À¯ÀÏÇÑ ¹øÈ£¸¦ °¡ÁöÁö¸¸, ³í¸®º¼·ý¿¡¼­´Â °¡Áú ¼ö ¾ø´Ù. ÀÌ´Â ³í¸®º¼·ýÀÌ ¿©·¯ ¹°¸®º¼·ýÀ¸·Î ±¸¼ºµÇ¹Ç·Î PE ID°¡ °ãÄ¥ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ±×·¡¼­ LE¿Í LE¿Í ¿¬°áµÈ PE¸¦ ±¸º°ÇÒ LE ID°¡ ÇÊ¿äÇÏ´Ù. ÀÌ¹Ì ¸»ÇßµíÀÌ LE¿Í PE´Â 1:1´ëÀÀÇÑ´Ù. ÀúÀå°ø°£À» Á¢±ÙÇÏ¿© ½ÇÁ¦ ÀڷḦ ¹°¸®Àû ÀúÀå°ø°£¿¡ ¾µ¶§ LE ID¸¦ »ç¿ëÇÑ´Ù.

¾Æ¸¶µµ ³í¸®º¼·ý°ú º¼·ý±×·ì¿¡ ´ëÇÑ ¸ðµç ¸ÞŸÁ¤º¸°¡ ÀúÀåµÇ´Â Àå¼Ò°¡ ±Ã±ÝÇÒ °ÍÀÌ´Ù. LVMÀ» »ç¿ëÇÏÁö ¾Ê´Â ½Ã½ºÅÛÀÇ ºñÀ¯¸¦ µéÀÚ¸é ÆÄÆ¼¼Ç¿¡ ´ëÇÑ Á¤º¸´Â ÆÄƼ¼ÇÇ¥¿¡ ÀúÀåµÈ´Ù. LVM¿¡¼­ º¼·ý±×·ì Áö½ÃÀÚ¿µ¿ª (VGDA, Volume Group Descriptor Area) Àº ÆÄƼ¼ÇÇ¥¿Í °°Àº ±â´ÉÀ» ÇÑ´Ù. VGDA´Â °¢ ¹°¸®º¼·ýÀÇ Ã³À½ºÎºÐ¿¡ ÀúÀåµÈ´Ù.

VGDA¿¡´Â ´ÙÀ½°ú °°Àº Á¤º¸°¡ ÀÖ´Ù :-

  1. PV Áö½ÃÀÚ(descriptor) ÇѰ³
  2. VG Áö½ÃÀÚ ÇѰ³
  3. LV Áö½ÃÀÚµé
  4. ¿©·¯ PE Áö½ÃÀÚµé.

½Ã½ºÅÛÀÌ ºÎÆÃÇÒ¶§ LV¿Í VGµéÀÌ È°¼ºÈ­µÇ°í VGDA°¡ ¸Þ¸ð¸®·Î ÀÐÇôÁø´Ù. VGDA´Â LV°¡ ½ÇÁ¦·Î ¾îµð¿¡ ÀúÀåµÇÀÖ´ÂÁö ¾Ë·ÁÁØ´Ù. ½Ã½ºÅÛÀÌ ÀúÀåÀåÄ¡¿¡ Á¢±ÙÇÒ¶§ ½ÇÁ¦ ÀÔÃâ·ÂÀ» ÇÒ ¹°¸®Àû À§Ä¡¸¦ ¾Ë¾Æ³»±âÀ§ÇØ (VGDAÀÇ µµ¿òÀ¸·Î) ´ëÀÀ °úÁ¤À» °ÅÄ£´Ù.

ÀÌÁ¦ ÀÛ¾÷À» ÇØº¸ÀÚ

¾î¶»°Ô LVMÀ» »ç¿ëÇÏ´ÂÁö »ìÆìº¸ÀÚ :-

1 ´Ü°è - Ä¿³Î ¼³Á¤Çϱâ

LVMÀ» ¼³Ä¡ÇϱâÀü¿¡ ÇÊ¿äÇÑ »çÇ×ÀÌ ÀÖ´Ù:-
Ä¿³ÎÀÌ LVM ¸ðµâÀ» Æ÷ÇÔÇÏ¿© ÄÄÆÄÀϵÇÀÖ¾î¾ß ÇÑ´Ù.

	´ÙÀ½°ú °°ÀÌ Ä¿³ÎÀ» ÄÄÆÄÀÏÇÑ´Ù:-
	# cd /usr/src/linux
	# make menuconfig

	ÇÏÀ§¸Þ´º¿¡¼­:-
	Multi-device Support (RAID and LVM) -->

	´ÙÀ½ µÎ ¿É¼ÇÀ» Ų´Ù:-
	[*] Multiple devices driver support (RAID and LVM)
°ú
	<*> Logical volume manager (LVM) Support.
	

2 ´Ü°è - µð½ºÅ©¿¡ ³²Àº °ø°£ È®ÀÎÇϱâ

´ÙÀ½ ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù:-

# df -h
Filesystem            	Size  	 Used   Avail  	Use% 	Mounted on
/dev/hda1		3.1G     2.7G	398M	87%	/
/dev/hda2		4.0G	 3.2G	806M	80%	/home
/dev/hda5		2.1G	 1.0G	1.1G	48%	/var

3 ´Ü°è - ÇϵåµðµåÅ©¿¡ LVM ÆÄƼ¼Ç ¸¸µé±â

fdisk³ª ´Ù¸¥ ÆÄƼ¼Ç µµ±¸¸¦ »ç¿ëÇÏ¿© LVM ÆÄƼ¼ÇÀ» ¸¸µç´Ù. linux LVMÀÇ ÆÄƼ¼Ç ¹øÈ£´Â 8eÀÌ´Ù.

# fdisk /dev/hda
 ÀÔ·Â 	p (ÆÄƼ¼ÇÇ¥¸¦ Ãâ·Â) 
 ÀÔ·Â 	n (»õ·Î¿î ÆÄƼ¼ÇÀ» ¸¸µë)
Linux LVM ÆÄƼ¼ÇÀ» ¸¸µçÈÄ ÆÄƼ¼ÇÇ¥¸¦ Ãâ·ÂÇØº¸¾Ò´Ù. ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °ÍÀÌ´Ù:-
 Device Boot      Start       End    Blocks   Id   System
/dev/hda1   *         1       506   4064413+  83  Linux
/dev/hda2           507       523    136552+   5  Extended
/dev/hda5           507       523    136521   82  Linux swap
/dev/hda6 	    524       778   2048256   8e  Linux LVM
/dev/hda7           779      1033   2048256   8e  Linux LVM

4 ´Ü°è - ¹°¸®º¼·ý ¸¸µé±â

# pvcreate /dev/hda6
pvcreate -- -physical volume "/dev/hda6" successfully created

# pvcreate /dev/hda7
pvcreate- -- physical volume "/dev/hda7" successfully created
À§ ¸í·É¾î´Â ¶Ç ÆÄƼ¼Ç óÀ½ºÎºÐ¿¡ º¼·ý±×·ì ±â¼úÀÚ¸¦ ¸¸µç´Ù.

5 ´Ü°è - º¼·ý±×·ì ¸¸µé±â

»õ·Î¿î º¼·ý±×·ìÀ» ¸¸µé°í ´ÙÀ½°ú °°ÀÌ µÎ ¹°¸®±×·ìÀ» Ãß°¡ÇÑ´Ù.

# vgcreate test_lvm /dev/hda6 /dev/hda7
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_lvm"
vgcreate- -- volume group "test_lvm" successfully created and activated
±×·¯¸é ¹°¸®º¼·ý /dev/hda6°ú /dev/hda7À» Æ÷ÇÔÇÏ´Â test_lvmÀ̶õ º¼·ý±×·ìÀÌ ¸¸µé¾îÁø´Ù. ¹°¸®Àû ¹üÀ§ Å©±â 4MB°¡ ¸ñÀû¿¡ ¸ÂÁö ¾Ê´Ù¸é ÀÌ ¸í·É¾î¿¡ ¹°¸®Àû ¹üÀ§ Å©±â¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.
ÀÌÁ¦ º¼·ý±×·ìÀ» Ȱ¼ºÈ­ÇÑ´Ù.
# vgchange -ay test_lvm

"vgdisplay" ¸í·É¾î´Â ½Ã½ºÅÛ¿¡ ¸¸µç º¼·ý±×·ì¿¡ °üÇÑ Á¤º¸¸¦ º¸¿©ÁØ´Ù.
# vgdisplay
--- Volume group ---
VG Name test_lvm
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 1
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 3.91 GB
PE Size 4 MB
Total PE 1000
Alloc PE / Size 256 / 1 GB
Free PE / Size 744 / 2.91 GB
VG UUID T34zIt-HDPs-uo6r-cBDT-UjEq-EEPB-GF435E

6 ´Ü°è - ³í¸®º¼·ý ¸¸µé±â

lvcreate ¸í·É¾î´Â º¼·ý±×·ì¿¡ ³í¸®º¼·ýÀ» ¸¸µç´Ù.
# lvcreate -L2G -nlogvol1 test_lvm

7 ´Ü°è - ÆÄÀϽýºÅÛ ¸¸µé±â

ÀÌÁ¦ ³í¸®º¼·ý¿¡ ÆÄÀϽýºÅÛÀ» ¸¸µé¾î¾ß ÇÑ´Ù. ¿©±â¼­´Â ³í¸®º¼·ý¿¡ reiserfs Àú³Î¸µ ÆÄÀϽýºÅÛÀ» »ç¿ëÇϱâ·Î ÇÑ´Ù.

# mkreiserfs /dev/test_lvm/logvol1 
mount ¸í·É¾î·Î »õ·Î ¸¸µç ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ®ÇÑ´Ù.
# mount -t reiserfs /dev/test_lvm/logvol1 /mnt/lv1

Step 8 - /etc/fstab¿Í /etc/lilo.conf¿¡ Ç׸ñ Ãß°¡Çϱâ

´ÙÀ½ Ç׸ñÀ» /etc/fstab¿¡ Ãß°¡ÇÏ¿© ºÎÆÃ½Ã ÆÄÀϽýºÅÛÀÌ ¸¶¿îÆ®µÇ°Ô ÇÑ´Ù.

/dev/test_lvm/logvol1 /mnt/lv1 reiserfs defaults 1 1 
¾ÆÁ÷ »õ·Î ÄÄÆÄÀÏÇÑ Ä¿³Î·Î ±âÁ¸ÀÇ Ä¿³ÎÀ» ±³Ã¼ÇÏÁö¾Ê¾Ò´Ù¸é Áö±Ý º¹»çÇÑ´Ù. ÀÌÁ¦ LVM »ç¿ë¿©ºÎ¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù.
  image   = /boot/lvm_kernel_image
  label   = linux-lvm
  root    = /dev/hda1
  initrd  = /boot/init_image
  ramdisk = 8192
À§ ³»¿ëÀ» Ãß°¡ÇÑÈÄ ´ÙÀ½ ¸í·É¾î·Î lilo¸¦ À缳ġÇÑ´Ù.
# /sbin/lilo

Step 9 - ³í¸®º¼·ý Å©±â º¯°æÇϱâ

lvextent ¸í·É¾î·Î ³í¸®º¼·ýÀÇ Å©±â¸¦ ½±°Ô ´Ã¸± ¼ö ÀÖ´Ù.
# lvextend -L+1G /dev/test_lvm/logvol1
lvextend -- extending logical volume "/dev/test_lvm/logvol1" to 3GB
lvextend -- doing automatic backup of volume group "test_lvm"
lvextend -- logical volume "/dev/test_lvm/logvol1" successfully extended
ºñ½ÁÇÏ°Ô ¾Æ·¡¿Í °°ÀÌ ³í¸®º¼·ýÀÇ Å©±â¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.
# lvreduce -L-1G /dev/test_lvm/lv1
lvreduce -- -Warning: reducing active logical volume to 2GB
lvreduce- -- This may destroy your data (filesystem etc.)
lvreduce -- -do you really want to reduce "/dev/test_lvm/lv1"? [y/n]: y
lvreduce- -- doing automatic backup of volume group "test_lvm"
lvreduce- -- logical volume "/dev/test_lvm/lv1" successfully reduced

°á·Ð

ÀÌÁ¦ LVMÀÌ ¸Å¿ì È®Àå°¡´ÉÇÏ¸ç »ç¿ëÇϱ⠽¬¿òÀ» ¾Ë¾Ò´Ù. º¼·ý±×·ìÀÌ ¸¸µé¾îÁö¸é, ³í¸®º¼·ýÀÇ Å©±â¸¦ ¸Å¿ì ½±°Ô ÇÊ¿äÇѸ¸Å­ ¹Ù²Ü ¼ö ÀÖ´Ù.

°ü·ÃÀÚ·á


Copyright © 2002, Vinayak Hegde. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 84 of Linux Gazette, November 2002