Tamkovich.com: Телеком/VoIP блог
Современные технологии: Asterisk, SIP, Kamailio, Linux, Cisco, Linksys
Как безболезненно увеличить дисковое пространство в Linux или удивительная система LVM
27 сентября, 2011 by MeteoZond
Linux RAIDПоявилась задача увеличить объем дискового пространства на хостинговом сервере. Т.к. в качестве панели управления используется ISPmanager, монтирование нового раздела в отдельную папку проблемы бы не решило. По совету коллег решил призвать в помощь LVM (Logical volume manager).
Управление логическими томами (Logical Volume Management — LVM) существует в Linux, начиная с версий ядра 2.4v1 и 2.6.9v2.
Что же такое LVM, Logical volume manager, Управление логическими томами или менеджер логических томов?
LVM — это дополнительный уровень абстракции между привычными логическими/физическими дисками и файловой системой. Эта система позволяет нам объединять несколько физических дисков, разделов на физическом диске, рейд массивов в логический том на котором мы создаем файловую систему. Также у нас появляются возможности быстрых бекапов, перемещения файловой системы с, например, двух HDD по 40гб на один 80гб без выключения компьютера/сервера, увеличения/уменьшения размеров логического тома на ходу (тут надо оговориться про то что файловая система должна поддерживать данные функции).
В общем это удивительная система которая добавляет гибкости и удобства в работу с накопителями данных.
Итак, имеем сервер IBM x3560, два диска уже установлены и работают в зеркале, операционная система CentOS 5.5. Выключаем сервер, устанавливаем еще два диска, объединяем их в рейд 1. Загружаем операционную систему и видим что появился новый неразмеченный раздел /dev/sdb.
До добавления второго рейд массива картина была следующая:
Зеркало видно как /dev/sda, /dev/mapper/VolGroup01-LogVol00 это /
/dev/sda1 это /boot
Небольшая ремарка, необходимо чтобы boot раздел был вне логического тома, иначе загрузиться не получится. Смотрим что нам покажет pvdisplay:
[root@vh ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name VolGroup01 PV Size 136.51 GB / not usable 8.33 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 4368 Free PE 0 Allocated PE 4368 PV UUID 4tSPMO-UJzY-d21j-Mlvi-FfoK-1puC-bERapz
Тут надо сказать что у LVM есть три уровня:
- PV это physical volume, так сказать физический уровень (целые диски или разделы)
- VG это volume group, на этом уровне объединяем PV в группу
- LV это logical volume, логический уровень, объединение VG в единый раздел на котором можно создавать файловую систему.
Видим у нас есть VG по имени VolGroup01 которая находится на PV /dev/sda2
lvdisplay нам говорит следующее:
[root@vh ~]# lvdisplay --- Logical volume --- LV Name /dev/VolGroup01/LogVol00 VG Name VolGroup01
LV который нам необходимо будет расширить называется /dev/VolGroup01/LogVol00
Далее наши действия:
- Инициализируем новый физический диск командой: pvcreate /dev/sdb
- Добавляем новый физический диск к нашей существующей VG VolGroup1: vgextend VolGroup01 /dev/sdb
- Расширяем наш LV по имени /dev/VolGroup01/LogVol00 на количество общего пространства содержащегося в /dev/sbd: lvextend /dev/VolGroup01/LogVol00 /dev/sdb
Теперь осталось изменить размер файловой системы: resize2fs -p /dev/VolGroup01/LogVol00 Всё, в моем случае я увеличил объем доступного дискового пространства в два раза.
[root@vh ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup01-LogVol00 259G 85G 161G 35% / /dev/sda1 99M 19M 75M 21% /boot tmpfs 2.0G 0 2.0G 0% /dev/shm
[root@vh ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name VolGroup01 PV Size 136.51 GB / not usable 8.33 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 4368 Free PE 0 Allocated PE 4368 PV UUID 4tSPMO-UJzY-d21j-Mlvi-FfoK-1puC-bERapz --- Physical volume --- PV Name /dev/sdb VG Name VolGroup01 PV Size 136.61 GB / not usable 17.00 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 4371 Free PE 0 Allocated PE 4371 PV UUID YMX3a0-deJr-VrCL-5zrO-z65K-RJ62-vSrCHJ
[root@vh ~]# vgdisplay --- Volume group --- VG Name VolGroup01 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 273.09 GB PE Size 32.00 MB Total PE 8739 Alloc PE / Size 8739 / 273.09 GB Free PE / Size 0 / 0 VG UUID CGsscq-7UDT-3qUB-82DW-IzeK-3Ab9-iTG6Pq
[root@vh ~]# lvdisplay --- Logical volume --- LV Name /dev/VolGroup01/LogVol00 VG Name VolGroup01 LV UUID P6aTcD-KMw6-jFUF-Cpio-C3CW-tMh2-DwLmD4 LV Write Access read/write LV Status available # open 1 LV Size 267.28 GB Current LE 8553 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Name /dev/VolGroup01/LogVol01 VG Name VolGroup01 LV UUID vd0uP2-DkST-L4ob-EAZT-N4jP-Jw1h-EUBh0l LV Write Access read/write LV Status available # open 1 LV Size 5.81 GB Current LE 186 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1
/dev/VolGroup01/LogVol01 в нашем случае это swap.
Также рекомендую к прочтению следующие статьи:
- http://xgu.ru/wiki/LVM
- http://www.ibm.com/developerworks/ru/library/l-lvm2/
- http://habrahabr.ru/blogs/linux/67283/
Linux RAID