9 декабря 2010 г.

Введение в использование LVM

LVM - (Logical Volume Manager - менеджер логических дисков) средство гибкого управления дисковым пространством. Позволяет динамически менять размер логических разделов на лету, создавать снимки (снапшоты) и т.д.


Дисклеймер/отмазка
LVM это очень(!!!) мощный инструмент, который требует аккуратного с собой обращения. Любая самодеятельность с ним может обернуться потерей всей(!!!) информации на диске. Поэтому прежде, чем использовать LVM на рабочих машинах (и уж тем более на «боевых» серверах), следует потренироваться на кошках. Лучше всего это делать на виртуальных машинах. Начинать использовать LVM следует только (и только!!!) тогда, как почувствуете уверенность и понимание принципов его работы.

Зачем нужен LVM
Установка системы прямо на разделы диска зачастую приводит к следующей проблеме.
Нужно каким-то образом «правильно» разбить жесткий диск. Слово «правильно» стоит в кавычках, потому что «правильного» разбиения диска для всех возможных ситуаций и применений не существует. В сети есть много советов по данному поводу, но они не учитывают потребностей конкретного пользователя (в случае настольной системы) или конкретного администратора (в случае сервера). Обычно рекомендуют разделы /home, /var, /usr, какие-то еще выносить на отдельные разделы диска. Но если разбивающий ошибется в размерах этих разделов, возникает очень не хорошая ситуация - на одних разделах место подходит к концу, в то время как на остальных места еще много. Приехали! Дисковое пространство нужно переразмечать. Для этого есть много способов:
1. Тотальный backup, затем переустановка системы с переразбиением диска.
2. Переразметка с помощью parted с риском потерять данные.
3. Изначальная установка системы на LVM, который позволяет изменять размеры своих разделов прямо на работающей системе.

Терминология
LVM предусматривает три логических уровня работы с дисковым пространством:
1. Самый нижний - физические тома (physical volumes). Это собственно физические диски. Это могут быть диски целиком (/dev/sda, /dev/sdb и т.д.) или отдельные разделы (/dev/sda1, /dev/sdb5 и т.п.).
2. Группы томов - volume groups. В группы томов объединяются физические тома. Таким образом группы томов представляют собой пул дискового пространства, необходимый для следующего уровня. Группы томов могут иметь человеческие названия, говорящие администратору системы об их предназначении: system, sales, database и т.д.
3. Логические тома (logical volumes) - это аналог разделов физического диска и то, ради чего вообще существуют диски - именно на них хранятся данные. Пользователи (и процессы) системы работают только с логическими томами. Таким образом LVM создает для них всех слой абстракции, скрывая, с какими именно физическими дисками они в данный момент работают. Администратор системы может добавлять физические тома в LVM и удалять их из него (см. ниже), но процессы (и пользователи) об этом знать не будут.

Примечание по названиям утилит LVM
Следует запомнить сразу - названия утилит для работы с разными уровнями LVM совпадают. Различие только в первых двух буквах этого названия. Это:
  • pv* - для работы с физическими томами;
  • vg* - для работы с группами томов;
  • lv* - для работы с логическими томами.

Не стоит также пытаться зазубрить названия этих утилит и их ключи. Действовать стоит так:
1. Думаете, с каким уровнем LVM надо работать - физические тома, группы томов или логические тома.
2. Выбираете в зависимости от этого первые буквы названия: pv, vg или lv, соответственно.
3. Набираете их в консоли и нажимаете два раза TAB. Срабатывает автодополнение, которое показывает команды, начинающиеся с указанных букв.
4. Выбираете команду по ее названию, например, pvcreate для создания физических томов. Если вы ее запустите с ключом --help , она вам покажет все возможные ключи. За более подробной информацией стоит залезть в man конкретной команды.

По мере набора опыта работы с LVM нужда в такой последовательности отпадет. Необходимые команды и их опции запомнятся сами собой.

