Предупреждение : Этот документ находится в разработке, и его пока не следует считать официальным. |
В этом руководстве в качестве примера взяты два жестких диска IDE. Это значит, что вам, скорее всего, придется изменить имена дисков и разделов и размеры разделов на соответствующие вашей установке и требованиям.
Предупреждение: Этот документ не не является руководством по LVM2. Он служит приложением к процедуре установки Gentoo описанной в Настольной книге Gentoo, часть 1. Обязательно прочитайте Инструкцию по установке Gentoo перед тем, как приступать к установке. |
Примечание: Для полного HOWTO по LVM перейдите по ссылке http://tldp.org/HOWTO/LVM-HOWTO |
Если вы собираетесь делать новую установки Gentoo, вам понадобится загрузочный CD с поддержкой LVM2, например, установочный компакт-диск Gentoo. Вы можете получить установочный диск для архитектуры x86 на одном из наших зеркал в /releases/x86/2005.1/installcd. Поддерживаются и некоторые другие архитектуры.
Если вы устанавливаете LVM2 на уже работающую систему, где имеется свободное место на жестком диске, вам потребуется загрузить LVM2 модуль (dm-mod). Этот модуль доступен в gentoo-sources и в vanilla-sources. Сборка ядра и включение LVM2 рассмотрены далее в этом руководстве.
Не все ядра 2.4, поставляемые Gentoo, поддерживают LVM2!
Предупреждение: Переменная LVM2, имеющаяся в установочных компакт-дисках 2005.0, ошибочно динамически связана с библиотекой (libgpm), находящейся в /usr. Это значит, что в вашей среде LVM не может также находиться ваш /usr. Устанавливайте или новейшую версию, или версию 2.0.33 (не -r1), собранную статически. |
В нашем примере в системе имеется два IDE винчестера, которые будут разбиты на разделы по схеме:
Важно: Будьте внимательны с именами разделов, потому что легко перепутать "a" и "b", или номера разделов. Одним неверным движением можно уничтожить раздел. Вы предупреждены! |
Пора начинать...
Действуйте согласно Настольной книге Gentoo с учетом следующих поправок к главе 4. Подготовка дисков:
Используйте fdisk как описано в Настольной книге, но придерживайтесь схемы разбиения, описанной выше. Это всего лишь пример, измените его для вашей установки.
Создайте маленький физический /boot раздел (hda1). В этом примере /boot не будет управляться LVM2. На этом разделе будут размещены загрузчик и ядро(а). 64MB должно быть более чем достаточно для нескольких ядер.
Создайте swap раздел (hda2) и активируйте его.
Листинг 2.1: Активирование swap-раздела |
# mkswap /dev/hda2 # swapon /dev/hda2 |
Создайте / (root) раздел (hda3). Если вы намерены попробовать использовать LVM для root раздела (что мы не рекомендуем), обратитесь к списку источников в конце руководства за ссылкой на mini-howto о том,как это сделать. Не нужно создавать большой раздел root,если вы собираетесь разместить /opt /usr /home /var и /tmp в Группе томов LVM2 (vg). В этом случае 1 ГБ будет достаточно.
Примечание: Не рекомендуется хранить следующие директории на LVM2 разделе: /etc, /lib, /mnt, /proc, /sbin, /dev и /root. Тогда вы сможете войти в вашу систему (искалеченную, но все еще работоспособную) как root, если вдруг случится ужасная ошибка. |
Предполагая, что /boot, swap и root разделы не используют весь жесткий диск, создайте четвертый раздел на этом диске с типом 8e (Linux LVM). Если у вас больше жестких дисков, которые в хотели бы использовать с LVM, создайте один раздел на каждом и установите для них тот же тип (8e).
Примечание: Принимая во внимание огромные размеры винчестеров, вы можете подумать о разбиении ваших дисков на меньшие разделы, вместо создания одного большого, который будет добавлен в группу томов LVM как один блок. В конце концов, с помощью LVM2 легко расширить тома. Это оставляет несколько разделов,которые вам,может быть,понадобятся вне группы LVM2. Короче, не используйте место на диске,пока не уверены, что оно вам нужно. Например один сотрудник разделил его 160 ГБ винчестер на 8 разделов по 20 ГБ. |
Загрузите LVM2 dm-mod модуль.
Листинг 2.2: Загрузка модуля LVM2 |
# modprobe dm-mod
|
Сканирование и включение LVM:
Листинг 2.3: Включение LVM |
(избегать сканирования cd-приводов) # mkdir -p /etc/lvm # echo 'devices { filter=["r/cdrom/"] }' >/etc/lvm/lvm.conf # vgscan Reading all physical volumes. This may take a while... No volume groups found (сделать доступными любые ранее настроенные группы томов) # vgchange -a y |
Подготовка разделов.
Листинг 2.4: Подготовка разделов |
# pvcreate /dev/hda4 /dev/hdb1
No physical volume label read from /dev/hda4
Physical volume "/dev/hda4" successfully created
No physical volume label read from /dev/hdb1
Physical volume "/dev/hdb1" successfully created
|
Настройка группы томов. Группа томов - это результат объединения нескольких физических частей в одно логическое устройство.
В нашем примере/dev/hda1, /dev/hda2 и /dev/hda3 -это /boot, swap и root разделы, значит нам нужно скомбинировать /dev/hda4 и /dev/hdb1. Это может быть сделано одной командой,но для примера мы создадим группу томов и расширим ее.
Листинг 2.5: Создание и расширение группы томов |
(Создаем группу томов с именем vg) # vgcreate vg /dev/hda4 /etc/lvm/backup: fsync failed: Invalid argument (Игнорируйте предупреждение) Volume group "vg" successfully created (Расширяем существующую группу томов) # vgextend vg /dev/hdb1 /etc/lvm/backup: fsync failed: Invalid argument (Игнорируйте предупреждение и здесь, и далее ) Volume group "vg" successfully extended |
Создайте логические тома. Логические тома похожи на разделы, которые вы бы создали, используя fdisk в среде без LVM2. В нашем примере, мы создаем следующие разделы:
| Директория | Раздел |
| /usr | 10 GB |
| /home | 5 GB |
| /opt | 5 GB |
| /var | 10 GB |
| /tmp | 2 GB |
Так как мы собираемся использовать LVM2, не стоит беспокоиться о размере разделов, потому что их всегда можно расширить по мере необходимости.
Примечание: Как отметил Terje Kvernes, легче увеличить размер раздела, чем уменьшить его. Следовательно, вы, скорее всего, начнете с меньших разделов и увеличите их, когда потребуется. |
Листинг 2.6: Создание и расширение логических томов |
# lvcreate -L10G -nusr vg Logical volume "usr" created (Следующие похожие сообщения не показаны) # lvcreate -L5G -nhome vg # lvcreate -L5G -nopt vg # lvcreate -L10G -nvar vg # lvcreate -L2G -ntmp vg (для примера, увеличим логический том еще на 5 ГБ) # lvextend -L+5G /dev/vg/home |
Создайте файловые системы на логических томах так же, как вы сделали бы это на обычных разделах. Мы используем ext3 на логических томах, но любая файловая система будет работать:
Листинг 2.7: Создание файловых систем |
# mke2fs -j /dev/vg/usr # mke2fs -j /dev/vg/home # mke2fs -j /dev/vg/opt # mke2fs -j /dev/vg/var # mke2fs -j /dev/vg/tmp |
Смонтируйте разделы как описано в Справочнике и монтируйте логические тома LVM2 как обычные разделы. Замените /dev/hdxx на /dev/vg/logical_volumename.
Листинг 2.8: Монтирование логических томов |
(Сначала проверьте, что вы смонтировали root раздел как описано в Справочнике) # mkdir /mnt/gentoo/usr # mount /dev/vg/usr /mnt/gentoo/usr # mkdir /mnt/gentoo/home # mount /dev/vg/home /mnt/gentoo/home # mkdir /mnt/gentoo/opt # mount /dev/vg/opt /mnt/gentoo/opt # mkdir /mnt/gentoo/var # mount /dev/vg/var /mnt/gentoo/var # mkdir /mnt/gentoo/tmp # mount /dev/vg/tmp /mnt/gentoo/tmp |
Примечание: Почти все остальные действия в Справочнике остаются без изменений, поэтому мы не будем описывать весь процесс, а ограничимся отличиями. |
При конфигурировании ядра не забудьте добавить поддержку LVM2 (не во всех все ядрах 2.4.x это поддерживается). Выберите LVM2 модуль:
Листинг 2.9: Выбор модуля LVM2 в ядрах 2.4.x |
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
(Отметьте,что LVM специально не выбрано,эта опция для LVM1)
< > Logical volume manager (LVM) support
<M> Device-mapper support
< > Mirror (RAID-1) support
|
Листинг 2.10: Выбор модуля LVM2 в ядрах 2.6.x |
Device Drivers ---> Multi-device support (RAID and LVM) ---> [*] Multiple devices driver support (RAID and LVM) < > RAID support <M> Device mapper support |
Откомпилированный модуль называется dm-mod.ko
После того, как вы соберете ваше ядро и установите его модули, добавьте следующую строку в ваш /etc/modules.autoload.d/kernel-{KV},где {KV} - это версия вашего ядра (2.4 или 2.6),для того,чтобы модуль LVM2 подгружался при загрузке компьютера:
Листинг 2.11: Добавление модуля LVM2 в /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6 (Добавьте эту строку) dm-mod |
Теперь установите пакет lvm2.
Важно: Убедитесь, что ваша ссылка /usr/src/linux указывает на исходники ядра, которые ва используете, так как lvm2 ebuild зависит от device-mapper ebuild, который проверяет наличие необходимых исходников в /usr/src/linux/include/linux. |
Листинг 2.12: Получение пакета LVM2 |
# emerge lvm2 (на момент написания, стабильная версия - 2.00.08. В версии 2.00.08, предотвращение опроса вашего CD-ROM lvm2 делается так: # echo 'devices { filter=["r/cdrom/"] }' >> /etc/lvm/lvm.conf (версии 2.00.15 и более поздние поставляются с /etc/lvm/lvm.conf Редактируйте свой /etc/lvm/lvm.conf, следуя комментариям # nano -w /etc/lvm/lvm.conf |
Во время редактрования вашего /etc/fstab, следуйте Справочнику и добавьте ваши логические тома LVM2. Вот строки,необходимые в нашем примере:
Листинг 2.13: Выдержка из /etc/fstab |
/dev/hda1 /boot ext3 noauto,noatime 1 1 /dev/hda2 none swap sw 0 0 /dev/hda3 / ext3 noatime 0 0 # Logical volumes /dev/vg/usr /usr ext3 noatime 0 0 /dev/vg/home /home ext3 noatime 0 0 /dev/vg/opt /opt ext3 noatime 0 0 /dev/vg/var /var ext3 noatime 0 0 /dev/vg/tmp /tmp ext3 noatime 0 0 |
Когда вы подойдете к концу главы Справочника посвященной установке, не забудьте размонтировать все ваши логические тома LVM2 и выполните следующие команды перед перезагрузкой:
Листинг 2.14: Выключение LVM2 |
# vgchange -an
|
Перезагрузите машину, и все разделы должны быть доступны и смонтированы.
3. Продолжение после перезагрузки
Если вы в какой-либо точке прервали установку Gentoo и хотите продолжить, сначала вам потребуется создать файлы устройств для томов:
Листинг 3.1: Переподключение томов |
# vgscan --mknodes
|
При использовании установочных дисков с более старыми утилитами вместо этого может потребоваться повторное подключение томов:
Листинг 3.2: Переподключение томов |
(сначала отключаем все тома) # vgchange -a n (экспортируем все тома) # vgexport -a vg (импортируем все тома) # vgimport -a vg (восстанавливаем подключение томов) # vgchange -a y |
Спасибо Thilo Bangert и Terje Kvernes за помощь и комментарии по этому документу.
Текст этого документа распространяется на условиях лицензии Creative Commons - Attribution / Share Alike.