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

Как уменьшить раздел для снимка lvm?

Я хочу опробовать функцию создания снимков, но не понимаю всей картины.
Я на Сервер Ubuntu 11.10 и внутри я создал две группы томов и несколько логических томов:

root@darwin:~# vgdisplay
      --- Volume group ---
      VG Name               data
      System ID
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  2
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               272.24 GiB
      PE Size               4.00 MiB
      Total PE              69694
      Alloc PE / Size       69694 / 272.24 GiB
      Free  PE / Size       0 / 0
      VG UUID               YRDCLM-ZfZN-kCoi-PIse-qMdn-2MBm-OmegqH

      --- Volume group ---
      VG Name               os
      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               67.75 GiB
      PE Size               4.00 MiB
      Total PE              17343
      Alloc PE / Size       17343 / 67.75 GiB
      Free  PE / Size       0 / 0
      VG UUID               ZRX1mD-CyhV-7u9f-15bh-2rnT-Nbee-1QD20u
root@darwin:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/data/var
  VG Name                data
  LV UUID                FuJlvb-NZ3H-YoaO-6Qsn-SYuz-QaHb-Ms2YtX
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                272.24 GiB
  Current LE             69694
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Name                /dev/os/boot
  VG Name                os
  LV UUID                HE0izv-zuXu-0cZT-L3o2-O9Cj-5wEX-R4O6SB
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                188.00 MiB
  Current LE             47
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

  --- Logical volume ---
  LV Name                /dev/os/swap
  VG Name                os
  LV UUID                4hlke0-kl3r-xVbN-Myjz-dH6H-hkRI-Uh7ncl
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                1.86 GiB
  Current LE             476
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

  --- Logical volume ---
  LV Name                /dev/os/root
  VG Name                os
  LV UUID                7qpM1B-DjHp-v6Ju-Ia4L-TPtP-5sCF-UR6Mr3
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                65.70 GiB
  Current LE             16820
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:3

и это df -h:

root@darwin:~# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/os-root    65G  1.1G   61G   2% /
    udev                  2.0G   12K  2.0G   1% /dev
    tmpfs                 792M  244K  792M   1% /run
    none                  5.0M     0  5.0M   0% /run/lock
    none                  2.0G     0  2.0G   0% /run/shm
    /dev/mapper/data-var  268G  528M  254G   1% /var
    /dev/mapper/os-boot   183M   51M  123M  30% /boot

На данный момент я не понимаю, нужно ли мне уклонять один LV, освобождая место для нового раздела, который будет содержать снимок, потому что я пытался создать новый LV, но он говорит, что места недостаточно. Я прав? Если да, то что это правильный способ усадки? А пока я хочу создать снимок /

Диспетчер логических томов (LVM) Linux основан на HP-UX LVM, который, в свою очередь, основан на Veritas VxVM.

Одно из важных различий между Linux LVM и HP-UX LVM заключается в том, что для создания моментального снимка в Linux требуется предварительно сконфигурированный логический том, выступающий в качестве репозитория для данных моментального снимка.

В соответствии с вашим vgdisplay, у вас не осталось места ни на одном томе:

  Free  PE / Size       0 / 0

Вам действительно нужно уменьшить объемы. Большинство файловых систем не поддерживают сжатие - и те, которые не рекомендуют эту практику. По-видимому, XFS и JFS не уменьшится (хотя файловые системы XFS можно увеличить). Файловая система ext2fs поддерживает сжатие, но это не рекомендуется: вы уверены, что не потеряете некоторые данные?

Лучше всего сделать следующее:

  1. Сделайте резервную копию тома для сжатия - используйте rsync или dump вариант.
  2. Загрузитесь с аварийного диска, поддерживающего LVM.
  3. Использовать lvreduce для уменьшения размера логического тома.
  4. Использовать mkfs для создания новой файловой системы.
  5. Использовать dump или rsync для воссоздания файловой системы из резервной копии.
  6. Перезагрузка.

Это инвазивный процесс и требует резервное копирование! Если у вас нет резервных копий (убедитесь, что они в порядке!), Тогда вы воля потерять данные!

Уменьшение файловых систем возможно, но связано с определенными рисками и не рекомендуется. Это будет вдвойне сложно, потому что файловая система, которую вам, вероятно, придется сжать, /var - файловые системы должны быть размонтированы, чтобы сжать их (в отличие от увеличения, которое выполняется онлайн), поэтому для этого вам нужно будет загрузиться с диска восстановления. (Это может быть возможно и в однопользовательском режиме.)

Процедура:

# Make sure /var is not mounted
umount /var
# Resize ext3 filesystem
resize2fs /dev/data/var <newsize>
# Resize LV
lvreduce -L <newsize> /dev/data/var

Я бы также запустил fsck объема тома, чтобы убедиться, что в файловой системе нет ошибок.

Удостовериться что вы принимаете во внимание, что размер LV должен быть больше размера файловой системы - в вашем случае как минимум на 4 МБ больше, чем размер физического экстента.

Прочтите resize2fs и lvreduce справочные страницы, чтобы понять спецификации размеров, в частности lvreduce -L.