Создание
Я буду рассматривать создание LVM на уже установленной системе. Знание терминологии и принципов работы с ним в дальнейшем позволит найти в инсталляторе нужные пункты для создания логических томов на этапе установки системы.
Первый этап - это создание правильных разделов. Это такие разделы, которые LVM признает за свои и сможет при загрузке их корректно инициализировать. «Родной» тип разделов для LVM - 8E Linux LVM. Все, что будет дальше, не будет работать, если при создании разделов не указать приведенный корректный тип. Итак, создаем несколько разделов типа 8E с помощью любимого средства разбиения диска:

[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb1 1 61 489951 8e Linux LVM
/dev/sdb2 62 261 1606500 5 Extended
/dev/sdb5 62 122 489951 8e Linux LVM
/dev/sdb6 123 261 1116486 8e Linux LVM

Еще раз. Пример я привожу с виртуальной машины, чего и вам советую на этапе обучения.
Я создал три раздела для работы с LVM. Сколько их создавать и какого размера решает сам администратор. Например, никто не мешает отдать целиком весь диск (/dev/sdb в данном случае) под власть LVM. В том, как это сейчас сделал я, смысла искать не стоит :). Мой пример преследует только цели демонстрации работы с LVM.

ВНИМАНИЕ! Форматировать созданные разделы НЕ надо!

Следующее, что мы должны сделать - это инициализировать созданные разделы как физические тома:

[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@localhost ~]# pvcreate /dev/sdb5
Physical volume "/dev/sdb5" successfully created
[root@localhost ~]# pvcreate /dev/sdb6
Physical volume "/dev/sdb6" successfully created

Если нет сообщений об ошибках, можно смело шагать вперед.

Следующий шаг - это создание группы томов. Делается это командой vgcreate (еще раз подчеркиваю похожесть названия утилит для работы с LVM). Самое трудное тут - это придумать имя группы томов, которое будет отражать ее назначение:

[root@localhost ~]# vgcreate fileserver /dev/sdb1 /dev/sdb5
Volume group "fileserver" successfully created

Аргументы vgcreate это название группы томов (fileserver) и те физические тома, которые мы включаем в эту группу. В данном случае я включил в нее только /dev/sdb1 /dev/sdb5, что нам и покажет утилита pvscan:

[root@localhost ~]# pvscan
PV /dev/sdb1 VG fileserver lvm2 [476.00 MiB / 476.00 MiB free]
PV /dev/sdb5 VG fileserver lvm2 [476.00 MiB / 476.00 MiB free]
...
PV /dev/sdb6 lvm2 [1.06 GiB]
...

Здесь мы видим созданные нами физические тома, их размер и к какой группе томов они относятся. Последний физический том (/dev/sdb6) у нас пока сам по себе. Для обнаружения наличия групп томов LVM (это нужно, например, если вы загрузились с Live CD, который не активирует LVM по умолчанию) есть аналогичная команда - vgscan:

[root@localhost ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "fileserver" using metadata type lvm2

Активировать неработающий LVM можно командой vgchange -ay:

[root@localhost ~]# vgchange -ay
0 logical volume(s) in volume group "fileserver" now active

Это все для того же примера с LiveCD. Сейчас это делать было не обязательно. Вывод приведенной команды показывает наличие отсутствия логических томов, значит сейчас самое время создать их :). Для создания логических томов испольузется команда lvcreate:

[root@localhost ~]# lvcreate -L 300M -n samba fileserver
Logical volume "samba" created

Вуаля! Вы только что создали свой первый логический том. Синтаксис команды прост до безобразия:
  • ключ -L указывает размер создаваемого тома. Поддерживаются суффиксы K (килобайты), M (мегабайты), G (гигабайты).
  • ключ -n указывает название для тома (samba в данном случае)
  • последний аргумент fileserver указывает группу томов, в которой мы создаем логический том (теоретически, групп может быть несколько).

Что важно - логические тома именуются системой следующим образом:
/dev/имя_группы_томов/имя_тома

В нашем примере это:

