НЕ ПРОПУСТИТЬ ИНТЕРЕСНОЕ

Свежие обсуждения

Sorry. No data so far.

Пример практического использования LVM разделов в нетбуке Asus Eee PC 900

Здравствуйте уважаемые читатели блога www.ithabits.ru. Сегодня речь пойдет о Logical Volume Manager (LVM) — менеджере логических томов операционных систем Linux.

Предыстория вопроса такова. Я являюсь обладателем легендарного нетбука Asus Eee PC 900. На сегодняшний день это устройство уже устарело морально, но исправно работает и даже периодически путешествует вместе со мной по разным странам.

Нетбук Asus Eee PC 900 поставлялся с разными комбинациями SSD дисков. Мне достался с двумя жесткими дисками. Первый, который побыстрее, имеет объем 4 ГБ, второй два раза больше — 8 ГБ, но он и в два раза медленнее. Абсолютная скорость установленных в Asus Eee PC 900 SSD очень далека не только от скорости дисковых операций современных твердотельных накопителей, но и традиционных механических.

На момент покупки в нетбуке была предустановлена операционная система Windows XP. Через некоторое время это обстоятельство показалось мне скучным и я установил на него Ubuntu 10.04. Так потом и пошло —  сначала новые версии Ubuntu, потом ее разновидность в виде Joli OS 1.2 и, наконец, LInux Mint.

При установке Ubuntu 10.04 диски я разбил следующим образом. На первом 4 ГБ диске один раздел sda1, занимающий весь доступный объем. В этот раздел монтируется корень системы /. На втором диске два раздела: sdb1 размером около 7 ГБ под /home, и раздел под Linux Swap.

Такая разбивка дисков оказалась достаточно удачной и до поры, до времени особых проблем не возникало. Linux со всеми установленными программами занимал на диске чуть больше 3 ГБ. Места для пользовательских данных в /home на втором диске также оказалось достаточно — это все ж таки нетбук. Естественно, для поддержания некоторого резерва свободного места на корневом системном разделе, нужно было регулярно чистить apt кеш.

Но, как известно, все течет, все изменяется, увеличивается потихонечку и размер, занимаемый на диске операционными системами Linux. После того, как я установил Linux Mint 13 xfce ситуация со свободным местом на диске изменилась не в лучшую сторону. Причем до такой степени, что после очередного крупного обновления пришлось восстанавливать систему из бекапа. Допускаю, что последнее и не было напрямую связано с недостатком места на диске, но факт такой имел место.

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

Стало ясно, что надо что-то придумывать.

Первым желанием было попробовать перемонтировать некоторые каталоги с первого диска на второй. Однако, непродолжительный анализ структуры каталогов и их размеров в Disk Usage Analyzer показал, что ничего хорошего из этого не получится. Более менее подходящим по размеру каталогом, который мог бы реально поправить ситуацию, оказался /var, но перемещать его на медленный диск очень не хотелось.

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

По своему непосредственному назначению LVM аналогичен динамическим дискам Windows (или наоборот). А именно, является прослойкой, то есть создает новый уровень абстракции, между физическими жесткими дисками и операционной системой. Этот уровень включает в себя:

  • Физический том(а) – PV (physical volume) – аналогично обычному диску или разделу;
  • Группу томов VG (volume group) — объект, представляющий собой набор физических томов, при этом сами тома могут находится как на одном диске, так и на разных;
  • Логический том LV (logical volume) — том, непосредственно с которым и будет работать операционная система. Размер логических томов можно легко изменить.

Далее будет понятно, как это работает.

Решение, которое я принял, было таким. Анализ использования файла подкачки в процессе предыдущей эксплуатации показал, что он практически не нужен. Вот я и решил расстаться с ним вовсе и присоединить высвободившееся дисковое пространство к sda1.

На случай возможных неприятностей делаем бекап. Для этой цели можно воспользоваться бесплатной программой Clonezilla live от тайваньской лаборатории NCHC (National Center for High-Performance Computing). Свежую версию можно скачать с официального сайта.

Подготовка разделов LVM

Загружаемся с usb-flash с Live-CD Linux.

После загрузки подключаемся к Интернет и устанавливаем lvm2. Видимо, на клиентских компьютерах Logical Volume Manager рассматривается скорее как экзотика и по этой причине в дистрибутив пакет не входит.

Если по какой-либо причине непосредственно в процессе инсталляции операционной системы Интернет будет недоступен, установочный пакет можно получить заранее и положить его в подходящее место на usb-flash.

Запускаем терминал и последовательно выполняем следующие команды:

sudo apt-get update

sudo apt-get install lvm2

Дожидаемся окончания установки и запускаем gparted

На первом диске sda (4 GB) удаляем существующий раздел и создаем два новых. Небольшой раздел sda1 для загрузчика (загружаться непосредственно с томов LVM Linux не умеет).

Создаем новую таблицу разделов >

gparted

Далее первый раздел dev/sda1 boot 200Mb ext2 >

gparted-sda1

Все оставшееся на sda место отдаем второму разделу sda2. Его нужно оставить неформатированным:

dev/sda2 3.8G  unformated

После применения изменений последовательно устанавливаем флаги разделов. Для sda1: Partition > Manage Flags > boot, для sda2 – lvm.

gparted-sda

На втором диске sdb (8 GB): проделываем аналогичную операцию:

Существующий раздел dev/sdb1 home 7G ext4 с пользовательскими данными я оставил нетронутым,

