UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

395 lines (245 loc) 25.5 kB
## Contents * [1 Введение](#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5) * [2 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0) * [2.1 Установка Arch Linux на LVM](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_Arch_Linux_.D0.BD.D0.B0_LVM) * [2.2 Разметка дисков](#.D0.A0.D0.B0.D0.B7.D0.BC.D0.B5.D1.82.D0.BA.D0.B0_.D0.B4.D0.B8.D1.81.D0.BA.D0.BE.D0.B2) * [2.3 Создание физических томов(PV)](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D1.84.D0.B8.D0.B7.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D1.85_.D1.82.D0.BE.D0.BC.D0.BE.D0.B2.28PV.29) * [2.4 Создание группы логических томов](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D1.8B_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D1.85_.D1.82.D0.BE.D0.BC.D0.BE.D0.B2) * [2.5 Создание логических томов](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D1.85_.D1.82.D0.BE.D0.BC.D0.BE.D0.B2) * [2.6 Создание файловых систем и их монтирование](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D1.84.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D1.8B.D1.85_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC_.D0.B8_.D0.B8.D1.85_.D0.BC.D0.BE.D0.BD.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5) * [2.7 Важно](#.D0.92.D0.B0.D0.B6.D0.BD.D0.BE) * [3 Настройка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0) * [3.1 Увеличение размера логического тома](#.D0.A3.D0.B2.D0.B5.D0.BB.D0.B8.D1.87.D0.B5.D0.BD.D0.B8.D0.B5_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.80.D0.B0_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D1.82.D0.BE.D0.BC.D0.B0) * [3.2 Уменьшение размера логического тома](#.D0.A3.D0.BC.D0.B5.D0.BD.D1.8C.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.80.D0.B0_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D1.82.D0.BE.D0.BC.D0.B0) * [3.3 Добавить раздел к логической группе](#.D0.94.D0.BE.D0.B1.D0.B0.D0.B2.D0.B8.D1.82.D1.8C_.D1.80.D0.B0.D0.B7.D0.B4.D0.B5.D0.BB_.D0.BA_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B9_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D0.B5) * [3.4 Удаление раздела из логической группы](#.D0.A3.D0.B4.D0.B0.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.80.D0.B0.D0.B7.D0.B4.D0.B5.D0.BB.D0.B0_.D0.B8.D0.B7_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B9_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D1.8B) * [3.5 Клонирование](#.D0.9A.D0.BB.D0.BE.D0.BD.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5) * [3.5.1 Введение](#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5_2) * [3.5.2 Настрйка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.B9.D0.BA.D0.B0) * [4 Решение проблем](#.D0.A0.D0.B5.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC) * [4.1 LVM команды не работают](#LVM_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D1.8B_.D0.BD.D0.B5_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.B0.D1.8E.D1.82) * [4.2 Не видно логические тома](#.D0.9D.D0.B5_.D0.B2.D0.B8.D0.B4.D0.BD.D0.BE_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D0.B5_.D1.82.D0.BE.D0.BC.D0.B0) * [5 Ещё по теме](#.D0.95.D1.89.D1.91_.D0.BF.D0.BE_.D1.82.D0.B5.D0.BC.D0.B5) # Введение Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять. Устройство LVM: * **Физический том(англ. physical volume)**: Раздел на жёстком диске или жёсткий диск на котором создаются логические тома. * **Группа томов (англ. volume group)**: Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски. * **Логический том (англ. logical volume)**: аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему. * **Физический диапазон (англ. physical extent)** : Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу. * **Логические диапазоны (англ. logical extent)**: диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов. Преимущества LVM: * использование любого количества жёстких дисков или их разделов как один большой раздел. * логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков. * изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома. * изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online") * Снапшоты позволяют создавать резервную копию замороженной файловой системы практически на лету. * Поддержка устройств для различных целей, включая прозрачное шифрование файловой системы и кэширования часто используемых данных. * динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online". Недостатки : * Только Linux-совместимый . Отсутствие официальной поддержки в большинстве других ОС(FreeBSD, Windows..). * Дополнительные шаги в более сложной настройке системы Пример: ``` **Жёсткий диск** Disk1 (/dev/sda): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) | |/dev/sda1 |/dev/sda2 | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | Disk2 (/dev/sdb): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |Partition1 120GB (Physical volume) | |/dev/sdb1 | | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _| ``` ``` **Логические тома** Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB | |/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol | |_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ``` В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами) # Установка Перед началом установки нужно загрузить модуль ядра: ``` # modprobe dm-mod ``` Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к [partition disks](/index.php/LVM#Partition_disks "LVM"). #### Установка Arch Linux на LVM Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью `cfdisk`. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел `/boot` должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше. #### Разметка дисков Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e). Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске. **Важно:** /boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM. **Tip:** Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска. #### Создание физических томов(PV) Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте `fdisk -l` чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома: ``` # pvcreate /dev/sda2 ``` Замените `/dev/sda2` на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM. Отобразить все разделы, которые LVM может использовать, можно с помощью: ``` # pvdisplay ``` #### Создание группы логических томов Следующий шаг - это создание логических томов внутри физических томов. Выполните следующую команду на каждом физическом томе: ``` # vgcreate VolGroup00 /dev/sda2 # vgextend VolGroup00 /dev/sdb1 ``` Метку "VolGroup00" можно заменить на любую другую. Отобразить все доступные логические тома можно с помощью: ``` # vgdisplay ``` **Примечание:** Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков. #### Создание логических томов Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome" ``` # lvcreate -L 10G VolGroup00 -n lvolhome ``` Этот том будет доступен позже как устойство `/dev/mapper/Volgroup00-lvolhome` или `/dev/VolGroup00/lvolhome`. Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение. Чтобы создать раздел swap внутри тома, нужен дополнительный параметр: ``` # lvcreate -C y -L 10G VolGroup00 -n lvolswap ``` `-C y` создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений. Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните: ``` # lvcreate -l +100%FREE VolGroup00 -n lvolmedia ``` Логические тома можно отобразить командой: ``` # lvdisplay ``` **Примечание:** возможно потребуется загрузка модуля ядра (**modprobe dm-mod**) **Tip:** Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов. #### Создание файловых систем и их монтирование Ваши логические тома должны быть доступны по следующему пути: `/dev/mapper/` и `/dev/YourVolumeGroupName`. Если их там нет, загрузите модуль ядра и сделайте группы доступными: ``` # modprobe dm-mod # vgchange -ay ``` Теперь можно создать файловые системы внутри логических томов и смонтировать их как обычные разделы.Если вы устанавливаете Arch Linux, пропустите этот шаг и используйте программу установки для выбора LVM разделов, которые вы создали. ``` # mkfs.ext3 /dev/mapper/VolGroup00-lvolhome # mount /dev/mapper/VolGroup00-lvolhome /home ``` Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к *Prepare Hard Drive* далее сразу выберите *Set Filesystem Mountpoints* и ***прочтите абзац [Важно](/index.php/LVM#.D0.92.D0.B0.D0.B6.D0.BD.D0.BE "LVM") перед тем как продолжить!*** ### Важно Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки): 1. Во время выбора точек монтирования выберете только что созданные логические тома(используйте: `/dev/mapper/Volgroup00-lvolhome`). НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: `/dev/sda2`). (*Set Filesystem Mountpoints*) 2. Убедитесь, что вы заменили *USELVM="no"* на *USELVM="yes"* 3. Убедитесь, что *lvm2* находится в секции HOOKS в `/etc/mkinitcpio.conf` непосредственно перед *filesystems*, для того чтобы ядро смогло найти LVM во время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте *dm-snapshot* к переменной MODULES (*Configure System*) 1. Убедитесь, что в `/boot/grub/menu.lst` указаны правильные тома для раздела /root.(*Install Bootloader*) Пример `/boot/grub/menu.lst` ``` ... # (0) Arch Linux title Arch Linux root (hd0,0) kernel /vmlinuz26 **root=/dev/mapper/VolGroup00-lvolroot** resume=/dev/mapper/VolGroup00-lvolswap ro initrd /kernel26.img ... ``` If you are using LILO check `/etc/lilo.conf`: ``` image=/boot/vmlinuz26 label=arch append="**root=/dev/mapper/VolGroup00-lvolroot** resume=/dev/mapper/VolGroup00-lvolswap ro" initrd=/boot/kernel26.img ``` # Настройка ## Увеличение размера логического тома Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб: ``` # lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome) # resize2fs /dev/VolGroup00/lvolhome ``` Вы можете использовать `lvresize` вместо `lvextend`. Если вы хотите заполнить всё свободное место в группе томов: ``` # lvextend -l +100%FREE VolGroup00/lvolhome ``` **Важно:** Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных. **Примечание:** Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому. ## Уменьшение размера логического тома Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома. Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ выглядит следующим образом: ``` # resize2fs /dev/VolGroup00/lvolhome 9G # lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome) # resize2fs /dev/VolGroup00/lvolhome ``` В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить. Вы можете использовать `lvresize` вместо `lvreduce`. **Важно:** Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные. **Важно:** Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных. **Примечание:** Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. ## Добавить раздел к логической группе Тип раздела должен быть 'Linux LVM'. Используйте, например, `cfdisk`. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе: ``` # pvcreate /dev/sdb1 # vgextend VolGroup00 /dev/sdb1 ``` **Tip:** К логической группе могут быть добавлены разделы с любого диска в вашей системе. ## Удаление раздела из логической группы Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится: ``` # pvmove /dev/sdb1 ``` Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки: ``` # pvmove /dev/sdb1 /dev/sdf1 ``` Если физический том должен быть удалён из группы томов: ``` # vgreduce myVg /dev/sdb1 ``` Или удалите все пустые физические тома: ``` # vgreduce --all vg0 ``` И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем: ``` # pvremove /dev/sdb1 ``` ## Клонирование #### Введение LVM может создавать образ вашей системы по эффективно чем традиционные способы резервного копирования. Достигается это тем, что пока идёт создание клона при изменении исходного тома сначала начальная версия копируется в образ (англ. snapshot) и только потом изменяется. Начальный образ содержит только жёсткие ссылки(hard-links) к индексным дескриптором(inodes) ваших данных и использует их всё время пока данные не были изменены. Так система с размером в 35Гб может использовать только 2ГБ свободного места если в сумме в образе и в оригинале было изменено меньше 2ГБ. #### Настрйка Клон логического тома создаётся так-же как обычный том: ``` # lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv ``` На этом томе можно изменять менее 100Мб данных, после этого образ(snapshot) будет заполнен полностью) *dm-snapshot* должен быть в переменной MODULES в `/etc/mkinitcpio.conf`, иначе система не загрузится ``` # mkinitcpio -g /boot/kernel26.img ``` Образы используются в первую очередь для создания замороженной копии файловой системы чтобы уже с неё делать резервную копию. # Решение проблем #### LVM команды не работают * Загрузите модуль ядра: ``` # modprobe dm-mod ``` * Попробуйте использовать префикс *lvm*: ``` # lvm pvdisplay ``` #### Не видно логические тома При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod". В этом случае вам возможно прийдётся выполнить: ``` # vgchange -ay <volgroup> ``` # Ещё по теме Другие статьи на Arch Wiki: * [Installing with software RAID or LVM_(Русский)](/index.php/Installing_with_Software_RAID_or_LVM "Installing with Software RAID or LVM") * [RAID encryption LVM_(Русский)](/index.php/RAID_Encryption_LVM "RAID Encryption LVM") Внешние ссылки: * [LVM on wikipedia](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) "wikipedia:Logical Volume Manager (Linux)") * [LVM HOWTO on tldp.org](http://tldp.org/HOWTO/LVM-HOWTO/) * [LVM at en.gentoo-wiki.com](http://wiki.gentoo.org/wiki/LVM)