[root@localhost ~]# lvscan
ACTIVE '/dev/fileserver/samba' [300.00 MiB] inherit

Одно только это - хороший аргумент для использования LVM. Ведь не надо помнить что находится на /dev/sda3, /dev/sdb5 и т. п. Имена логических томов имеют вполне человеческое название (если их правильно назвать).

Еще несколько замечаний.
В группе томов можно создать столько томов, сколько будет нужно. Но не больше, чем есть дискового пространства в этой группе томов. Посмотреть, сколько его у нас есть (и самое главное сколько его еще осталось) можно командой vgdisplay:

[root@localhost ~]# vgdisplay fileserver
--- Volume group ---
VG Name fileserver
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 952.00 MB
PE Size 4.00 MB
Total PE 238
Alloc PE / Size 75 / 300.00 MB
Free PE / Size 163 / 652.00 MB
VG UUID SZLgLK-b9V8-RiZV-gH5i-N0pA-2ppf-axLqfO

Сейчас для нас тут самое ценное - это VG Size 952.00 MB (общий размер дискового пространства группы томов), Alloc PE / Size 75 / 300.00 MB (уже выделенное для создания логических томов дисковое пространство), Free PE / Size 163 / 652.00 MB (свободное и еще не распределенное дисковое пространство - наш резерв).

PE тут - это физические экстенты. Они представляют собой нечто вроде кусков дискового пространства, на которые LVM «нарезает» физические тома. Все размеры логических томов всегда содержат целое число этих физических экстентов и всегда кратны их размеру (как видно из приведенных цифр размер экстента - 4Мб).

Теперь созданный том можно отформатировать и примонтировать:

[root@localhost ~]# mkdir /mnt/data
[root@localhost ~]# mkfs.ext4 /dev/fileserver/samba
...
[root@localhost ~]# mount /dev/fileserver/samba /mnt/data/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/fileserver-samba
291M 11M 266M 4% /mnt/data

Как мы видим, наш логический том готов к использованию!

Увеличение логических томов

Самая мощная возможность LVM - это то, что размеры логических томов можно менять на лету. Правда, чтобы их уменьшить, «полет» придется прервать (об этом ниже), а вот увеличение размеров томов - это практически безопасная операция.

Предположим, что нам перестало хватать места на нашем логическом томе /dev/fileserver/samba.
Последовательность действий такая:
1. Сначала нужно убедиться в наличии необходимого нам дискового пространства в группе томов. Делается это командой vgdisplay. Допустим, мы хотим добавить к нашему логическому тому еще 300 Мб. Как мы видим (см. вывод команды vgdisplay выше), у нас еще достаточно свободного места в группе.
2. Увеличиваем логический том командой lvextend:

[root@localhost ~]# lvextend -L +200M /dev/fileserver/samba
Extending logical volume samba to 500.00 MB
Logical volume samba successfully resized

Новый размер тома (ключ -L) можно указывать и в относительных единицах (как в примере), и в абсолютных.
3. Если мы теперь посмотрим на вывод команды df -h мы увидим, что пока ничего не изменилось:

