Назад | Перейти на главную страницу

Перебалансируйте назначение 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 раздел, как мне это сделать без полной переустановки?

Если мне нужно увеличить / получить 257398 блоков 1-M и уменьшить / home до 20000 блоков 1-M, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого?

У вас есть примерно 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
    
  • Уменьшите LV:

    # lvreduce -L 20G /dev/vg_livecd/lv_home
    

Вы заметите, что я уменьшил файловую систему немного больше, чем LV; это потому, что я никогда не могу вспомнить, считают ли они вещи одинаково, поэтому я стараюсь оставить немного места для маневра.

В любом случае, на данный момент у вас есть примерно 210 ГБ свободного места в вашей группе томов. Теперь вы можете увеличить размер вашей корневой файловой системы:

  • Увеличиваем размер корневого LV:

    # lvresize -L260G /dev/vg_livecd/lv_root
    
  • Увеличьте размер файловой системы:

    # resize2fs /dev/vg_livecd/lv_root
    

Обратите внимание, что вам может потребоваться число чуть меньше 260 ГБ из-за округления, которое я использую в этом ответе. Кроме того, последние версии утилит LVM включают возможность изменять размер файловой системы за вас, но я делал это еще до того, как эти параметры стали доступны ... поэтому я не могу утверждать, что знаю, как они работают.

Если я хочу добавить выделенный раздел / var, как мне это сделать без полной переустановки?

Во-первых, вы, вероятно, захотите сделать это в однопользовательском режиме, иначе запущенные процессы, вероятно, будут открывать файлы в /var что затрудняет замену. Было сказано, что...

И снова вам понадобится свободное место. Если вместо того, чтобы использовать все свободное пространство на предыдущем шаге, вы оставите несколько ГБ свободными, вы можете сделать это:

  • Создайте новый логический том:

    # lvcreate -n lv_var -L 10G /dev/vg0
    
  • Создайте новую файловую систему:

    # mke2fs -j -m0 /dev/vg_livecd/lv_var
    
  • редактировать /etc/fstab установить новый РН на /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:

    # umount / mnt # mount / var

  • И продолжаем загрузку. Когда вы убедитесь, что все работает правильно, вы можете удалить /var.old.

Учитывая:

  • уродливое имя VG
  • неправильное выделение пространства для вашего варианта использования и бремя процедуры, подробно описанной larsks
  • тот факт, что вам придется делать все это снова, если вам придется переустанавливать

AFAIC, я бы попытался установить netinstall / kickstart, чтобы получить желаемую конфигурацию одним выстрелом и воспроизводимым способом.

Мои 2cts