а раздел подкачки удалил и на его месте аналогично dev/sda2 создал раздел dev/sdb2 1G unformated

После применения изменений — Partition > Manage Flags > для sdb2 – lvm

В результате на каждом из двух дисков создано по одному обычному разделу, для доступа к которым LVM не понадобится, и по одному неформатированному разделу – заготовка под тома LVM, которые мы создаем на следующем шаге. На обычных разделах были сразу созданы файловые системы, соответственно, ext2 и ext4.

Инициализируем физические разделы PV (physical volume) командами:

sudo pvcreate /dev/sda2
sudo pvcreate /dev/sdb2

Далее создаем группу томов VG (volume group) командой:

sudo vgcreate local /dev/sda2 /dev/sdb2

А теперь создаем новый логический том LV (logical volume) под корень файловой системы:

sudo lvcreate -L 4.7G -n root local

Параметр -n, задаёт имя логического тома, -L — его размер.

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

Форматируем созданный на предыдущем шаге логический том lvm:

sudo mkfs.ext4 /dev/local/root

Теперь можно приступить к установке системы Linux.

Установка операционной системы Linux на разделы LVM

Представленный ниже процесс относится к Linux Mint 13 xfce. Впрочем, по крайней мере в линейке Ubuntu, этот процесс практически ничем не отличается в разных версиях сборок.

Инсталляция

Первая часть процесса инсталляции операционной системы мало чем отличается от обычной.

В результате наших предыдущих действий вновь созданные разделы оказались смонтированы. Разрешаем Установщику отсоединить разделы.

Естественно, не даем Установщику самостоятельно размечать разделы >

linux-install-tip

Выбираем “Другой вариант” и назначаем разделам файловые системы и точки монтирования.

Для sda1  — Ext2 и /boot >

linux-install-sda1

Так как все разделы уже были подготовлены на предыдущем этапе, форматировать их не надо.

Аналогично для других разделов. Находим том LVM и монтируем его к /

linux-install-lvm

Для sdb1 – /home

linux-install-sdb1

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

И вот, опять я совершил ошибку! Не проверил куда Установщик собирается поместить GRUB. Это известная ошибка инсталлятора – если в системе два диска, то по умолчанию программа инсталляции пытается записать загрузчик GRUB на больший диск. После этого система просто не загрузится. Обидно. Придется повторить процесс.

Ждем окончания установки операционной системы. Не перезагружаемся!

Активирование LVM в установленной системе

В текущую систему, загруженную с LIve-CD, мы утилиты работы  с LVM добавили в самом начале, но в установленной системе их нет, а значит после перезагрузки она не запустится. Для того, чтобы добавить LVM во вновь установленную систему, делаем следующее:
Не выходя из системы LiveCD, смонтируем логический том, который мы сделали под корень, в папку /mnt командой:

sudo mount /dev/local/root /mnt

Затем примонтируем на место /boot предназначенный для него раздел. В нашем примере это /dev/sda1:

sudo mount /dev/sda1 /mnt/boot

Временно подключим еще несколько важных системных каталогов:

sudo mount —bind /dev /mnt/dev
sudo mount —bind /proc /mnt/proc
sudo mount —bind /sys  /mnt/sys

Если по какой-то причине у вас в установленной только что системе /var или другие системные каталоги находятся на отличных от корневого разделах, их надо примонтировать на свои места в /mnt.

Теперь перейдем в установленную систему из системы Live-CD с помощью chroot — команды изменения корневого каталога:

sudo chroot /mnt /bin/bash

А теперь повторяем установку пакета LVM2:

apt-get install lvm2

Дожидаемся окончания.

Вот теперь установку системы можно считать завершенной. Закрываем терминал и перезагружаем компьютер.

После перезагрузки можно проверить размер созданного логического тома. Дело в том, что в момент его создания командой lvcreate я указал его размер примерно и он оказался чуть меньше максимально возможного. Увеличить размер тома LVM можно командами:

sudo lvresize -L +50M /dev/local/root
sudo resize2fs /dev/local/root

Возможность “налету” менять размер логического тома позиционируется как одно из преимуществ применения Logical Volume Manager. Впрочем, в последних версиях Windows такая возможность реализована и для обычных физических разделов. Другое дело, что в группу томов LVM можно легко добавлять новые физические разделы и диски и за счет этого увеличивать ее безгранично.

Итоги

Раздел, выделенный под корень системы увеличился на 1 ГБ. Свободного места теперь хватает. Что касается скорости работы, то по ощущениям ничего не изменилось, как Asus Eee PC 900 работал не торопясь, так и продолжаетУлыбка. Соотношение быстрый / небыстрый SSD в созданном логическом томе LVM — 4 / 1.

Что касается общей надежности, то применение групп томов (volume group), составленных из нескольких дисков, аналогично рейд массиву с чередованием (RAID 0). То есть, выход из строя одного диска может привести к непоправимой потере всей размещенной на дисковом устройстве информации. Выход из этой ситуации традиционный – регулярный бекап. Применение LVM  на ответственных файловых серверах, на мой взгляд, должно сопровождаться обязательным зеркалированием в пределах одного сервера или по сети (DRDB).

В нашем частном случае нетбука Asus Eee PC 900 совершенно без разницы какой из SSD дисков умрет первым и использовалась ли на нем LVMШирокая улыбка. Так или иначе устройство станет неработоспособным. Хотя, в случае выхода из строя первого диска сохранится возможность доступа к пользовательским данным после загрузки системы с Live-CD.

Написать комментарий

Subscribe without commenting