[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/fileserver-samba
291M 11M 266M 4% /mnt/data

несмотря на то, что lvscan показывает верный размер:

[root@localhost ~]# lvscan
ACTIVE '/dev/fileserver/samba' [500.00 MB] inherit

Это произошло потому, что мы увеличили размер логического тома, но пока «забыли» сказать об этом файловой системе, расположенной «этажом выше». Давайте же изменим размер файловой системы. Делается это командной resize2fs (для ext2/ext3/ext4) или resize_reiserfs для одноименной системы:

[root@localhost ~]# resize2fs /dev/fileserver/samba
resize2fs 1.41.5 (23-Apr-2009)
Filesystem at /dev/fileserver/samba is mounted on /mnt/data; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/fileserver/samba to 512000 (1k) blocks.
The filesystem on /dev/fileserver/samba is now 512000 blocks long.

Теперь все правильно:

[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/fileserver-samba
485M 11M 450M 3% /mnt/data

Обратите внимание, что все показанное производилось на смонтированной файловой системе. То есть, все операции не требуют остановки серверов, приостановки работы пользователей и т. п.

Уменьшение логических томов

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

ВНИМАНИЕ!
Шаги 2 и 3 очень часто путают местами, что приводит к потере данных, хранящихся на логическом томе.

Делается это все так:
1. Размонтируем файловую систему: umount /dev/fileserver/samba
2. Уменьшаем размер файловой системы. Для этого сначала сделаем проверку самой файловой системы. Утилита resize2fs не даст изменить размер до выполнения проверки. Конечно, у нее есть ключ -f, который заставит ее это сделать, но лучше перестраховаться и все-таки выполнить проверку:

[root@localhost ~]# fsck.ext4 -f /dev/fileserver/samba
e2fsck 1.41.5 (23-Apr-2009)
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/fileserver/samba: 11/127512 files (0.0% non-contiguous), 26603/512000 blocks

[root@localhost ~]# resize2fs /dev/fileserver/samba 300M
resize2fs 1.41.5 (23-Apr-2009)
Resizing the filesystem on /dev/fileserver/samba to 307200 (1k) blocks.
The filesystem on /dev/fileserver/samba is now 307200 blocks long

3. Только после корректного выполнения двух предыдущих шагов уменьшаем размер логического тома:

[root@localhost ~]# lvreduce -L 300M /dev/fileserver/samba
WARNING: Reducing active logical volume to 300.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce samba? [y/n]: y
Reducing logical volume samba to 300.00 MB
Logical volume samba successfully resized

В качестве размера тома (ключ -L), как и в случае с lvextend можно указывать и абсолютные и относительные единицы. Здесь мы также видим страшное предупреждение о потере данных. Несмотря на это (если вы не используете тестовые версии программ), ваши данные будут в целости и сохранности (скорее всего :) , 100% гарантии вам все равно никто не даст).
После этого монтируем файловую систему и смотрим что поменялось:

[root@localhost ~]# mount /dev/fileserver/samba /mnt/data/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/fileserver-samba
291M 11M 266M 4% /mnt/data

Итак, если вы все делаете в указанной последовательности, вашим данным скорее всего ничего не грозит. Но лучше перед уменьшением тома все-таки сделать его резервную копию. Я сам многократно уменьшал физические тома без каких-либо потерь данных, но наличие резервной копии - это наличие резервной копии :).

Увеличение и уменьшение группы томов

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

Давайте вернемся к нашему примеру. Допустим нам перестало хватать места в нашей группе томов и мы ее хотим дополнить новыми физическими томами. Делается это командой vgextend:

[root@localhost ~]# vgextend fileserver /dev/sdb6
Volume group "fileserver" successfully extended
[root@localhost ~]# vgdisplay fileserver
--- Volume group ---
VG Name fileserver
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size 1.99 GB
PE Size 4.00 MB
Total PE 510
Alloc PE / Size 75 / 300.00 MB
Free PE / Size 435 / 1.70 GB
VG UUID SZLgLK-b9V8-RiZV-gH5i-N0pA-2ppf-axLqfO

Как мы видим (выделено), пул дискового пространства, которым мы располагаем, увеличился. Теперь его тоже можно использовать для увеличения существующих логических томов данной группы и для создания новых.

Следующая операция, которую тоже можно делать с LVM - это уменьшение группы томов. Прежде чем вывести физический том из группы - его необходимо освободить от данных. Первое, что тут следует сделать в данном случае - это убедиться, что дискового пространства, которое останется в группе, хватит для размещения этих данных. Разработчики LVM пока не владеют методами размещения данных в астральном пространстве, но работа над этим ведется :). Итак, посмотреть это можно командой pvscan:

[root@localhost ~]# pvscan
PV /dev/sdb1 VG fileserver lvm2 [476.00 MB / 176.00 MB free]
PV /dev/sdb5 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb6 VG fileserver lvm2 [1.06 GB / 1.06 GB free]

