Перебалансировка назначения CentOS / RHEL Ext4 LVM

Перебалансировка назначения CentOS / RHEL Ext4 LVM

Наш корпоративный стандарт — 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 ~]$

Два вопроса:

  1. Если мне нужно увеличить /до 257398 блоков по 1 МБ и уменьшить /homeдо 20000 блоков по 1 МБ, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого?
  2. Если я хочу добавить выделенный /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

Связанный контент