Наш корпоративный стандарт — CentOS (который, судя по всему, предпочитает LVM), а мой опыт работы в основном не связан с LVM, поэтому я исследую новую область в этом вопросе.
Мне досталась старая машина в качестве сервера журналов, и мне пришлось переустановить CentOS. Из-за проблем с EHCI на материнской плате (либо через обычный установочный DVD, либо через установку LiveCD GUI) единственное, что я смог найти для установки CentOS 6.3, — это текстовая установка LiveCD. Текстовая установка LiveCD не позволила мне сделать собственные настройки разделов на диске; она устанавливает только LVM и дала мне плохое распределение пространства для сервера журналов...
[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
[mpenning@someHost ~]$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
50397 2167 47719 5% /
tmpfs 1850 0 1850 0% /dev/shm
/dev/md127p1 485 65 395 15% /boot
/dev/mapper/vg_livecd-lv_home
227001 188 215283 1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
--- Volume group ---
VG Name vg_livecd
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 278.96 GiB
PE Size 4.00 MiB
Total PE 71415
Alloc PE / Size 71415 / 278.96 GiB
Free PE / Size 0 / 0
VG UUID 8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU
[mpenning@someHost ~]$
Два вопроса:
- Если мне нужно увеличить
/
до 257398 блоков по 1 МБ и уменьшить/home
до 20000 блоков по 1 МБ, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого? - Если я хочу добавить выделенный
/var
раздел, как мне это сделать без полной переустановки?
решение1
Если мне нужно увеличить / до 257398 блоков по 1 М и уменьшить /home до 20000 блоков по 1 М, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого?
У вас есть примерно 280 ГБ свободного места, из которых 50 ГБ выделено для '/' и 230 ГБ выделено для /home
. Поскольку это все ваше доступное пространство, вам придется сначала что-то освободить. Вот несколько вариантов:
Если вы не поместили никаких данных в /home
, проще всего просто удалить существующую файловую систему и создать ее заново с соответствующим размером:
Размонтировать
/home
:# umount /home
Уменьшите размер логического тома (LV) до 20 ГБ:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Пересоздайте
/home
файловую систему:# mke2fs -j -m0 /dev/vg_livecd/lv_home
И перемонтируем
/home
:# mount /home
Это возможносокращать /home
, а не отбрасывать его, но это может быть немного сложнее:
Размонтировать
/home
:# umount /home
fsck
файловая система. Это, вероятно, потребуется для следующего шага:# fsck /dev/vg_livecd/lv_home
Измените размер файловой системы:
# resize2fs /dev/vg_livecd/lv_home 19G
Уменьшить ЛЖ:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Вы заметите, что я немного уменьшил файловую систему по сравнению с логическим томом; это потому, что я никогда не могу вспомнить, считают ли они что-то одинаково, поэтому я стараюсь оставить немного места для маневра.
В любом случае, на данный момент у вас есть около 210 ГБ свободного места в вашей группе томов. Теперь вы можете увеличить размер вашей корневой файловой системы:
Увеличьте размер корневого LV:
# lvresize -L260G /dev/vg_livecd/lv_root
Увеличьте размер файловой системы:
# resize2fs /dev/vg_livecd/lv_root
Обратите внимание, что вам может потребоваться использовать число немного меньше 260G из-за округления, которое я использую в этом ответе. Кроме того, последние версии утилит LVM включают возможность изменять размер файловой системы для вас, но я делал это еще до того, как эти опции стали доступны... поэтому я не могу утверждать, что знаю точно, как они работают.
Если я хочу добавить выделенный раздел /var, как мне это сделать без полной переустановки?
Во-первых, вам, вероятно, захочется сделать это в однопользовательском режиме, в противном случае запущенные процессы, вероятно, будут иметь открытые файлы, что /var
затруднит замену. Сказав это...
Вам снова понадобится свободное место. Если вместо того, чтобы использовать все свободное место на предыдущем шаге, вы оставляете несколько ГБ свободными, вы можете сделать это:
Создайте новый логический том:
# lvcreate -n lv_var -L 10G /dev/vg0
Создайте новую файловую систему:
# mke2fs -j -m0 /dev/vg_livecd/lv_var
Отредактируйте
/etc/fstab
, чтобы смонтировать новый LV,/var
добавив следующую строку:/dev/vg_livcde/lv_var /var ext4 defaults 1 2
Но пока не устанавливайте его!
Смонтируйте новую файловую систему в удобном месте:
# mount /dev/vg_livecd/lv_var /mnt
Скопируйте содержимое
/var
:# rsync -a /var/ /mnt/
Переименуйте
/var
и/var.old
создайте новый каталог:# mv /var /var.old # mkdir /var
Установите новый LV на
/var
:# размонтировать /mnt # смонтировать /var
И продолжайте загрузку. Когда вы убедитесь, что все работает правильно, вы можете удалить
/var.old
.
решение2
Учитывая:
- уродливое имя VG
- плохое распределение пространства для вашего варианта использования и бремя процедуры, подробно описанной larsks
- тот факт, что вам придется делать все это снова, если вам придется переустанавливать
Насколько мне известно, я бы попробовал выполнить сетевую установку/кикстарт, чтобы получить желаемую конфигурацию одним махом и воспроизводимым способом.
Мои 2cts