Здесь мы видим, что реально сейчас используется только первый физический том - /dev/sdb1. И еще мы тут видим один интересный аспект работы LVM: если какой-то логический том можно разместить на отдельном физическом целиком - LVM выберет именно этот путь.
Кстати, под словом free команда pvscan подразумевает не свободное от данных пространство, а пространство не выделенное в логические тома.
Итак, для освобождения физических томов от данных и размещения их на других физических томах той же группы есть команда pvmove:

[root@localhost ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 100.0%

По умолчанию данная программа требует только одного аргумента - имени освобождаемого тома. Также ей можно указать (вторым аргументом) и имя тома, на который нужно поместить данные.

Вывод команды pvscan теперь выглядит вот так:

[root@localhost ~]# pvscan
PV /dev/sdb1 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb5 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb6 VG fileserver lvm2 [1.06 GB / 788.00 MB free]

Как мы видим, теперь наш логический том «уехал» на другой раздел диска. Причем этот том смонтирован и с ним в этот момент могут работать пользователи.

Убрать освобожденный том из группы можно командой vgreduce:

[root@localhost ~]# vgreduce fileserver /dev/sdb1
Removed "/dev/sdb1" from volume group "fileserver"
[root@localhost ~]# pvscan
PV /dev/sdb5 VG fileserver lvm2 [476.00 MB / 476.00 MB free]
PV /dev/sdb6 VG fileserver lvm2 [1.06 GB / 788.00 MB free]
PV /dev/sdb1 lvm2 [478.47 MB]

Теперь мы видим, что наш физический том /dev/sdb1 «осиротел» и больше не принадлежит ни одной группе.

Снапшоты/Снимки
Следующая полезная возможность LVM - это снапшоты или снимки. Снимок - это как бы фотография дискового пространства оригинального тома. После выполнения снимка все изменения, происходящие на томе-оригинале, никак не видны на снимке. Все программы будут продолжать работать с оригинальным томом как ни в чем не бывало.
Сферы применения снапшотов могут быть самыми разнообразными. Например, резервное копирование базы данных. Если не использовать LVM - базу данных необходимо останавливать, копировать ее файлы куда-нибудь для последующего резервного копирования, а затем запускать ее заново. То есть делать это придется в нерабочее время. С LVM все проще - следует сделать снимок раздела с файлами базы данных и уже можно начинать делать резервную копию. Остановка базы данных не нужна.
Самая интересная особенность LVM при работе со снимками - это то, что снимок может занимать меньше дискового пространства, чем оригинал. Для этого используется режим Copy-on-Write, при котором реальное использование дискового пространства начинается только при изменении данных на томе-оригинале. То есть при попытке модификации файла на томе-оригинале неизмененный файл сначала сохраняется на томе-снимке, а уж затем модифицируется.

ВНИМАНИЕ! При заполнении тома-снимка до конца, происходит его уничтожение. То есть том продолжает существовать, но ни смонтировать его, ни просмотреть его содержимое (если он был смонтирован до этого) уже не получится. Эту особенность следует обязательно учитывать при задании размера тома-снимка в момент его создания.

Создание снимка делается хорошо известной командой lvcreate:

[root@localhost ~]# lvcreate -s -L 100M -n backup /dev/fileserver/samba
Logical volume "backup" created

Ключ -s указывает, что создаем мы именно снапшот, -n указывает имя создаваемого тома, а /dev/fileserver/samba показывает с какого именно тома мы делаем снимок.
Команда lvscan покажет нам, что мы создали снапшот:

[root@localhost ~]# lvscan
ACTIVE Original '/dev/fileserver/samba' [300.00 MB] inherit
ACTIVE Snapshot '/dev/fileserver/backup' [100.00 MB] inherit

Теперь можете убедиться в том, что изменения, происходящие с оригиналом, никак не повлияют на снапшот.

Полезные советы для работы с LVM
1. В руководстве по администрированию RHEL встретился один замечательный совет. При использовании LVM не следует стараться распределить все имеющееся дисковое пространство в логические тома. Гораздо лучше другой путь. При распределении дискового пространства следует сделать это по своему опыту, ориентируясь на минимально необходимые потребности пользователей системы или работающих сервисов. Оставшееся в группе пространство будет «горячим» резервом, который администратор сможет добавить при нехватке места. Как было видно выше - добавление дискового простраства (увеличение логических томов) операция легкая и быстрая, в отличие от уменьшения.

Полезные источники (которые было бы неплохо посмотреть):

17 комментариев:

  1. Спасибо.
    Стало понятнее :)

    ОтветитьУдалить
  2. Просто шикарно. Возможен ли переход на lvm следующим путём:
    1. Сделать резервную копию данных (/ и /home), например, на sdd.
    2. Сотворить вышеописанное с sda,sdb и sdc.
    3. Скопировать / из sdd на специально созданный логический том system.
    4. Скопировать /home из sdd на специально созданный логический том homyak.
    5. Добавить в наш lvm физический том sdd.
    6. Отредактировать /etc/fstab на lvm, исправив старое на новое.
    7. Установить загрузчик.
    8. Перезагрузиться и получить систему без каких-либо потерь данных, но теперь в lvm.

    ?????

    ОтветитьУдалить
  3. Спасибо, коллега :)

    Все по делу, ничего лишнего :) Побольше бы таких статей.

    ОтветитьУдалить
  4. Тут трудно дать однозначный ответ. Скажем так, я бы смог так сделать точно :). Примерно таким же способом я переносил установленную систему на LVM в пределах одного диска :).

    Ответ на вопрос зависит еще и от того, какой Вы используете дистрибутив и какой там загрузчик по умолчанию. Grub первой версии не умеет грузить систему с LVM, поэтому при его использовании надо иметь отдельный /boot раздел. Grub2 умеет грузить систему прямо с LVM. Главное тут еще то, что после переноса системы надо не забыть обновить initrd. В большинстве дистрибутивов скрипты его создающие достаточно интелектуальны, чтобы понять, что корень находится на LVM и надо бы добавить в initrd его поддержку. На ум приходит только ALT Linux версии 5, который нельзя поставить на LVM, но можно сделать это позже с помощью нового make-initrd, в конфиге которого теперь надо прописывать необходимость поддержки загрузки с LVM.

    ОтветитьУдалить
  5. Дистрибутив openSUSE 11.3. Про grub'ы (почти что гробы о_О) спасибо, не знал.

    ОтветитьУдалить
  6. Пост классный, но есть вопрос.
    Мне в комментариях анонимусы тоже усиленно про LVM намекали, но мне эта идея не нравится, ибо:
    1) это лишняя прослойка между железом и конечным пользователем, следовательно, лишние тормоза с вводом-выводом, с которым в линуксах и так всё нерадостно;
    2) лишние танцы с бубном при загрузке: нужен Grub2, а его надо отдельно ставить. И настраивать. А если надо загрузиться с LiveCD и что-то поправить - как быть!?
    3) случилось страшное и один из винчестером накрылся - как тогда восстановить данные, если LVM на два диска разнесён?
    Буду признателен за расширение кругозора :-)

    ОтветитьУдалить
  7. Сначала на пост выше - насколько я помню в openSUSE один из самых адекватных скриптов mkinitrd. Он показывает что туда будет включено еще на этапе создания образа.

    ОтветитьУдалить
  8. 2virens:
    1)Я не проводил тестов на скорость работы, но сдается мне потери не так уж и велики, чтоб не использовать LVM. Имхо, разумеется.
    2) Можно использовать Grub первой версии, но тогда нужно /boot делать отдельным разделом (НЕ на LVM). При загрузке с LiveCD, если там (на LiveCD) есть утилиты для работы с LVM - просто дать сначала (но необязательно) команду: lvscan, а для активации LVM: vgchange -ay . Насколько я помню, тут самый сложный путь был на установочным диске Arch'а. Там надо было сначала подгрузить модуль dm_mod (через который все и работает), а затем (поскольку нет нужных жестких ссылок) вводить все команды в виде: lvm lvcreate .
    3) Тут надо смотреть: если том оказался на еще работающем диске, то проблем не будет. В противном случае, сами понимаете :) ... Но для отказоустойчивых систем лучше все на RAID еще сделать. По фэншую это RAID и поверх него LVM. Да и в самом LVM есть несколько режимов работы. Это лучше посмотреть в редхатовских доках. Я ссылку дал.

    Ну и, естественно, каждый решает для себя сам - нужен ему LVM или нет. Так же ведь в любой области человеческих знаний поступают: если польза перевешивает возможные недостатки - мы это используем, если нет - не используем. Я вот все, что ставлю для себя - ставлю на LVM.

    ОтветитьУдалить
  9. Интересная статья, спасибо большое.
    Есть пара комментариев и вопрос:

    1) "LVM-snapshots" - _очень_ тормозят работу с диском. Время отклика может взлететь в пять а то и в десять раз. (Как-то активировал snapshots на томе, где активно копошились виртуальные машины. Собственно, даже копирования из snapshot не делал - всё уже "стало колом". Отключил snapshots - всё опять заработало). Поэтому, включать LVM-snapshots я всё-же стараюсь, когда система не сильно загружена.

    2) для использования "LVM-snapshots" нужно, чтобы файловая система их тоже поддерживала. То есть, при использовании ext2 (простите за некрофилию), "snapshots" бесполезны. В то же время, с xfs всё в порядке.

    Для себя я сделал выбор - серверы ставятся на RAID1+LVM+xfs.

    Пока ещё не до конца определился, использовать ли LVM в виртуальных машинах. Скорее склоняюсь в сторону неиспользования. А что думаете по этому вопросу Вы?

    ОтветитьУдалить
  10. еще бы стратью можно было распечатать, было бы вообще супер
    http://labnol.blogspot.com/2006/08/blogger-hacks-how-to-enable-printer.html

    ОтветитьУдалить
  11. А копипаст не помогает? Я посмотрю эту ссылку как будет время. Сейчас, "благодаря" напряженному году я сильно "подсел" и чтобы сделать что-то полезное, мне надо приложить много усилий :).

    ОтветитьУдалить
  12. ...Предположим, что нам перестало хватать места на нашем физическом томе /dev/fileserver/samba.
    Последовательность действий такая:...

    имелся ввиду логический?

    ОтветитьУдалить
  13. Да, конечно, спасибо огромное! Сейчас поправлю :).

    ОтветитьУдалить
  14. Спасибо, за подробную статью!)
    Подскажите если в системе есть
    /dev/sda1 swap
    /dev/sda2 root LVM
    на /dev/sda2 имеется два логических тома LVM
    lv_root - для системы
    lv_storage - для файлов пользователей
    Если произойдет сбой ОС и останется только вариант ее переустановки, тогда все данные в lv_storage будут утеряны? т.к. скорее всего нужно будет форматировать физический том /dev/sda2... Или не обязательно форматировать?

    ОтветитьУдалить
  15. Статья просто супер, огромное спасибо автору!!!

    ОтветитьУдалить
  16. Огромное спасибо!
    Статья 5+

    ОтветитьУдалить
  17. Добрый день, подскажите пожалуйста, имеется маппинг в /etc/fstab/
    там был прописан один путь:
    /dev/sapapp_vg/sybase-sid_lv /sybase/TSR ext3 acl,user_xattr 1 2
    после смены SID БД, эта папка осталась бесхозной. Но у меня создалась другая папка /sybase/TST
    Пытался поменять TSR на TST, ничего не получилось, все содержимое папки исчезает. Как это можно сделать?
    Имеются также и другие пути, которые необходимо поменять.

    ОтветитьУдалить