LXF83:HDD
(→Наконец-то логические тома) |
Yaleks (обсуждение | вклад) м (→На дне) |
||
(не показаны 13 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
== LVM. Заводим виртуальные разделы == | == LVM. Заводим виртуальные разделы == | ||
− | ''Долой тиранию фиксированных разделов диска | + | ''Долой тиранию фиксированных разделов диска — '''Нейл Ботвик''' покажет, как достичь гибкости при помощи управления логическими томами (Logical Volume Management).'' |
− | Как управлять разделами? Спросите 10 пользователей Linux о лучшем способе разбиения жесткого диска | + | Как управлять разделами? Спросите 10 пользователей Linux о лучшем способе разбиения жесткого диска — итогом будет не меньше 11 разных ответов. Вдобавок все ответы, вероятно, правильные: у каждого метода свои достоинства, все зависит от ваших намерений по использованию системы. Проблемы возникают намного позже, когда реальность расходится с планами и вы замечаете нехватку свободного места в одном разделе и ненужный избыток — в другом. |
− | Размеры разделов можно изменить при помощи утилиты QtParted, но она (и инструменты, ею используемые) ограничивается отодвиганием конца раздела. Вы можете усечь раздел, чтобы высвободить место для нового раздела, или увеличить раздел, включив следующее за ним пустое пространство. Если надо расширить раздел /usr, вклинившийся между разделами root и home, то вам не повезло: придется произвести резервирование данных, удалить и вновь создать разделы, а потом восстановить данные из резервной копии. | + | Размеры разделов можно изменить при помощи утилиты QtParted, но она (и инструменты, ею используемые) ограничивается отодвиганием конца раздела. Вы можете усечь раздел, чтобы высвободить место для нового раздела, или увеличить раздел, включив следующее за ним пустое пространство. Если надо расширить раздел '''/usr''', вклинившийся между разделами '''root''' и '''home''', то вам не повезло: придется произвести резервирование данных, удалить и вновь создать разделы, а потом восстановить данные из резервной копии. |
− | К счастью, решение существует | + | К счастью, решение существует — это менеджер логических томов (LVM), представляющий собой программный слой между разделами и накопителями. Ваши разделы становятся виртуальными, а не прикованными к фиксированному положению на диске. Сегодня я покажу вам, как использовать LVM для создания раздела (далее называемого логическим томом), изменения его размера или удаления без проблем и забот о физическом размещении. Можно даже добавлять и удалять целые диски, не затрагивая вашу файловую систему. |
=== Работаем со слоями === | === Работаем со слоями === | ||
− | LVM поставляется в большинстве дистрибутивов | + | |
+ | {{Врезка | ||
+ | |Заголовок=Требуются права root | ||
+ | |Содержание=Все команды LVM, используемые в данном уроке, требуют запуска с правами суперпользователя (root). Нужно будет открыть терминал и ввести | ||
+ | |||
+ | su - | ||
+ | |||
+ | а затем пароль суперпользователя. С очевидным исключением команд отображения, большинство LVM-команд деструктивны: они удаляют или затирают данные вашего жесткого диска, иногда и тайком. Помните присказку «компьютер делает то, что вы просите, а не то, что вы думаете», и будьте осторожны при запуске представленных здесь команд! Вероятно, хорошей идеей будет экспериментировать где-нибудь на нейтральной территории, например, на отдельном жестком диске. Если у вас такого нет, то для тестов вполне сгодятся приличной емкости USB-брелок или карта памяти в карт-ридере. | ||
+ | |||
+ | Можно также создать LVM на loop-устройстве. Это малоприменимо в реальности, но является хорошим способом экспериментировать, не трогая разделы вашего жесткого диска. Все, что вам нужно – это свободное место для создания loop-файла: | ||
+ | |||
+ | dd if=/dev/zero of=lvmtest bs=1M count=8192 | ||
+ | losetup /dev/loop1 lvmtest | ||
+ | pvcreate /dev/loop1 | ||
+ | vgcreate etc. | ||
+ | |||
+ | Здесь создается файл размером 8 ГБ, присоединяется к loop-устройству и используется в качестве физического тома для LVM. | ||
+ | |Ширина=350px | ||
+ | }} | ||
+ | |||
+ | LVM поставляется в большинстве дистрибутивов — или как часть стандартного набора программ, или в программном репозитарии (пакет обычно называется '''lvm2'''). Там содержатся все используемые инструменты, но учтите, ядро тоже должно поддерживать LVM. Многие дистрибутивы опять-таки предоставляют подходящее ядро, но если вы делаете все самостоятельно, то вам необходимо включить следующие опции: | ||
+ | |||
CONFIG_MD=y | CONFIG_MD=y | ||
CONFIG_BLK_DEV_DM=y | CONFIG_BLK_DEV_DM=y | ||
Строка 15: | Строка 36: | ||
Их можно найти в инструменте конфигурирования ядра: Device Drivers > Multi-Device Support (RAID и LVM) > Device Mapper Support | Их можно найти в инструменте конфигурирования ядра: Device Drivers > Multi-Device Support (RAID и LVM) > Device Mapper Support | ||
− | Имеется две версии Управления Логическими Томами: изначальная | + | Имеется две версии Управления Логическими Томами: изначальная — LVM и последняя — LVM2. LVM2 в основном имеет обратную совместимость с LVM, но когда на этом уроке я говорю о LVM, то подразумеваю LVM2. |
− | LVM предоставляет логические тома трех уровней: физические тома, группы томов и собственно логические тома. В самом низу находятся физические тома | + | LVM предоставляет логические тома трех уровней: физические тома, группы томов и собственно логические тома. В самом низу находятся физические тома — это разделы жесткого диска, на которых хранятся данные ('''/dev/hda1''', '''/dev/sdb3''' и т. п.). Можно также создать физический том, охватывающий весь диск, в этом случае вам не нужно вначале разбивать этот диск на разделы. Один или несколько физических томов объединяются в группы — второй уровень. Вы можете рассматривать группу томов как виртуальный жесткий диск, который может иметь разделы более чем на одном физическом носителе. И, наконец, поверх групп томов создаются логические тома. |
− | Все группы томов разбиваются на один или несколько логических томов, точно так же, как физический жесткий диск разбивается на один или несколько разделов. Основное отличие в том, что все становится более гибким | + | Все группы томов разбиваются на один или несколько логических томов, точно так же, как физический жесткий диск разбивается на один или несколько разделов. Основное отличие в том, что все становится более гибким — от размера виртуальных дисков и разделов до соглашений по именованию, которые вы используете. Здорово? Давайте начнем с низшего уровня: создадим несколько физических томов. |
=== На дне === | === На дне === | ||
Небольшое предупреждение: начиная с этого момента, все приводимые команды требуют прав суперпользователя (см. врезку Требуются права root вверху). Поехали. Итак, физические тома создаются при помощи pvcreate; man-страница содержит множество опций, но обычно требуется указать только имя используемых раздела(-ов) или диска(-ов). Вот хорошие примеры этой команды: | Небольшое предупреждение: начиная с этого момента, все приводимые команды требуют прав суперпользователя (см. врезку Требуются права root вверху). Поехали. Итак, физические тома создаются при помощи pvcreate; man-страница содержит множество опций, но обычно требуется указать только имя используемых раздела(-ов) или диска(-ов). Вот хорошие примеры этой команды: | ||
− | *pvcreate /dev/hda5 | + | * pvcreate '''/dev/hda5''' |
− | *pvcreate /dev/md0 | + | * pvcreate '''/dev/md0''' |
− | *pvcreate /dev/sda7 /dev/sdb | + | * pvcreate '''/dev/sda7''' '''/dev/sdb''' |
Первая из них создает физический том на отдельном разделе; вторая делает то же самое на RAID-разделе. Третий пример создает физические тома в разделе первого диска и на всем втором диске. Если вы хотите создать физический том во весь диск, то последний при этом не должен содержать никаких разделов: если они есть, то pvcreate откажется работать с ним. | Первая из них создает физический том на отдельном разделе; вторая делает то же самое на RAID-разделе. Третий пример создает физические тома в разделе первого диска и на всем втором диске. Если вы хотите создать физический том во весь диск, то последний при этом не должен содержать никаких разделов: если они есть, то pvcreate откажется работать с ним. | ||
Разделы можно удалить при помощи любого инструмента разметки диска, например cfdisk, или командой | Разделы можно удалить при помощи любого инструмента разметки диска, например cfdisk, или командой | ||
+ | |||
dd if=/dev/zero of=/dev/sdb bs=512 count=1 | dd if=/dev/zero of=/dev/sdb bs=512 count=1 | ||
− | Обязательно убедитесь, что вы работаете с нужным диском | + | Обязательно убедитесь, что вы работаете с нужным диском — очень трудно будет восстановить данные, если вы удалите таблицу разделов не того диска. |
=== Работа с группами === | === Работа с группами === | ||
− | Вообще-то наш друг pvcreate только подготавливает устройство для использования LVM | + | Вообще-то наш друг pvcreate только подготавливает устройство для использования LVM — теперь вам необходимо создать одну или несколько групп томов. Для стандартного настольного ПК обычно вполне достаточно одной группы. Для масштабных или специализированных применений, например, серверов с интенсивной нагрузкой, может понадобиться больше. Но сам процесс одинаков, вне зависимости от количества созданных вами групп: |
vgcreate myvg /dev/hda5 /dev/sdb | vgcreate myvg /dev/hda5 /dev/sdb | ||
− | Здесь создается отдельная группа томов с именем myvg, состоящая из раздела на hda и целого sdb (в предположении, что они были подготовлены pvcreate). Кстати, вы можете спокойно проигнорировать любые ошибки, связанные с CD или DVD-приводами: это LVM сканирует ваши диски и выдает ошибку для любого устройства, содержащего диски только для чтения или без дисков. | + | Здесь создается отдельная группа томов с именем '''myvg''', состоящая из раздела на '''hda''' и целого '''sdb''' (в предположении, что они были подготовлены pvcreate). Кстати, вы можете спокойно проигнорировать любые ошибки, связанные с CD или DVD-приводами: это LVM сканирует ваши диски и выдает ошибку для любого устройства, содержащего диски только для чтения или без дисков. |
− | Хотя общепринято давать группам томов нумерованные имена (vg00, | + | Хотя общепринято давать группам томов нумерованные имена (vg00, vg01…), вы можете называть их по-своему. Например, если раздел вашей операционной системы размещается в одной группе, а сами вы работаете с другой, вы можете назвать их System и Work соответственно. Другая причина для использования своих собственных имен — избежание конфликтов: вдруг вам потребуется подсоединить другое устройство с группой томов под именем vg00, чтобы извлечь данные — возникнет путаница. |
Чтобы проверить, создана ли группа томов, выполните | Чтобы проверить, создана ли группа томов, выполните | ||
+ | |||
vgdisplay myvg | vgdisplay myvg | ||
+ | |||
Выведется информация о вашей группе томов. Запустите ее без аргументов, чтобы увидеть параметры всех групп. | Выведется информация о вашей группе томов. Запустите ее без аргументов, чтобы увидеть параметры всех групп. | ||
=== Наконец-то логические тома === | === Наконец-то логические тома === | ||
+ | |||
+ | {{Врезка | ||
+ | |Заголовок=Как увидеть тома и группы | ||
+ | |Содержание=Вы увидите, что можно создать несколько физических томов, групп томов и логических томов. Приятно, что есть команды, помогающие отследить, что происходит: pvdisplay, vgdisplay и lvdisplay показывают параметры ваших физических томов, групп томов и логических томов соответственно. При запуске команды без аргументов выводится список всех объектов данного типа. Вы можете ограничиться конкретными томами и/или группами, указав их в команде – например, так: | ||
+ | |||
+ | vgdisplay myvg # информация об одной группе | ||
+ | lvdisplay myvg # информация обо всех логических томах в группе | ||
+ | |||
+ | lvdisplay /dev/myvg/myvol system/usr # информация об указанных логических томах | ||
+ | |||
+ | Если у вас всего одна группа томов, можете сократить число символов в команде, присвоив имя группы переменной окружения '''LVM_VG_NAME'''. После этого будет использована именно она, даже если в соответствующей команде имя группы не указано. | ||
+ | |Ширина=580px | ||
+ | }} | ||
+ | |||
Теперь к третьему слою; команда создания логических томов лишь немного длиннее, чем команда для создания группы томов. Вот она: | Теперь к третьему слою; команда создания логических томов лишь немного длиннее, чем команда для создания группы томов. Вот она: | ||
lvcreate --name myvol --size 5G myvg | lvcreate --name myvol --size 5G myvg | ||
− | Опция --name, как пояснил бы вам Шерлок Холмс, дает имя тому. Она не обязательна, но если ее опустить, том получит имя вида | + | Опция '''--name''', как пояснил бы вам Шерлок Холмс, дает имя тому. Она не обязательна, но если ее опустить, том получит имя вида «volNN» — значимое имя, безусловно, лучше. Аргумент '''--size''' задает размер тома (ну, это же элементарно) и указывается он в мегабайтах, или по вашему выбору K, M, G или T (килобайты, мегабайты, гигабайты или терабайты, дорогой мой Ватсон). Вы должны указать или '''--size''', или '''--extents'''. Extent (непрерывная область на диске) — это наименьшая единица данных в группе, аналогичная блоку физического диска. Размер по умолчанию — 4 МБ. |
− | Ваш новый том находится в /dev/volumegroup/volumename, и команда | + | Ваш новый том находится в '''/dev/volumegroup/volumename''', и команда |
mke2fs -j /dev/myvg/myvol | mke2fs -j /dev/myvg/myvol | ||
Строка 60: | Строка 98: | ||
создаст на новом томе файловую систему ext3. | создаст на новом томе файловую систему ext3. | ||
− | + | {{Врезка | |
+ | |Заголовок=Графическое администрирование | ||
+ | |Содержание=Я сосредоточился на командной строке потому, что это обычный способ администрирования LVM. Если исключить инструменты, специфичные для дистрибутивов, лучшим GUI-инструментом администрирования LVM является вездесущий Webmin. Он содержится в репозитариях большинства дистрибутивов и, возможно, уже установлен на вашем компьютере. Вы можете найти LVM-модули в разделе Оборудование (Hardware) пакета Webmin. | ||
+ | [[Изображение:Img 83 66 1.png|thumb|LVM-модуль для Webmin обеспечивает графический интерфейс управления томами и группами.]] | ||
+ | |Ширина=200px | ||
+ | }} | ||
− | Поэтому задавайте размер ваших логических томов в точности таким, как надо | + | Повтором команды lvcreate вы можете добавлять логические тома, пока хватает свободного места на диске, но при этом следует помнить несколько моментов. Как вы скоро увидите, LVM чрезвычайно упрощает изменение размера логических томов, а вот изменение размера раздела проходит гладко только при его увеличении. Уменьшение размера раздела в лучшем случае рискованно, а для некоторых файловых систем невозможно (это зависит от распознания вашей файловой системы программой разметки — если у вас очень экзотическая файловая система или старая версия GParted, вряд ли это сработает). |
+ | |||
+ | Поэтому задавайте размер ваших логических томов в точности таким, как надо -завышать его, исходя из соображений «а вдруг потом потребуется больше», бессмысленно. По тем же причинам, хотя под группу томов и можно грохнуть все свободное место, крайности в этом нет — разве что при подлинной необходимости. Неиспользованное пространство можно приписать к любому логическому тому в любой момент. Однако не увлекайтесь таким подходом: большинство файловых систем при заполнении «под завязку» вынуждены фрагментировать файлы. Наилучшая производительность достигается при заполнении на 75-80 %. Рассчитайте размер каждого тома и добавьте к нему еще 30 %, чтобы дать файловой системе некоторое пространство для толкотни. | ||
=== Добавляем пространства === | === Добавляем пространства === | ||
− | Пока мы создавали одни логические тома, которые, похоже, не имеют | + | Пока мы создавали одни логические тома, которые, похоже, не имеют особых преимуществ по сравнению с традиционными физическими. Но это только начало. Если вы решите, что вам нужно побольше места на '''myvol''', нужно сделать всего лишь |
− | особых преимуществ по сравнению с традиционными физическими. Но | + | |
− | это только начало. Если вы решите, что вам нужно побольше места на | + | lvresize --size +2G /dev/myvg/myvol |
− | myvol, нужно сделать всего лишь | + | |
− | lvresize --size +2G /dev/myvg/myvol | + | Это увеличит размер логического тома на 2 ГБ. Начало '''/dev/''' не обязательно, но означает, что вы можете использовать завершение по клавише TAB в командной оболочке, чтобы убедиться, что имя верное. |
− | Это увеличит размер логического тома на 2 ГБ. Начало /dev/ не | + | |
− | + | Должен отметить, что эта команда изменяет размер только тома, а не его файловой системы. Увеличение размера тома, содержащего смонтированную файловую систему, вполне безопасно, но если вы хотите уменьшить размер тома, то прежде уменьшите размер файловой системы по крайней мере на ту же величину. При увеличении размера сначала увеличиваем размер тома, а затем файловой системы. Некоторые файловые системы позволяют увеличить их без размонтирования (а вот XFS разрешает изменение размера только в смонтированном состоянии). Попробуйте специализированные инструменты изменения размера файловых систем (например, resize2fs, resize_reiserfs, xfs_growfs etc) или графический инструмент вроде QtParted. | |
− | + | ||
− | Должен отметить, что эта команда изменяет размер только тома, | + | Подразумевается, что у вас хватает свободного пространства в вашей группе томов. LVM не может наколдовать пространство из ниоткуда, но он может облегчить добавление дополнительного диска в ваш компьютер, добавив затем его пространство к имеющейся группе(ам) томов. Например, |
− | а не его файловой системы. Увеличение размера тома, содержащего | + | |
− | смонтированную файловую систему, вполне безопасно, но если вы | + | pvcreate /dev/hdb |
− | + | vgextend myvg /dev/hdb | |
− | + | ||
− | + | добавит весь '''/dev/hdb''' к существующей группе томов '''myvg''' (столь же просто вы можете создать раздел на диске и добавить его в группу томов). Мы можем использовать это пространство для создания дополнительных логических томов или для увеличения размера существующих. Использование LVM означает, что одну файловую систему можно разместить на сколь угодно большом количестве физических разделов и дисков, обеспечивающих требуемую память. | |
− | файловые системы позволяют увеличить их без размонтирования (а вот | + | |
− | XFS разрешает изменение размера только в смонтированном | + | |
− | + | ||
− | + | ||
− | или графический инструмент вроде QtParted. | + | |
− | Подразумевается, что у вас хватает свободного пространства в | + | |
− | вашей группе томов. LVM не может наколдовать пространство из | + | |
− | + | ||
− | компьютер, добавив затем его пространство к имеющейся группе(ам) | + | |
− | томов. Например, | + | |
− | pvcreate /dev/hdb | + | |
− | vgextend myvg /dev/hdb | + | |
− | добавит весь /dev/hdb к существующей группе томов myvg (столь | + | |
− | же просто вы можете создать раздел на диске и добавить его в группу | + | |
− | томов). Мы можем использовать это пространство для создания | + | |
− | + | ||
− | + | ||
− | разместить на сколь угодно большом количестве физических разделов | + | |
− | и дисков, обеспечивающих требуемую память. | + | |
=== Уменьшение разделов === | === Уменьшение разделов === | ||
− | А как насчет перемещения и удаления элементов LVM? Для начала, | + | А как насчет перемещения и удаления элементов LVM? Для начала, логические тома могут быть удалены командой |
− | логические тома могут быть удалены командой | + | |
− | lvremove myvg/myvol | + | lvremove myvg/myvol |
− | Перед этим вы должны размонтировать раздел, иначе lvremove | + | |
− | откажется выполнить ваш запрос. Удаленное пространство | + | Перед этим вы должны размонтировать раздел, иначе lvremove откажется выполнить ваш запрос. Удаленное пространство возвращается в группу томов. |
− | + | ||
− | Аналогично, vgremove удаляет группу томов целиком, но только | + | {{Врезка |
− | + | |Заголовок=Фильтрация неподходящих устройств | |
− | Из группы томов можно также удалять отдельные физические тома. | + | |Содержание=Хотя сообщения о якобы ошибках на '''/dev/cdrom''' или другом читающем устройстве безвредны, они изрядно раздражают. Чтобы LVM не обращался к '''/dev/cdrom''', добавьте следующую строку в '''/etc/lvm/''' '''lvm.conf''': |
− | Это требует некоторой осторожности, так как перед удалением нужно | + | |
− | убедиться, что на этом томе или диске не содержится данных из | + | <pre>filter = [ "r|/dev/cdrom|" ]</pre> |
− | + | ||
− | можете перенести систему на диск большего размера практически без | + | r означает reject (ignore) (отказать, игнорировать), а за ним следует регулярное выражение, обозначающее игнорируемые устройства. Эта строка, возможно, в файле уже есть, но в виде комментария – так раскомментируйте ее! |
− | простоя, кроме вызванного физическим переподключением дисков | + | |
− | (или даже и без этого, если вы используете диски с «горячим» | + | Видимо, придется ее и переместить: LVM использует первую же встретившуюся строку фильтра, соответствующую устройству, а обычно это строка |
− | + | ||
− | + | <pre>filter = [ "a/.*/" ]</pre> | |
− | Core размещают /boot на отдельном разделе, а все остальное на LVM. | + | |
− | Поскольку в процессе работы системы /boot не требуется, то | + | разрешающая все. Поместите фильтры для конкретных устройств выше нее, и она станет актуальна только для неуказанных девайсов. |
− | + | ||
− | Чтобы скопировать остатки системы, скажем с hda5 на hdb5, | + | Другой вариант – ограничиться только отдельными устройствами, проигнорировав остальные. Попробуйте, например: |
− | создайте физический том и добавьте его в группу томов, как описано | + | |
− | выше. Теперь вам нужно убедиться, что все данные этой группы томов | + | <pre>filter = [ "a|/dev/sd|", "a|/dev/md|", "r|.*|" ]</pre> |
− | размещены на новом диске. Во-первых, удостоверьтесь, что места | + | |
− | достаточно: | + | Тут содержатся сразу 3 фильтра. Первый разрешает SCSI- и SATA-устройства (если у вас SATA-диски и PATA DVD-привод), второй – программные RAID-девайсы, а третий запрещает все остальное. Исправив '''lvm.conf''', запустите vgscan для обновления кэша, где LVM хранит результаты сканирования устройств. |
− | pvdisplay /dev/hda5 /dev/hdb5 | + | |Ширина=350px |
− | Убедитесь, что свободный физический размер (Free PE) нового | + | }} |
− | + | ||
− | Если это так, то перенесите данные командой | + | |
− | pvmove /dev/hda5 /dev/hdb5 | + | Аналогично, vgremove удаляет группу томов целиком, но только после удаления всех ее логических томов командой lvremove. |
− | заменив, естественно, имена устройств в соответствии с вашей | + | |
− | системой. | + | Из группы томов можно также удалять отдельные физические тома. Это требует некоторой осторожности, так как перед удалением нужно убедиться, что на этом томе или диске не содержится данных из принадлежащих группе томов. Но это также означает, что вы в основном можете перенести систему на диск большего размера практически без простоя, кроме вызванного физическим переподключением дисков (или даже и без этого, если вы используете диски с «горячим» подключением). Я добавил «в основном», потому что любым не-LVM разделом потребуется заниматься отдельно. Дистрибутивы вроде Fedora Core размещают '''/boot''' на отдельном разделе, а все остальное на LVM. Поскольку в процессе работы системы '''/boot''' не требуется, то скопировать его достаточно легко. |
− | pvmove может перетаскивать данные довольно долго, но не | + | |
− | + | Чтобы скопировать остатки системы, скажем с '''hda5''' на '''hdb5''', создайте физический том и добавьте его в группу томов, как описано выше. Теперь вам нужно убедиться, что все данные этой группы томов размещены на новом диске. Во-первых, удостоверьтесь, что места достаточно: | |
− | событие вроде отключения питания или краха системы прервет | + | pvdisplay /dev/hda5 /dev/hdb5 |
− | + | ||
− | момента остановки. Используя pvdisplay, проверьте, что на старом диске | + | Убедитесь, что свободный физический размер (Free PE) нового диска больше, чем занимаемый физический размер старого (Allocated PE). Если это так, то перенесите данные командой |
− | нет занятого места, после чего удалите его из группы: | + | |
− | vgreduce myvg /dev/hda5 | + | pvmove /dev/hda5 /dev/hdb5 |
− | pvremove /dev/hda5 | + | |
− | Первая команды удаляет раздел из группы томов (вы можете в | + | заменив, естественно, имена устройств в соответствии с вашей системой. |
− | этом убедиться при помощи vgdisplay). Вторая просто удаляет у | + | |
− | + | pvmove может перетаскивать данные довольно долго, но не пугайтесь: его действия не помешают вам работать за компьютером. Если событие вроде отключения питания или краха системы прервет процесс, запустите потом pvmove без параметров, и процесс продолжится с момента остановки. Используя pvdisplay, проверьте, что на старом диске нет занятого места, после чего удалите его из группы: | |
− | Для перемещения данных отдельного логического тома следует | + | |
− | выполнить: | + | vgreduce myvg /dev/hda5 |
− | pvmove --name myvg/myvol /dev/hda5 /dev/hdb5 | + | pvremove /dev/hda5 |
− | Имя тома-назначения не обязательно; если вы его опустите, pvmove | + | |
− | перенесет данные в свободные физические области текущей группы | + | Первая команды удаляет раздел из группы томов (вы можете в этом убедиться при помощи vgdisplay). Вторая просто удаляет у раздела метку LVM. |
− | томов. Это весьма полезно, если у вас несколько физических томов, а | + | |
− | удалить надо только один. | + | Для перемещения данных отдельного логического тома следует выполнить: |
− | Команда pvmove /dev/hdaN очистит раздел N, переместив данные | + | |
− | в свободные области группы, которой он принадлежит. | + | pvmove --name myvg/myvol /dev/hda5 /dev/hdb5 |
+ | |||
+ | Имя тома-назначения не обязательно; если вы его опустите, pvmove перенесет данные в свободные физические области текущей группы томов. Это весьма полезно, если у вас несколько физических томов, а удалить надо только один. | ||
+ | |||
+ | Команда '''pvmove /dev/hdaN''' очистит раздел N, переместив данные в свободные области группы, которой он принадлежит. | ||
=== Прекрасные снимки === | === Прекрасные снимки === | ||
− | Создание резервной копии работающей файловой системы не обходится | + | |
− | без проблем. Резервирование | + | {{Врезка |
− | существует вероятность, что файловая система за это время | + | |Заголовок=Загрузка с LVM |
− | + | |Содержание=100% LVM-систему создать нельзя. Как минимум /boot обязан находиться на стандартном физическом разделе, чтобы загружать ядро с поддержкой LVM, да еще необходимы кое-какие программы для инициализации LVM-томов. Следовательно, нужно либо разместить root-раздел на физическом томе, либо записать соответствующие команды на начальный RAM-диск в '''/boot'''. Fedora Core использует последний подход, то есть все разделы, кроме одного небольшого, могут управляться LVM. | |
− | типа /var/log или /var/lib могут изменяться ежеминутно (зачастую так | + | В LVM можно поместить и раздел подкачки (swap), но веских причин для этого нет. Если вам понадобится временно увеличить его размер, можете создать логический том и добавить его к существующему разделу: |
− | и происходит). К счастью, LVM предоставляет измученным сисадминам | + | |
− | опцию моментальных снимков логических томов. Взгляните сюда: | + | lvcreate --size 4G --name swap myvg |
− | lvcreate --size 1G --snapshot --name mybackup myvg/myvol | + | mkswap /dev/myvg/swap |
− | Этот код создает новый логический том с именем mybackup, | + | swapon /dev/myvg/swap |
− | + | ||
− | myvol в момент выполнения команды lvcreate теперь располагается в | + | |Ширина=250px |
− | /dev/myvg/mybackup. Оба тома находятся в одной группе томов, | + | }} |
− | + | ||
− | + | Создание резервной копии работающей файловой системы не обходится без проблем. Резервирование — процесс не мгновенный, поэтому всегда существует вероятность, что файловая система за это время изменится. Особенно это касается резервирования '''/var''', где файлы в каталогах типа '''/var/log''' или '''/var/lib''' могут изменяться ежеминутно (зачастую так и происходит). К счастью, LVM предоставляет измученным сисадминам опцию моментальных снимков логических томов. Взгляните сюда: | |
− | поскольку в снимке хранятся только изменения, сделанные с момента | + | |
− | его выполнения. Мы обошлись 1 ГБ, хотя размер myvg/myvol | + | lvcreate --size 1G --snapshot --name mybackup myvg/myvol |
− | В документации LVM рекомендован размер | + | |
− | зависит от того, насколько быстро меняются данные и как долго вам | + | Этот код создает новый логический том с именем '''mybackup''', который является снимком нашего тома '''myvol'''. Содержимое '''/dev/myvg/myvol''' в момент выполнения команды lvcreate теперь располагается в '''/dev/myvg/mybackup'''. Оба тома находятся в одной группе томов, поэтому перед созданием резервной копии в группе должно быть обеспечено свободное место. Вам не потребуется полный размер исходного тома, поскольку в снимке хранятся только изменения, сделанные с момента его выполнения. Мы обошлись 1 ГБ, хотя размер '''myvg/myvol''' — 7 ГБ. В документации LVM рекомендован размер 15-20 % от исходного, но он зависит от того, насколько быстро меняются данные и как долго вам нужно хранить снимок. Если снимку не хватит места, он будет испорчен, так что отведите ему побольше. |
− | нужно хранить снимок. Если снимку не хватит места, он будет испорчен, | + | |
− | так что отведите ему побольше. | + | Когда снимок станет не нужен, вы сможете удалить его так же, как и любой другой том, а освободившееся пространство возвратится группе томов. Сколько места снимок фактически использовал, можно выяснить при помощи lvdisplay. Вот грубый пример резервирования рабочего раздела на ленту при помощи снимков: |
− | Когда снимок станет не нужен, вы сможете удалить его так же, как и | + | |
− | любой другой том, а освободившееся пространство возвратится группе | + | |
− | томов. Сколько места снимок фактически использовал, можно выяснить | + | |
− | при помощи lvdisplay. Вот грубый пример резервирования рабочего | + | |
− | + | ||
lvcreate --size 500M --snapshot --name var-backup /dev/ myvg/var | lvcreate --size 500M --snapshot --name var-backup /dev/ myvg/var | ||
mount /dev/myvg/var-backup /mnt/tmp | mount /dev/myvg/var-backup /mnt/tmp | ||
Строка 184: | Строка 210: | ||
umount /mnt/tmp | umount /mnt/tmp | ||
lvremove /dev/myvg/var-backup | lvremove /dev/myvg/var-backup | ||
− | Ваша собственная процедура резервирования, надеюсь, будет более | + | |
− | элегантна, но эта наглядно иллюстрирует идею: снимок создается, | + | Ваша собственная процедура резервирования, надеюсь, будет более элегантна, но эта наглядно иллюстрирует идею: снимок создается, используется для резервирования вместо работающей файловой системы, затем удаляется, а пространство возвращается группе томов. Что бы ни вносилось в '''var/log''' или '''var/lib/mysql''', пока tar-архив пишется на ленту, оно будет проигнорировано — будут резервированы только файлы, имеющиеся в момент выполнения lvcreate. |
− | используется для резервирования вместо работающей файловой | + | |
− | + | ||
− | бы ни вносилось в var/log или var/lib/mysql, пока tar-архив пишется на | + | |
− | ленту, оно будет проигнорировано | + | |
− | + | ||
=== Когда имена конфликтуют === | === Когда имена конфликтуют === | ||
− | Следует знать, что добавляя после загрузки диск, содержащий LVM- | + | |
− | разделы, например USB-диск, вы должны сообщить системе, что они | + | {{Врезка |
− | появились. Команды | + | |Заголовок=Советы |
− | vgscan | + | |Содержание=* Не экспериментируйте с тем, что не хотите потерять! Используйте вместо этого переносные или loop-устройства. |
− | vgchange -a y | + | * Не создавайте логические тома большего размера, чем нужно – при необходимости их легко увеличить. |
− | запускают сканирование групп томов и делают все найденные | + | * Используете осмысленные имена для томов и групп. |
− | + | * Добавьте строку фильтрации в lvm.conf для отключения сканирования ненужных устройств и снижения времени загрузки. | |
− | Если новая группа томов имеет то же имя, что и существующая ( | + | * Для быстрого просмотра ваших томов используйте Webmin. |
− | + | |Ширина=200px | |
− | ошибка | + | }} |
− | + | ||
− | vgrename oldvolgroup newvolgroup | + | Следует знать, что добавляя после загрузки диск, содержащий LVM-разделы, например USB-диск, вы должны сообщить системе, что они появились. Команды |
− | Это довольно неудобно, поскольку дополнительный диск | + | |
− | + | vgscan | |
− | также переименовать группу томов на вашем главном диске(-ах) при | + | vgchange -a y |
− | наличии смонтированной файловой системы. В любом случае, перед | + | |
− | изменением потребуется отредактировать /etc/fstab, чтобы суметь | + | запускают сканирование групп томов и делают все найденные логические тома доступными. |
− | после переименования заново смонтировать логические тома. Обычно | + | |
− | наилегчайший способ | + | Если новая группа томов имеет то же имя, что и существующая (совпадение имен томов внутри различных групп роли не играет), возникнет ошибка — это может случиться при подключении диска с другого компьютера. Решение — переименовать одну из групп: |
− | котором ничего не смонтировано. Если вы дали группам томов | + | |
− | + | vgrename oldvolgroup newvolgroup | |
− | + | ||
− | После присоединения нового диска и выполнения vgscan/ | + | Это довольно неудобно, поскольку дополнительный диск переименовать нельзя — конфликт имен с ходу прекратит распознавание. Нельзя также переименовать группу томов на вашем главном диске(-ах) при наличии смонтированной файловой системы. В любом случае, перед изменением потребуется отредактировать '''/etc/fstab''', чтобы суметь после переименования заново смонтировать логические тома. Обычно наилегчайший способ -использовать для изменения имен LiveCD, в котором ничего не смонтировано. Если вы дали группам томов осмысленные имена вместо vgXX, то шансы конфликтов значительно снижаются, спасая вас от возможных огорчений в будущем. |
− | vgchange, вы сможете просмотреть логические тома при помощи | + | |
− | lvdisplay и смонтировать как любую другую файловую систему. | + | После присоединения нового диска и выполнения '''vgscan/vgchange''', вы сможете просмотреть логические тома при помощи '''lvdisplay''' и смонтировать как любую другую файловую систему. |
=== Более мощные опции === | === Более мощные опции === | ||
− | Я описал основные опции, используемые для создания и | + | Я описал основные опции, используемые для создания и управления физическими томами, группами томов и логическими томами. Существует еще много других опций для настройки производительности под ваши нужды (более подробно см. '''man lvm''' и man-страницы отдельных команд). Однако предоставленная мною информация вполне достаточна для работы с логическими томами, созданными установщиком дистрибутива, или для создания своих собственных логических томов, и, как я надеюсь, хотя бы частично избавит вас от проблем разметки. |
− | + | ||
− | Существует еще много других опций для настройки | + | [[Категория:Учебники]] |
− | + | ||
− | отдельных команд). Однако предоставленная мною информация вполне | + | |
− | достаточна для работы с логическими томами, созданными | + | |
− | + | ||
− | томов, и, как я надеюсь, хотя бы частично избавит вас от проблем | + | |
− | + |
Текущая версия на 14:09, 20 мая 2008
|
|
|
Содержание |
[править] LVM. Заводим виртуальные разделы
Долой тиранию фиксированных разделов диска — Нейл Ботвик покажет, как достичь гибкости при помощи управления логическими томами (Logical Volume Management).
Как управлять разделами? Спросите 10 пользователей Linux о лучшем способе разбиения жесткого диска — итогом будет не меньше 11 разных ответов. Вдобавок все ответы, вероятно, правильные: у каждого метода свои достоинства, все зависит от ваших намерений по использованию системы. Проблемы возникают намного позже, когда реальность расходится с планами и вы замечаете нехватку свободного места в одном разделе и ненужный избыток — в другом.
Размеры разделов можно изменить при помощи утилиты QtParted, но она (и инструменты, ею используемые) ограничивается отодвиганием конца раздела. Вы можете усечь раздел, чтобы высвободить место для нового раздела, или увеличить раздел, включив следующее за ним пустое пространство. Если надо расширить раздел /usr, вклинившийся между разделами root и home, то вам не повезло: придется произвести резервирование данных, удалить и вновь создать разделы, а потом восстановить данные из резервной копии.
К счастью, решение существует — это менеджер логических томов (LVM), представляющий собой программный слой между разделами и накопителями. Ваши разделы становятся виртуальными, а не прикованными к фиксированному положению на диске. Сегодня я покажу вам, как использовать LVM для создания раздела (далее называемого логическим томом), изменения его размера или удаления без проблем и забот о физическом размещении. Можно даже добавлять и удалять целые диски, не затрагивая вашу файловую систему.
[править] Работаем со слоями
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
LVM поставляется в большинстве дистрибутивов — или как часть стандартного набора программ, или в программном репозитарии (пакет обычно называется lvm2). Там содержатся все используемые инструменты, но учтите, ядро тоже должно поддерживать LVM. Многие дистрибутивы опять-таки предоставляют подходящее ядро, но если вы делаете все самостоятельно, то вам необходимо включить следующие опции:
CONFIG_MD=y CONFIG_BLK_DEV_DM=y
Их можно найти в инструменте конфигурирования ядра: Device Drivers > Multi-Device Support (RAID и LVM) > Device Mapper Support
Имеется две версии Управления Логическими Томами: изначальная — LVM и последняя — LVM2. LVM2 в основном имеет обратную совместимость с LVM, но когда на этом уроке я говорю о LVM, то подразумеваю LVM2.
LVM предоставляет логические тома трех уровней: физические тома, группы томов и собственно логические тома. В самом низу находятся физические тома — это разделы жесткого диска, на которых хранятся данные (/dev/hda1, /dev/sdb3 и т. п.). Можно также создать физический том, охватывающий весь диск, в этом случае вам не нужно вначале разбивать этот диск на разделы. Один или несколько физических томов объединяются в группы — второй уровень. Вы можете рассматривать группу томов как виртуальный жесткий диск, который может иметь разделы более чем на одном физическом носителе. И, наконец, поверх групп томов создаются логические тома.
Все группы томов разбиваются на один или несколько логических томов, точно так же, как физический жесткий диск разбивается на один или несколько разделов. Основное отличие в том, что все становится более гибким — от размера виртуальных дисков и разделов до соглашений по именованию, которые вы используете. Здорово? Давайте начнем с низшего уровня: создадим несколько физических томов.
[править] На дне
Небольшое предупреждение: начиная с этого момента, все приводимые команды требуют прав суперпользователя (см. врезку Требуются права root вверху). Поехали. Итак, физические тома создаются при помощи pvcreate; man-страница содержит множество опций, но обычно требуется указать только имя используемых раздела(-ов) или диска(-ов). Вот хорошие примеры этой команды:
- pvcreate /dev/hda5
- pvcreate /dev/md0
- pvcreate /dev/sda7 /dev/sdb
Первая из них создает физический том на отдельном разделе; вторая делает то же самое на RAID-разделе. Третий пример создает физические тома в разделе первого диска и на всем втором диске. Если вы хотите создать физический том во весь диск, то последний при этом не должен содержать никаких разделов: если они есть, то pvcreate откажется работать с ним.
Разделы можно удалить при помощи любого инструмента разметки диска, например cfdisk, или командой
dd if=/dev/zero of=/dev/sdb bs=512 count=1
Обязательно убедитесь, что вы работаете с нужным диском — очень трудно будет восстановить данные, если вы удалите таблицу разделов не того диска.
[править] Работа с группами
Вообще-то наш друг pvcreate только подготавливает устройство для использования LVM — теперь вам необходимо создать одну или несколько групп томов. Для стандартного настольного ПК обычно вполне достаточно одной группы. Для масштабных или специализированных применений, например, серверов с интенсивной нагрузкой, может понадобиться больше. Но сам процесс одинаков, вне зависимости от количества созданных вами групп:
vgcreate myvg /dev/hda5 /dev/sdb
Здесь создается отдельная группа томов с именем myvg, состоящая из раздела на hda и целого sdb (в предположении, что они были подготовлены pvcreate). Кстати, вы можете спокойно проигнорировать любые ошибки, связанные с CD или DVD-приводами: это LVM сканирует ваши диски и выдает ошибку для любого устройства, содержащего диски только для чтения или без дисков.
Хотя общепринято давать группам томов нумерованные имена (vg00, vg01…), вы можете называть их по-своему. Например, если раздел вашей операционной системы размещается в одной группе, а сами вы работаете с другой, вы можете назвать их System и Work соответственно. Другая причина для использования своих собственных имен — избежание конфликтов: вдруг вам потребуется подсоединить другое устройство с группой томов под именем vg00, чтобы извлечь данные — возникнет путаница.
Чтобы проверить, создана ли группа томов, выполните
vgdisplay myvg
Выведется информация о вашей группе томов. Запустите ее без аргументов, чтобы увидеть параметры всех групп.
[править] Наконец-то логические тома
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Теперь к третьему слою; команда создания логических томов лишь немного длиннее, чем команда для создания группы томов. Вот она:
lvcreate --name myvol --size 5G myvg
Опция --name, как пояснил бы вам Шерлок Холмс, дает имя тому. Она не обязательна, но если ее опустить, том получит имя вида «volNN» — значимое имя, безусловно, лучше. Аргумент --size задает размер тома (ну, это же элементарно) и указывается он в мегабайтах, или по вашему выбору K, M, G или T (килобайты, мегабайты, гигабайты или терабайты, дорогой мой Ватсон). Вы должны указать или --size, или --extents. Extent (непрерывная область на диске) — это наименьшая единица данных в группе, аналогичная блоку физического диска. Размер по умолчанию — 4 МБ.
Ваш новый том находится в /dev/volumegroup/volumename, и команда
mke2fs -j /dev/myvg/myvol
создаст на новом томе файловую систему ext3.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Повтором команды lvcreate вы можете добавлять логические тома, пока хватает свободного места на диске, но при этом следует помнить несколько моментов. Как вы скоро увидите, LVM чрезвычайно упрощает изменение размера логических томов, а вот изменение размера раздела проходит гладко только при его увеличении. Уменьшение размера раздела в лучшем случае рискованно, а для некоторых файловых систем невозможно (это зависит от распознания вашей файловой системы программой разметки — если у вас очень экзотическая файловая система или старая версия GParted, вряд ли это сработает).
Поэтому задавайте размер ваших логических томов в точности таким, как надо -завышать его, исходя из соображений «а вдруг потом потребуется больше», бессмысленно. По тем же причинам, хотя под группу томов и можно грохнуть все свободное место, крайности в этом нет — разве что при подлинной необходимости. Неиспользованное пространство можно приписать к любому логическому тому в любой момент. Однако не увлекайтесь таким подходом: большинство файловых систем при заполнении «под завязку» вынуждены фрагментировать файлы. Наилучшая производительность достигается при заполнении на 75-80 %. Рассчитайте размер каждого тома и добавьте к нему еще 30 %, чтобы дать файловой системе некоторое пространство для толкотни.
[править] Добавляем пространства
Пока мы создавали одни логические тома, которые, похоже, не имеют особых преимуществ по сравнению с традиционными физическими. Но это только начало. Если вы решите, что вам нужно побольше места на myvol, нужно сделать всего лишь
lvresize --size +2G /dev/myvg/myvol
Это увеличит размер логического тома на 2 ГБ. Начало /dev/ не обязательно, но означает, что вы можете использовать завершение по клавише TAB в командной оболочке, чтобы убедиться, что имя верное.
Должен отметить, что эта команда изменяет размер только тома, а не его файловой системы. Увеличение размера тома, содержащего смонтированную файловую систему, вполне безопасно, но если вы хотите уменьшить размер тома, то прежде уменьшите размер файловой системы по крайней мере на ту же величину. При увеличении размера сначала увеличиваем размер тома, а затем файловой системы. Некоторые файловые системы позволяют увеличить их без размонтирования (а вот XFS разрешает изменение размера только в смонтированном состоянии). Попробуйте специализированные инструменты изменения размера файловых систем (например, resize2fs, resize_reiserfs, xfs_growfs etc) или графический инструмент вроде QtParted.
Подразумевается, что у вас хватает свободного пространства в вашей группе томов. LVM не может наколдовать пространство из ниоткуда, но он может облегчить добавление дополнительного диска в ваш компьютер, добавив затем его пространство к имеющейся группе(ам) томов. Например,
pvcreate /dev/hdb vgextend myvg /dev/hdb
добавит весь /dev/hdb к существующей группе томов myvg (столь же просто вы можете создать раздел на диске и добавить его в группу томов). Мы можем использовать это пространство для создания дополнительных логических томов или для увеличения размера существующих. Использование LVM означает, что одну файловую систему можно разместить на сколь угодно большом количестве физических разделов и дисков, обеспечивающих требуемую память.
[править] Уменьшение разделов
А как насчет перемещения и удаления элементов LVM? Для начала, логические тома могут быть удалены командой
lvremove myvg/myvol
Перед этим вы должны размонтировать раздел, иначе lvremove откажется выполнить ваш запрос. Удаленное пространство возвращается в группу томов.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Аналогично, vgremove удаляет группу томов целиком, но только после удаления всех ее логических томов командой lvremove.
Из группы томов можно также удалять отдельные физические тома. Это требует некоторой осторожности, так как перед удалением нужно убедиться, что на этом томе или диске не содержится данных из принадлежащих группе томов. Но это также означает, что вы в основном можете перенести систему на диск большего размера практически без простоя, кроме вызванного физическим переподключением дисков (или даже и без этого, если вы используете диски с «горячим» подключением). Я добавил «в основном», потому что любым не-LVM разделом потребуется заниматься отдельно. Дистрибутивы вроде Fedora Core размещают /boot на отдельном разделе, а все остальное на LVM. Поскольку в процессе работы системы /boot не требуется, то скопировать его достаточно легко.
Чтобы скопировать остатки системы, скажем с hda5 на hdb5, создайте физический том и добавьте его в группу томов, как описано выше. Теперь вам нужно убедиться, что все данные этой группы томов размещены на новом диске. Во-первых, удостоверьтесь, что места достаточно:
pvdisplay /dev/hda5 /dev/hdb5
Убедитесь, что свободный физический размер (Free PE) нового диска больше, чем занимаемый физический размер старого (Allocated PE). Если это так, то перенесите данные командой
pvmove /dev/hda5 /dev/hdb5
заменив, естественно, имена устройств в соответствии с вашей системой.
pvmove может перетаскивать данные довольно долго, но не пугайтесь: его действия не помешают вам работать за компьютером. Если событие вроде отключения питания или краха системы прервет процесс, запустите потом pvmove без параметров, и процесс продолжится с момента остановки. Используя pvdisplay, проверьте, что на старом диске нет занятого места, после чего удалите его из группы:
vgreduce myvg /dev/hda5 pvremove /dev/hda5
Первая команды удаляет раздел из группы томов (вы можете в этом убедиться при помощи vgdisplay). Вторая просто удаляет у раздела метку LVM.
Для перемещения данных отдельного логического тома следует выполнить:
pvmove --name myvg/myvol /dev/hda5 /dev/hdb5
Имя тома-назначения не обязательно; если вы его опустите, pvmove перенесет данные в свободные физические области текущей группы томов. Это весьма полезно, если у вас несколько физических томов, а удалить надо только один.
Команда pvmove /dev/hdaN очистит раздел N, переместив данные в свободные области группы, которой он принадлежит.
[править] Прекрасные снимки
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Создание резервной копии работающей файловой системы не обходится без проблем. Резервирование — процесс не мгновенный, поэтому всегда существует вероятность, что файловая система за это время изменится. Особенно это касается резервирования /var, где файлы в каталогах типа /var/log или /var/lib могут изменяться ежеминутно (зачастую так и происходит). К счастью, LVM предоставляет измученным сисадминам опцию моментальных снимков логических томов. Взгляните сюда:
lvcreate --size 1G --snapshot --name mybackup myvg/myvol
Этот код создает новый логический том с именем mybackup, который является снимком нашего тома myvol. Содержимое /dev/myvg/myvol в момент выполнения команды lvcreate теперь располагается в /dev/myvg/mybackup. Оба тома находятся в одной группе томов, поэтому перед созданием резервной копии в группе должно быть обеспечено свободное место. Вам не потребуется полный размер исходного тома, поскольку в снимке хранятся только изменения, сделанные с момента его выполнения. Мы обошлись 1 ГБ, хотя размер myvg/myvol — 7 ГБ. В документации LVM рекомендован размер 15-20 % от исходного, но он зависит от того, насколько быстро меняются данные и как долго вам нужно хранить снимок. Если снимку не хватит места, он будет испорчен, так что отведите ему побольше.
Когда снимок станет не нужен, вы сможете удалить его так же, как и любой другой том, а освободившееся пространство возвратится группе томов. Сколько места снимок фактически использовал, можно выяснить при помощи lvdisplay. Вот грубый пример резервирования рабочего раздела на ленту при помощи снимков:
lvcreate --size 500M --snapshot --name var-backup /dev/ myvg/var mount /dev/myvg/var-backup /mnt/tmp tar c /mnt/tmp >/dev/tape umount /mnt/tmp lvremove /dev/myvg/var-backup
Ваша собственная процедура резервирования, надеюсь, будет более элегантна, но эта наглядно иллюстрирует идею: снимок создается, используется для резервирования вместо работающей файловой системы, затем удаляется, а пространство возвращается группе томов. Что бы ни вносилось в var/log или var/lib/mysql, пока tar-архив пишется на ленту, оно будет проигнорировано — будут резервированы только файлы, имеющиеся в момент выполнения lvcreate.
[править] Когда имена конфликтуют
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Следует знать, что добавляя после загрузки диск, содержащий LVM-разделы, например USB-диск, вы должны сообщить системе, что они появились. Команды
vgscan vgchange -a y
запускают сканирование групп томов и делают все найденные логические тома доступными.
Если новая группа томов имеет то же имя, что и существующая (совпадение имен томов внутри различных групп роли не играет), возникнет ошибка — это может случиться при подключении диска с другого компьютера. Решение — переименовать одну из групп:
vgrename oldvolgroup newvolgroup
Это довольно неудобно, поскольку дополнительный диск переименовать нельзя — конфликт имен с ходу прекратит распознавание. Нельзя также переименовать группу томов на вашем главном диске(-ах) при наличии смонтированной файловой системы. В любом случае, перед изменением потребуется отредактировать /etc/fstab, чтобы суметь после переименования заново смонтировать логические тома. Обычно наилегчайший способ -использовать для изменения имен LiveCD, в котором ничего не смонтировано. Если вы дали группам томов осмысленные имена вместо vgXX, то шансы конфликтов значительно снижаются, спасая вас от возможных огорчений в будущем.
После присоединения нового диска и выполнения vgscan/vgchange, вы сможете просмотреть логические тома при помощи lvdisplay и смонтировать как любую другую файловую систему.
[править] Более мощные опции
Я описал основные опции, используемые для создания и управления физическими томами, группами томов и логическими томами. Существует еще много других опций для настройки производительности под ваши нужды (более подробно см. man lvm и man-страницы отдельных команд). Однако предоставленная мною информация вполне достаточна для работы с логическими томами, созданными установщиком дистрибутива, или для создания своих собственных логических томов, и, как я надеюсь, хотя бы частично избавит вас от проблем разметки.