Лень - двигатель прогресса! Вынужден согласится с этим утверждением.
У мена в сервере много физических дисков. Разумеется, они заполняются и
место заканчивается. Приходится переносить файлы с одного диска на
другой. И чем меньше свободного места остается, тем чаще приходится
тасовать файлы. Мне это надоело, пришла пора объединить диски в нечто
целое. Из известных мне способов: RAID, UnionFS и LVM, я выбрал последний из-за того, что можно будет легко добавить свежекупленный диск в массив. Итак, за работу.
Устанавливаю пакет lvm2:
sudo aptitude install lvm2 && partprobe Нахожу доступные диски для создания lvm:
dmesg |grep sd Нашлись диски sda, sdb, sdc, sdd и sde. Последний используется, на нем установлена система, команда:
mount рассказывает в подробностях какие логические диски смонтированы. Это, что бы по ошибке не прихватить лишнего.
/dev/sde5 on / type reiserfs (rw,relatime)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sde1 on /boot type ext3 (rw,relatime)
/dev/sde8 on /home type xfs (rw,relatime)
На дисках не должно быть разделов, если таковые имеются - почистить.
Для этого подойдет команда fdisk/cfdisk/dd
sudo cfdisk /dev/sda
Создаю физические разделы на дисках:
sudo pvcreate /dev/sda /dev/sdb /dev/sdc /dev/sdd
Physical volume "/dev/sda" successfully created
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
Physical volume "/dev/sdd" successfully created
Смотрю, что получилось:
sudo pvdisplay File descriptor 4 left open
File descriptor 5 left open
File descriptor 7 left open
File descriptor 8 left open
--- Physical volume ---
PV Name /dev/sda
VG Name 320x4
PV Size 298,09 GB / not usable 1,34 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 76311
Free PE 76311
Allocated PE 0
PV UUID VsZvc8-M2ym-W6Iu-6YrK-jAwI-AkwH-YNp9jO
...
--- Physical volume ---
PV Name /dev/sdd
VG Name 320x4
PV Size 298,09 GB / not usable 1,34 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 76311
Free PE 76311
Allocated PE 0
PV UUID v01x5Y-beJf-xBa1-t5uk-THfF-syRs-CFdM1Z
Создаю группу томов "320x4"
sudo vgcreate 320x4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
File descriptor 4 left open
File descriptor 5 left open
File descriptor 7 left open
File descriptor 8 left open
Volume group "320x4" successfully created
Что же у меня получилось? Смотрю:
sudo vgdisplay 320x4 --- Volume group ---
VG Name 320x4
System ID
Format lvm2
Metadata Areas 4
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 4
Act PV 4
VG Size 1,16 TB
PE Size 4,00 MB
Total PE 305244
Alloc PE / Size 0 / 0
Free PE / Size 305244 / 1,16 TB
VG UUID 1ac3Gd-20a3-N0Bj-KfnC-oFWw-g8hO-XViUHu
Теперь создаю логический диск "infa":
sudo lvcreate --name infa --size 1,16T 320x4 Rounding up size to full physical extent 1,16 TB
Logical volume "infa" created
При указании размера "1,16T" использовал именно запятую, а не точку.
Смотрю, что получилось:
sudo lvdisplay --- Logical volume ---
LV Name /dev/320x4/infa
VG Name 320x4
LV UUID WmiE4N-jHXP-1lMO-xrj4-FaEp-aJFD-pTcOXo
LV Write Access read/write
LV Status available
# open 0
LV Size 1,16 TB
Current LE 304088
Segments 4
Allocation inherit
Read ahead sectors 0
Block device 254:0
Теперь отформатирую в xfs, для больших файлов, что я буду здесь хранить, полагаю, эта файловая система подходит лучше всего
sudo mkfs.xfs -f /dev/320x4/infa meta-data=/dev/320x4/infa isize=256 agcount=32, agsize=9730816 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=311386112, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=32768, version=1
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
Теперь создам в домашней директории папку "320x4":
cd && mkdir ~/320x4 и смонтирую новый диск в эту папку посредством fstab
для этого добавлю строку в fstab:
sudo nano /etc/fstab добавляю в него /dev/320x4/infa /home/donet/320x4 xfs rw,noatime 0 2
и монтирую:
sudo mount -a
проверяю, что получилось:
df -h |grep 320x4 /dev/mapper/320x4-infa 1,2T 5,1M 1,2T 1% /home/donet/320x4
и завладею полученным терабайтом:
sudo chown donet:donet 320x4
donet:donet - пользователь:группа
Все! О том, как добавить пространства/дисков, или, напротив, снять парочку дисков позже, когда возникнет нужда!
15/01-2009
Вот и возникла нужда добавить диск.
За прошедшее время я уже добавил еще один массив, теперь же снял старый
и добавлю более емкий винт вместо него в существующий массив.
Теперь у меня массив стал называться 1Tx, буквы (например /dev/sdb) тоже поменялись.
Первым делом очистка диска командой:
sudo cfdisk /dev/sdb создание физического раздела на диске:
sudo pvcreate /dev/sdb добавление раздела к существующей группе:
sudo vgextend 1Tx /dev/sdb смотрю, что же получилось:
sudo vgdisplay --- Volume group ---
VG Name 1Tx
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size 3,18 TB
PE Size 4,00 MB
Total PE 834633
Alloc PE / Size 475792 / 1,82 TB
Free PE / Size 358841 / 1,37 TB
VG UUID tfpGf3-KqbW-pxk6-znOa-wTBq-flNo-tZ1920
увеличиваю размер логического тома:
sudo lvextend -L +1,36T /dev/1Tx/infa_1Tx Rounding up size to full physical extent 4,00 MB
Extending logical volume infa_1Tx to 3,18 TB
Logical volume infa_1Tx successfully resized
и увеличиваю размер файловой системы, у меня это xfs, это можно
делать "на лету", без размонтирования, здесь следует учесть, что
указывать нужно точку монтирования:
sudo xfs_growfs /home/donet/1Tx meta-data=/dev/mapper/1Tx-infa_1Tx isize=256 agcount=32, agsize=15225344 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=487211008, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=32768, version=1
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 487211008 to 852284416
Проверяю размер свободного места:
df -h Filesystem Size Used Avail Use% Mounted on
/dev/sdd5 7,5G 2,8G 4,7G 38% /
...
/dev/mapper/1Tx-infa_1Tx
3,2T 1,8T 1,4T 57% /home/donet/1Tx
Замечательно, теперь места почти в два раза больше и с покупкой следующего винта можно повременить :)
Источник: http://mycomp.se/?q=content/sozdaniie-i-nastroika-lvm-v-ubuntu |