Все начиналось с того, что при покупке нового винчестера 2Тб против 500Гб (было до этого) мне показалось мало и я решил на старом винте оставить 100Гб для системы и /home, а остальные ~400Гб объединить с новым винтом. Однако, во мне закралась мысль, что это не есть хорошо для сохранности данных. Потому что доступ к данным будет потерян, если погибнет один из винтов. Также, если переставить новый винт в другой комп без старого доступ к инфе также не получить (надо проверить). Поэтому, пока еще не поздно, я решил убрать из логического тома (LV) на сервере один из физических томов (PV).
После недолго гугления мысли в голове закрутились я начал действовать. Мои вчерашние действия можно назвать хаотично-лихорадочными, однако, сегодня я успешно захватил мир закончил осуществять свой план.
Тех. задание:
Имеем: логический том (LV) store в группе (VG) media. Группа состоит из двух физических томов (PV): /dev/sdc1 (2Тб) и /dev/sda4 (500Гб).
1.Уменьшаем ФС (ext3) на LV до 1,6Тб (размер ФС выбираем такой, чтобы она был гарантировано меньше полученного LV, иначе можно потерять данные).
2. Уменьшаем LV до размера меньше, чем PV, который останется.
3. Удаляем PV /dev/sda4 из группы томов.
4. Увеличиваем LV
5. Увеличиваем ФС
Итак, начнем..
1. Заходим под рутом или делаем su:
$ su2. Гасим все программы, которые могут обращаться к разделу:
# /etc/init.d/samba stop3. Отмонтируем раздел от дерева каталогов:
# /etc/init.d/transmission-daemon stop
# /etc/init.d/dropbox stop
# /etc/init.d/proftpd stop
# umount /media4. Проверим раздел на ошибки (быстрая проверка):
# fsck -n /dev/media/storeЕсли ошибок нет, мы должны увидеть такие строчки:
fsck from util-linux 2.20.15. Теперь удалим журнал с раздела, тем самым переведя его в ext2:
e2fsck 1.42.5 (29-Jul-2012)
/dev/mapper/media-store: clean, 293893/122101760 files, 223987569/488377344 blocks
# tune2fs -O ^has_journal /dev/media/store6. Снова проверяем раздел (процесс занимает порядка 15 минут для 2Тб):
# fsck -f /dev/media/storeПолучаем:
fsck from util-linux 2.20.17. Собственно изменяем размер ФС:
e2fsck 1.42.5 (29-Jul-2012)
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/mapper/media-store: 293893/122101760 files (5.2% non-contiguous), 223987569/488377344 blocks
# resize2fs /dev/media/store 1700GВажно! Еще раз перепроверьте указанный размер! Операция занимает значительное время, поэтому используйте UPS, если сидите через SSH используйте также screen:
# screen -m -A -S name_session8. Уменьшаем размер LV:
# lvreduce -L1700G /dev/media/storeПримечание. Вместе с опцией -L можно указать как конечный размер тома: -L170G, так и значение на которое нужно уменьшить размер тома: -L-170G.
9. Убеждаемся, что физический том не используется никакими логическими томами. Для этого используем:
# pvdisplay /dev/sda4
--- NEW Physical volume ---Если это не так, то нужно перенести данные на другой том. Подробнее смотрите в [2].
PV Name /dev/sda4
VG Name
PV Size 406,94 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID QrMY12-sJrt-QJnr-EKeM-1Iod-fmuI-3J8IIR
10. Теперь удаляем физический том "/dev/sda4" из группы томов "media":
# vgreduce media /dev/sda411. Проверяем осталось ли не распределенные экстенты (свободное место) в группе томов командой:
# vgdisplay
--- Volume group ---12. Увеличиваем, если нужно, размер логического тома.
VG Name media
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 8
VG Access read/write
VG Status resizable
-------------
VG Size 1,82 TiB
PE Size 4,00 MiB
Total PE 476931
Alloc PE / Size 473588 / 1,81 TiB
Free PE / Size 3343 / 13,3GiB
VG UUID MYDxI3-3Q3A-dna5-NLoF-LWj2-pLBn-MysXB0
Можно оперировать (мега, гига, тера)байтами, если нужно не сто процентное заполнение:
# lvextend -L+13GИли указываем количество экcтентов (3343):
# lvextend -l+334313. Теперь увеличиваем размер файловой системы:
# resize2fs /dev/media/storeПримечание. По умолчанию, если опускается параметр size, то файловая система увеличивается до размеров раздела (e2fsprogs v1.42.5).
14. Включаем журнал на файловой системе:
# tune2fs -j /dev/media/store15. Монтируем раздел в указанную папку:
# mount /dev/media/store /media16. Проверяем:
# df -hФайловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/mapper/media-store 1,8T 826G 1009G 46% /home/bycter/store
17. Пользуемся.
Ссылки:
1. How To Resize ext3 Partitions Without Losing Data.
2. Повесть о Linux и LVM (Logical Volume Manager).