Перейти к содержимому

Что означает dev sdg1

  • автор:

Русские Блоги

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

В настоящее время монтаж диска данных основан на методе/etc/fstab.

На картинке выше является экземпляр/и т. Д./Fstab узла. /dev/slot* — это отображение из/dev/dev/sdx, сгенерированное из/dev/dev/sdx, генерируемого сценарием diskctl_init.sh. Как показано ниже.

Принцип DISCCTL_INIT.SH состоит в том, чтобы сформировать фиксированное отображение с помощью сгенерированного слота и интерфейса физического диска материнской панели. Когда промывание диска дрейфует,/dev/slot* всегда соответствует диску физического слота. Пока диск не вставлен и заменен, OSD может загружать правильный диск данных.

Для разделения журнала SSD это обнаженное отображение диска журнала, которое непосредственно принято.

1. Обнаженное картирование диска SSD Journal раздела, иногда машина перезапускается, и служба CEPH не может встать. Тест обнаружил, что именно из -за дрейфа тарелки обнаженное картирование стало мертвой цепью.

2. Сопоставление слотов, генерируемое DISCCTL_INIT.SH, согласно коллегам, также может иметь потенциальные проблемы. Конкретные детали неизвестны.

Во-вторых, исследовать Ceph-disk

Ceph-Disk-это инструмент, официально выпущенный для развертывания данных OSD и журналов или каталога. Установка пакета CEPH RPM на основе Python. Установите этот инструмент по умолчанию, каталог установки/USR/SBIN/CEPH-DISK. Потому что этот инструмент включает раздел диска данных и диска журнала. Нужны корневые разрешения.

Как работает Ceph-Disk?

Разверните OSD, раздел данных и раздел журнала через Ceph-Disk, автоматически установите их в правильном каталоге, а перезапуск машины также может обеспечить работу. Развертывание OSD через Ceph-Disk значительно увеличит степень автоматизации операции и обслуживания развертывания CEPH и уменьшит вероятность эксплуатационной ошибки.

Возьмите новый OSD в качестве примера для описания рабочего механизма Ceph-Disk.

Разделен на два шага: приготовьте диск и активируйте диск

Предполагая, что/DEV/SDG — это диск данных, который будет использоваться в OSD./DEV/SDK SSD, OSD создается здесь. Команды, которые создают OSD и идут в Интернете, следующие:

Ceph-disk prepare /dev/sdg /dev/sdk

Ceph-disk activate /dev/sdg1

Следующий процесс подробно.

1. Подготовьте раздел журнала.

PRIPARE_JOURNAL_DEV () Вызывает SGDISK для разделения раздела PLATE PATE от/DEV/SDK.

Есть следующие моменты:

a. Перед вызовом sgdisk PrEPARE_JOURNAL_DEV () получит размер OSD_JOURNAL_SIZE, указанный в файле ceph.conf. Наш ceph.conf указывает размер следующим образом: ниже:

б. В фактической среде развертывания, поскольку разделение SSD журнала не требует большого места, один SSD, вероятно, будет разделен на несколько OSD, чтобы разделить свои соответствующие разделы журнала. Наша среда заключается в том, что SSD 300G разделяется на 5 (Даже больше) 20 г разделов, которые переносятся в 5 журнал OSD.

c. Ceph-Disk может автоматически обнаружить количество разделов на диске SSD при развертывании разделения журнала, без повреждения существующего раздела и выделять новый номер разделения, который не противоречит созданию разделов.

d. Если вы не указали созданный разбил UUID, Ceph-Disk автоматически генерирует один для раздела журнала, который называется журнал_ууид.

e. При вызове Sgdisk есть важный параметр, -typecode. Ceph-Disk использует специальный Uuid в качестве Typecode для создания журнала:

Что касается того, почему этот специальный UUID используется для выполнения TypeCode, в основном этот UUID может использоваться в качестве ваучера для идентификационного раздела в качестве CEPH Journal, а затем объясняется в ходе.

На этом этапе Prepare_journalnal_dev () подготовила параметры, необходимые для SGDisk. Пример фактического параметра приведен ниже:

/usr/sbin/sgdisk —new=6:0:+20480M—change-name="6:ceph journal" —partition-guid=6:c6422c03-d320-4633-b35d-4f43c6cdd9fa—typecode=6:45b0969e-9b03-4f30-b4c6-b4b80ceff106 —mbrtogpt — /dev/sdk

2. Создайте ссылку: Ссылка: журнал раздел: Ссылка: Ссылка:

Позвольте мне кратко представить, как производит эта ссылка.

После вызова SGDISK для создания разделения журнала Ceph-Disk вызывает таблицу разделов обновлений PartX, которая запустит блочное устройство/раздела UDEV Event и уведомит ядро. Ceph написал файл правил UDEV следующим образом:

После получения события UDEV, сгенерированного PartX, Udev Daemon позвонит сценарию/usr/sbin/ceph-disk-udev в соответствии с вышеуказанным файлом правил CEPH. Именно в этом сценарии Link создала ссылку в Directory/Dev/Disk/By-Pageuuid/ниже раздела журнала. Этот сценарий также имеет еще одну функцию сканирования эксклюзивных разделов OSD, что будет упомянуто позже. Нет таблиц на данный момент.

Каково использование этой ссылки?

Поскольку эта ссылка генерируется в соответствии с UUID раздела, ее можно рассматривать как фиксированное отображение конкретного разделения журнала. Позднее укажет, что журнал OSD будет отображать его здесь:

Это показывает, что журнал, расположенный в разделе данных OSD, является ссылкой, указывающей на фиксированную позицию:/dev/disk/by-partuuid/c6422c03-d320-4633-b35d-4f43c6cdd9fa, а затем эта ссылка указывает на реальную журнал. Разделение, проблема, вызванная диском дрейфом решения. Ссылка разделения данных OSD, представленного ниже, также основана на этом принципе.

3. Подготовьте разделы данных OSD.

Этот процесс такой же, как подготовка раздела журнала. Разница в том, что:

a. Позвоните Sgdisk, чтобы использовать но-новое использование, чтобы использовать максимальную возможность диска. Таким образом,/Dev/SDG будет иметь раздел SDG1, который использует все пространство.

b. Формат/dev/sdg1. Вот небольшая настройка Ceph-Disk, а формат раздела EXT4 используется по умолчанию.

c. Поместите это крепление раздела во временное каталог, а затем создайте ссылку, называемую журналом, относится к/dev/disk/by-partuuid/c6422c03-d320-4633-b35d-4f43c6cdd9fa. До сих пор картирование разделения журнала OSD завершено. Наконец -то Umount.

С помощью Journal_uuid используйте этот специальный UUID для выполнения TypeCode, потому что этот UUID можно использовать в качестве ваучера для разделов данных Ceph OSD, а затем объясняется в -depth.

4. Создайте ссылку в разделе данных OSD в Directory/Dev/Disk/By-Partuuid/ниже.

Процесс — это процесс создания процесса ссылки журнала.

5. Активируйте процесс.

Команда Activate-Ceph-Disk Activate /dev /SDG1.

Но на самом деле эта команда не требуется. Причина в том, что после подготовки раздела данных OSD событие UDEV вызвало Ceph-Disk-Udev. Ceph-Disk-Udev автоматически вызовет Ceph-Disk Activate /dev /SDG1.

Следующее представляет, как этот процесс автоматизирован. Подробнее см. Сценарий Ceph-Disk-Udev.

Генерация нового разделения данных OSD запускает событие UDEV. Через правило Ceph Udev, наконец, вызывает Ceph-Disk-Udev для анализа типового кода раздела, и это OSD_UUID, что указывает на то, что это раздел данных Ceph OSD, поэтому, так что, так что, так что, так что, так что, так что Активность Ceph-Disk запускается. /Dev /sdg1:

То же самое верно для Typecode для обслуживания журнала_ууида, но это просто для начала OSD.

Чтобы ввести конкретный процесс активности Ceph-Disk /dev /sdg1.

A. Mount/Dev/SDG1 во временный каталог, как правило, var/lib/ceph/tmp/mnt.xxx

b. Выделите ID OSD и вызовите Ceph OSD CREATUE, чтобы сгенерировать ID OSD

c. инициализируйте OSD, например, Ceph-OSD-MKFS-OSD-DATA-OSD-JORNAL

e. Service ceph start osd

Для IDS OSD случай OSD также будет использовать активность Ceph -Disk. Эта ситуация немного отличается. Нет необходимости генерировать новый идентификатор OSD. После идентификатора, перенаправить его до окончательного каталога.

Другие команды, поддерживаемые Ceph-Disk, следующие:

prepare Prepare a directory or disk for aCeph OSD

activate Activate a Ceph OSD

activate-journal Activate an OSD via its journal device

activate-all Activate all tagged OSD partitions

list List disks, partitions, and CephOSDs

suppress-activate Suppress activate on a device (prefix)

Stop suppressingactivate on a device (prefix)

zap Zap/erase/destroy a device’spartition table (and

Особый акцент на: несколько моментов:

A. Подавить буквально означает ингибирование. Используемое здесь намерение заключается в том, что если вы просто хотите подготовить каждый раздел, вы не хотите активировать OSD в настоящее время (создание OSD Online). Вы можете использовать эту команду. Когда все разделы Подготовьте, не поднимайте одно полотенце, затем активируйте все.

b. Activate-Journal должен начать OSD путем разработки раздела журнала, например: Ceph-Diskactivate-Journal /Dev /SDK6. Процесс выполнения Ceph-Disk:

Через Ceph-osd-i 0-fin-journal-uuid-osd-journal/dev/sdk6 возвращается в OSD_UUID. С OSD_UUID вы можете найти разделы данных OSD, то есть позиционирование/dev/disk/by-partuuid/$ osd_uuid , затем вернитесь к логике команды активации с использованием разделов данных OSD, то есть Ceph-Disk Activate /dev /SDG1.

Вот почему это Ceph-OSD-I 0? В этой команде-Я может быть проигнорирован в Get-Journal-Uuid за любом целым числом. Но проблема в том, что без -i, проверка формата Ceph -OSD будет сообщать об ошибке.

Есть Get-Journal-Uuid. Буквально это кажется UUID в журнале, но на самом деле FSID в FSID в FSID в FSID. -OSD -I 0-FIN-JORNAL-UUID-OSD- Journal /dev /sdk6 возвращаемое значение — OSD_UUID. Я должен жаловаться, что этот заказ слишком легко смущен. Логика анализируется из исходного кода. Из этой небольшой проблемы можно видеть, что программное обеспечение с открытым исходным кодом немного грубо, чем коммерческое программное обеспечение, и его нужно точно отполировать.

c. Если подготовка не является явно указанным журналом, например, Ceph-Disk Prepare /Dev /SDG, логика обработки:

Два раздела по ЦУР, то, что ЦВЛ2 — 20G Journal Partition, SDG1 — это раздел данных OSD с оставшимся размером пространства.

1. default fstype ext4

2. Проблема Keyring, поскольку текущее развертывание CEPH не имеет включения, соответствующий код защищен.

Ceph-Disk -V будет печатать более подробные журналы. Если вы хотите понять процесс работы команды Ceph-Disk, этот параметр очень эффективен.

Что означает dev sdg1

Библиотека сайта rus-linux.net

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

Размеры томов LVM в этой физической группе устройств не зависят от размеров отдельных устройств. Общий размер группы устройств является пределом.

Одной из наиболее ценных возможностей системы управления логическими томами LVM является возможность изменения размеров логических томов. Вы можете увеличить размер логического тома LVM в некоторых случаях даже без перезагрузки системы. Кроме того, вы можете инициировать миграцию данных с выходящего из строя жесткого диска, зеркалирование данных, а также создавать снимки разделов.

11.1. Знакомство с LVM

11.1.1. Недостатки стандартных разделов

Существует несколько недостатков стандартных разделов жестких дисков, которые чаще всего выявляются в процессе эксплуатации последних. Рассмотрим систему с дисками малого и большого размера, на которых созданы разделы таким образом, как показано на иллюстрации ниже. Первый диск (представленный файлом устройства /dev/sda) разделен на два раздела, а второй диск (представленный файлом устройства /dev/sdb) — также разделен на два раздела, причем часть диска остается не размеченной.

Разделы жесткого диска

Продолжая рассмотрение приведенного выше примера, подумайте о том, каким образом можно поступить в случае возникновения необходимости увеличения дискового пространства, доступного по пути /srv/project42 . Какое действие вы можете предпринять? Любое ваше решение будет связано в размонтированием файловой системы, созданием резервной копии хранящихся в ней данных, удалением и повторным созданием разделов, восстановлением данных из резервной копии и повторным монтированием файловой системы.

11.1.2. Решение в случае использования LVM

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

Группа томов LVM

11.2. Терминология LVM

11.2.1. Физический том (physical volume — pv)

Физическим томом является любое блочное устройство (файл устройства, соответствующий диску, разделу на диске, дисковому массиву RAID или даже устройству iSCSI). Все эти устройства могут быть добавлены в группу томов .

Команды, используемые для управления физическими томами , всегда начинаются с символов pv.

11.2.2. Группа томов (volume group — vg)

Группа томов является уровнем абстракции между блочными устройствами и логическими томами .

Команды, используемые для управления группами томов , начинаются с символов vg.

11.2.3. Логический том (logical volume — lv)

Логический том создается в рамках группы томов . Каждый логический том может содержать файловую систему, которая может монтироваться. Методика использования логических томов аналогична методике использования разделов дисков и предусматривает работу с тем же набором стандартных утилит (mkfs, mount, fsck, df, ).

Команды, используемые для управления логическими томами , начинаются с символов lv.

11.3. Пример: работа с LVM

В данном примере показана методика использования дискового устройства (в нашем примере дисковое устройство представлено файлом устройства /dev/sdc, но оно также может быть представлено и файлом устройства /dev/sdb, и любым другим файлом устройства, соответствующим другому дисковому устройству или разделу на таком устройстве) при работе с технологией LVM и даны пояснения относительно создания группы томов (vg), а также создания и использования логического тома (vg/lvol0).

В первую очередь необходимо создать физические тома, которые впоследствии будут объединены в рамках группы томов с помощью утилиты pvcreate . Данная утилита модифицирует раздел дискового устройства таким образом, чтобы он мог использоваться в рамках групп томов. В примере ниже показано, как задействовать диск SCSI при работе с технологией LVM.

Примечание: Технология LVM будет отлично работать и в случае использования устройств вместо специализированных разделов на них, но другая операционная система, установленная на этом же компьютере (или в этой же сети хранения данных) наверняка не сможет определить, что устройство используется в рамках группы томов LVM и, скорее всего, пометит блочное устройство как устройство без данных! Вы можете избежать такого поведения сторонней операционной системы, создав раздел на всей доступной поверхности дискового устройства и использовав утилиту pvcreate по отношению к этому разделу, а не к дисковому устройству.

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

Последний шаг заключается в использовании утилиты lvcreate для создания логического тома.

Теперь в логическом томе, представленном файлом устройства /dev/vg/lvol0, может быть создана файловая система ext3, которая впоследствии может монтироваться и использоваться по назначению.

Логический том очень похож на раздел дискового устройства; в нем может быть создана файловая система, которая впоследствии может монтироваться и использоваться для хранения данных пользователей.

11.4. Пример: расширение логического тома

Логический том может быть расширен без отмонтирования файловой системы. Возможность расширения логического тома определяется возможностями используемой рамках этого тома файловой системы. Смонтированные тома с файловыми системами vfat и ext2 не могут быть расширены, поэтому в данном примере мы будем использовать файловую систему ext3.

Утилита fdisk выводит информацию о недавно добавленных дисках SCSI, которые будут содержать данные нашего тома LVM. Впоследствии этот том может быть расширен. В первую очередь давайте рассмотрим параметры этих дисков.

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

Также вы знаете о том, как готовить диски к работе с технологией LVM с помощью утилиты pvcreate , а также о том, как создавать группу томов с помощью утилиты vgcreate . В данном примере в группу томов с именем vg2 добавляется как диск с разделами, так и диск без них.

Вы можете использовать утилиту pvdisplay , чтобы убедиться в том, что как диск, так и раздел принадлежат к одной и той же группе томов.

Кроме того, вы должны быть знакомы как с утилитой lvcreate , предназначенной для создания логических томов, так и с утилитой mke2fs , предназначенной для создания файловой системы ext3 в рамках этих томов.

Как вы можете увидеть, нам удалось создать и смонтировать логический том размер которого, в соответствии с информацией от утилиты df , составляет практически 200 МБ.

Расширение тома осуществляется достаточно просто с помощью утилиты lvextend .

Но, как вы можете увидеть, возникла небольшая проблема: кажется утилита df не может вывести информацию о полном размере расширенного тома. Это происходит из-за того, что файловая система создавалась в рамках тома, размер которого увеличился после расширения.

Однако, в случае использования утилиты lvdisplay мы можем увидеть реальный размер тома после расширения.

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

Поздравляю, вы только что успешно расширили логический том.

11.5. Пример: изменение размера физического тома

Ниже представлено краткое описание методики изменения размера физического тома средствами LVM (после изменения его размера с помощью утилиты fdisk). Описание начинается с получения информации о разделе дискового устройства размером в 100 МБ, представленном файлом устройства /dev/sde1. Мы заранее использовали утилиту fdisk для создания и проверки размера этого раздела.

Теперь мы можем использовать утилиту pvcreate для создания физического тома, а также утилиту pvs для проверки корректности его создания.

На следующем шаге следует использовать утилиту fdisk для увеличения размера раздела (на самом деле будет осуществляться удаление этого раздела и повторное создание раздела с дополнительными цилиндрами, который будет представлен файлом устройства /dev/sde1).

Если мы используем сейчас утилиты fdisk и pvs для проверки размеров раздела и физического тома, мы обнаружим различие в значениях. В рамках LVM все еще используется старый размер раздела.

Утилита pvresize, примененная по отношению к физическому тому, уведомит LVM об изменении размера раздела дискового устройства. Информация о корректном размере также может быть получена с помощью утилиты pvs.

11.6. Пример: зеркалирование логического тома

Начнем работу с создания трех физических томов LVM. После этого проверим корректность создания и размеры этих томов с помощью утилиты pvs. Мы создаем три физических диска по той причине, что в LVM два диска используются для хранения данных с зеркалированием, а третий том — для хранения данных журнала зеркалирования!

После этого создадим группу томов и проверим корректность ее создания с помощью ранее использованной утилиты pvs. Учтите, что три физических тома теперь принадлежат к группе томов с именем vg33, причем размеры этих томов округляются в меньшую сторону (на шаг, равный размеру экстента, в нашем случае 4МБ).

Последний шаг заключается в создании логического тома с помощью утилиты lvcreate . Обратите внимание на параметр -m 1 , предназначенный для выделения одного дискового устройства для хранения данных журнала зеркалирования. Также обратите внимание на изменение значений свободного пространства на каждом из трех физических томов!

Вы можете получить информацию о состоянии процесса зеркалирования данных, воспользовавшись утилитой lvs. В данном примере создана 100-процентная копия данных.

11.7. Пример: снимок логического тома

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

В примере ниже создается снимок логического тома под названием bigLV.

Изучив вывод утилиты lvs, вы можете убедиться в том, что снимок snapLV действительно является снимком логического тома bigLV. Спустя непродолжительное время после создания снимка, происходит несколько модификаций данных на логическом томе bigLV (0.02 процента).

Но в процессе последующего использования тома bigLV объем модификаций увеличивается. Это означает, что в рамках логического тома снимка должен храниться больший объем оригинальных данных (10.22 процента).

Теперь вы можете использовать обычные инструменты для резервного копирования данных (dump, tar, cpio, ) с целью создания резервной копии логического тома снимка. Эта резервная копия будет содержать все данные, хранящиеся в рамках логического тома bigLV в момент создания снимка. После создания резервной копии вы можете удалить логический том снимка.

11.8. Проверка существующих физических томов

11.8.1. Утилита lvmdiskscan

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

11.8.2. Утилита pvs

Простейший способ получения информации о том, используется ли технология LVM для работы с определенными устройствами, заключается в использовании утилиты pvs . При рассмотрении фрагмента вывода данной утилиты, приведенного в примере ниже, можно сделать вывод о том, что технология LVM используется исключительно для работы с разделом дискового устройства, представленным файлом устройства /dev/sda2. В выводе утилиты также содержится информация о том, что раздел дискового устройства, представленный файлом устройства /dev/sda2, состоит в группе томов с именем Volgroup00 и имеет размер, равный практически 16 Гб. Кроме того, в выводе утилиты содержится информация о дисковых устройствах, представленных файлами устройств /dev/sdc и /dev/sdd, которые состоят в группе томов с именем vg33. Технология LVM может использоваться и для работы с дисковым устройством, представленным файлом устройства /dev/sdb, но это устройство на данный момент не относится к каким-либо группам томов.

11.8.3. Утилита pvscan

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

11.8.4. Утилита pvdisplay

Используйте утилиту pvdisplay для получения дополнительной информации о физическом томе. Также вы можете использовать утилиту pvdisplay без аргументов для вывода информации обо всех физических томах (LVM).

11.9. Проверка существующих групп томов

11.9.1. Утилита vgs

По аналогии с утилитой pvs , утилита vgs может использоваться для вывода краткой информации обо всех группах томов. В выводе данной утилиты, приведенном в примере ниже, содержится информация только об одной группе томов с именем VolGroup00, размер которой равен практически 16 Гб.

11.9.2. Утилита vgscan

Утилита vgscan позволяет осуществить сканирование всех дисковых устройств в поисках существующих групп томов. Также данная утилита обновляет содержимое файла /etc/lvm/.cache . В данном файле содержится список всех устройств, для работы с которыми на данный момент используется технология LVM.

В случае использования технологии LVM утилита vgscan будет запускаться автоматически в процессе загрузки системы, поэтому в том случае, если вы будете осуществлять горячее подключение дисковых устройств, вам придется самостоятельно запускать утилиту vgscan для добавления в файл /etc/lvm/.cache информации о новых устройствах.

11.9.3. Утилита vgdisplay

Утилита vgdisplay предоставляет более подробную информацию о группе томов (или обо всех группах томов, если вы не будете передавать ей каких-либо аргументов).

11.10. Проверка существующих логических томов

11.10.1. Утилита lvs

Используйте утилиту lvs для получения краткой информации обо всех существующих логических томах. В выводе данной утилиты, приведенном в примере ниже, вы можете обнаружить информацию о двух логических томах с именами LogVol00 и LogVol01.

11.10.2. Утилита lvscan

Утилита lvscan позволяет осуществить сканирование всех дисковых устройств в поисках существующих логических томов.

11.10.3. Утилита lvdisplay

Более подробная информация о логических томах может быть получена с помощью утилиты lvdisplay(1) .

11.11. Управление логическими томами

11.11.1. Утилита pvcreate

Используйте утилиту pvcreate для добавления устройств, работа с которыми должна осуществляться посредством технологии LVM. В данном примере показана методика перевода дискового устройства (или устройства из аппаратного массива RAID) в разряд устройств LVM.

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

Также вы можете передавать утилите pvcreate пути к множеству файлов устройств, представляющих дисковые устройства и их разделы. В данном примере для работы посредством технологии LVM выделяются три диска.

11.11.2. Утилита pvremove

Используйте утилиту pvremove для удаления физических томов из списка физических томов LVM. Соответствующие устройства не должны использоваться.

11.11.3. Утилита pvresize

После того, как вы воспользовались утилитой fdisk для изменения размера раздела на диске, вы должны использовать утилиту pvresize для определения нового размера физического тома, представляющего рассматриваемый раздел диска, на уровне LVM.

11.11.4. Утилита pvchange

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

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

11.11.5. Утилита pvmove

С помощью утилиты pvmove вы можете перемещать логические тома в рамках группы томов в сторонние физические тома. Эта операция должна выполняться перед удалением физического тома.

11.12. Управление группами томов

11.12.1. Утилита vgcreate

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

11.12.2. Утилита vgextend

Используйте утилиту vgextend для расширения существующей группы томов путем добавления в нее нового физического тома.

11.12.3. Утилита vgremove

Используйте утилиту vgremove для удаления групп томов LVM. Удаляемые группы томов не должны использоваться.

11.12.4. Утилита vgreduce

Используйте утилиту vgreduce для удаления физического тома из группы томов.

В следующем примере осуществляется добавление физического тома, представленного файлом устройства /dev/sdg, в группу томов с именем vg1 средствами утилиты vgextend. После этого данный логический том удалятся из группы томов с помощью утилиты vgreduce.

11.12.5. Утилита vgchange

Используйте утилиту vgchange для изменения значений параметров группы томов.

В данном примере показана методика предотвращения добавления или удаления физических томов из группы томов с именем vg1.

Также вы можете использовать утилиту vgchange для изменения значений большинства других параметров группы томов. В данном примере осуществляется изменение максимального количества логических томов, а также максимального количества физических томов, которые могут функционировать в рамках группы томов с именем vg1.

11.12.6. Утилита vgmerge

Объединение двух групп томов в рамках одной группы может осуществляться с помощью утилиты vgmerge . В следующем примере происходит объединение группы томов с именем vg2 с группой томов с именем vg1 с сохранением всех значений параметров группы томов с именем vg1.

11.13. Управление логическими томами

11.13.1. Утилита lvcreate

Используйте утилиту lvcreate для создания логических томов в рамках группы томов. В данном примере в рамках группы томов с именем vg42 создается логический том размером в 8 Гб.

Как вы видите, LVM автоматически присваивает логическому разделу имя lvol0. В следующем примере в рамках группы томов с именем vg42 создается логический том с именем MyLV размером в 200 Мб.

В следующем примере выполняется та же операция, но используется отличный синтаксис команды.

А в этом примере создается логический том, который будет занимать ровно 10 процентов дискового пространства группы томов.

В этом же примере создается логический том, который будет занимать 30 процентов оставшегося в рамках группы томов свободного дискового пространства.

11.13.2. Утилита lvremove

Используйте утилиту lvremove для удаления логических томов из группы томов. Для удаления логического тома потребуется имя группы томов.

В случае удаления множества логических томов будут выводиться запросы подтверждений перед удалением каждого из указанных томов.

11.13.3. Утилита lvextend

Расширение логического тома может осуществляться достаточно просто средствами утилиты lvextend . В следующем примере логический том размером в 200 Мб расширяется на 100 Мб.

В следующем примере создается логический том размером в 100 Мб, который впоследствии расширяется до 500 Мб.

А в данном примере размер логического тома удваивается.

11.13.4. Утилита lvrename

Переименование логического тома осуществляется с помощью утилиты lvrename . В данном примере осуществляется смена имени логического тома из группы томов vg42 с extLV на bigLV.

11.14. Практическое задание: LVM

1. Создайте группу томов, которая будет содержать все пространство дискового устройства и раздел с другого дискового устройства.

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

3. Попытайтесь получить информацию о заполнении созданных томов, воспользовавшись утилитами fdisk, mount, pvs, vgs, lvs, pvdisplay, vgdisplay, lvdispaly и df. Получили ли вы какую-либо информацию о томах LVM от утилиты fdisk?

4. Расширьте логический том малого размера на 50 процентов и проверьте корректность выполнения операции!

5. Рассмотрите другие утилиты, имена которых начинаются с символов vg*, pv* и lv*.

6. Создайте зеркальный логический том (mirrored) и логический том с чередованием (striped).

7. Преобразуйте линейный логический том (linear) в зеркальный (mirrored).

8. Преобразуйте зеркальный логический том (mirrored) в линейный (linear).

9. Создайте снимок логического тома, а также резервную копию этого снимка. После этого удалите некоторые файлы с логического тома и восстановите том из резервной копии его снимка.

10. Переместите вашу группу томов на другое дисковое устройство (оставьте логические тома смонтированными).

11. При наличии времени разделите группу томов с помощью утилиты vgsplit, после чего снова объедините результирующие группы с помощью утилиты vgmerge.

11.15. Корректная процедура выполнения практического задания: LVM

1. Создайте группу томов, которая будет содержать все пространство дискового устройства и раздел с другого дискового устройства.

Шаг 1: выбор дисковых устройств

В данном случае я выбрал дисковые устройства, представленные файлами устройств /dev/sdb и /dev/sdc.

Шаг 2: создание разделов на устройстве, представленном файлом устройства /dev/sdc

Шаг 3: Работа с утилитами pvcreate и vgcreate

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

Монтирование файловых систем и копирование файлов:

3. Попытайтесь получить информацию о заполнении созданных томов, воспользовавшись утилитами fdisk, mount, pvs, vgs, lvs, pvdisplay, vgdisplay, lvdispaly и df. Получили ли вы какую-либо информацию о томах LVM от утилиты fdisk?

Используйте все упомянутые утилиты (ниже приведены примеры использования только двух из них), и ответьте «нет» на поставленный вопрос.

4. Расширьте логический том малого размера на 50 процентов и проверьте корректность выполнения операции!

5. Рассмотрите другие утилиты, имена которых начинаются с символов vg*, pv* и lv*.

6. Создайте зеркальный логический том (mirrored) и логический том с чередованием (striped).

7. Преобразуйте линейный логический том (linear) в зеркальный (mirrored).

8. Преобразуйте зеркальный логический том (mirrored) в линейный (linear).

9. Создайте снимок логического тома, а также резервную копию этого снимка. После этого удалите некоторые файлы с логического тома и восстановите том из резервной копии его снимка.

10. Переместите вашу группу томов на другое дисковое устройство (оставьте логические тома смонтированными).

11. При наличии времени разделите группу томов с помощью утилиты vgsplit, после чего снова объедините результирующие группы с помощью утилиты vgmerge.

Что означает dev sdg1

Повесть о Linux и LVM (Logical Volume Manager).
+ дополнения

Автор: Иван Песин
Автор: Игорь Чубин (автор дополнений)

В основу этой страницы положена работа «Повесть о Linux и LVM» Ивана Песина, которая, в свою очередь, написана на основе Linux LVM HOWTO. Она дополнена новыми ссылками и небольшими уточнениями, а также углублённым рассмотрением нескольких дополнительных вопросов.

Один из вопросов это использование kpartx из пакета multipath-tools для построения карты устройства (device map) и рекурсивного доступа к томам LVM (когда LVM развёрнут на разделах, созданных внутри логического тома LVM более низкого уровня). Это может быть полезно при использовании LVM совместно с системами виртуализации.

Второй вопрос — это использование постоянных снимков (persistent snapshot) для быстрого клонирования разделов. Эта возможность может быть полезна как при выполнении резервного копирования, так и при быстром создании виртуальных машин в системах виртуализации (вопрос создания снимков затрагивался и в повести, но здесь он рассмотрен более детально).

Третий вопрос — это сравнение LVM и файловой системой ZFS, набирающей в последнее время большую популярность. На первый взгляд такое сравнение может показаться странным, ведь ZFS — это файловая система, а LVM — система управления томами, то есть нечто, что находится на уровень ниже файловой системы. В действительности, сравнение вполне имеет право на существование, поскольку ZFS это не просто файловая система, а нечто большее. В ней присутствует уровень «storage pool», который берёт на себя те же задачи, что и LVM.

Содержание

[править] Введение

Цель статьи — описать процесс установки и использования менеджера логических томов на Linux-системе. LVM (Logical Volume Manager), менеджер логических томов — это система управления дисковым пространством, абстрагирующаяся от физических устройств. Она позволяет эффективно использовать и легко управлять дисковым пространством. LVM обладает хорошей масштабируемостью, уменьшает общую сложность системы. У логических томов, созданных с помощью LVM, можно легко изменить размер, а их названия могут нести большую смысловую нагрузку, в отличие от традиционных /dev/sda, /dev/hda .

Реализации менеджеров логических томов существуют практически во всех UNIX-подобных операционных системах. Зачастую они сильно отличаются в реализации, но все они основаны на одинаковой идее и преследуют аналогичные цели. Одна из основных реализаций была выполнена Open Software Foundation (OSF) и сейчас входит в состав многих систем, например IBM AIX, DEC Tru64, HP/UX. Она же послужила и основой для Linux-реализации LVM.

Данная статья является переработкой и дополнением LVM-HOWTO.

[править] Терминология

Поскольку система управления логическими томами использует собственную модель представления дискового пространства, нам необходимо определиться с терминами и взаимосвязями понятий. Рассмотрим схему, основанную на диаграмме Эрика Бегфорса (Erik Bеgfors), приведенную им в списке рассылки linux-lvm. Она демонстрирует взаимосвязь понятий системы LVM:

Обозначения и понятия:

  • PV, Physical volume, физический том. Обычно это раздел на диске или весь диск. В том числе, устройства программного и аппаратного RAID (которые уже могут включать в себя несколько физических дисков). Физические тома входят в состав группы томов.
  • VG, Volume group, группа томов. Это самый верхний уровень абстрактной модели, используемой системой LVM. С одной стороны группа томов состоит из физических томов, с другой — из логических и представляет собой единую административную единицу.
  • LV, Logical volume, логический том. Раздел группы томов, эквивалентен разделу диска в не-LVM системе. Представляет собой блочное устройство и, как следствие, может содержать файловую систему.
  • PE, Physical extent, физический экстент. Каждый физический том делится на порции данных, называющиеся физическими экстентами. Их размеры те же, что и у логических экстентов.
  • LE, Logical extent, логический экстент. Каждый логический том делится на порции данных, называющиеся логическими экстентами. Размер логических экстентов не меняется в пределах группы томов.

Давайте теперь соединим все эти понятия в общую картину. Пусть у нас имеется группа томов VG00 с размером физического экстента 4Мб. В эту группу мы добавляем два раздела, /dev/hda1 и /dev/hdb1. Эти разделы становятся физическими томами, например PV1 и PV2 (символьные имена присваивает администратор, так что они могут быть более осмысленными). Физические тома делятся на 4-х мегабайтные порции данных, т.к. это размер физического экстента. Диски имеют разный размер: PV1 получается размером в 99 экстентов, а PV2 — размером в 248 экстентов. Теперь можно приступать к созданию логических томов, размером от 1 до 347 (248+99) экстентов. При создании логического тома, определяется отображение между логическими и физическими экстентами. Например, логический экстент 1 может отображаться в физический экстент 51 тома PV1. В этом случае, данные, записанные в первые 4Мб логического экстента 1, будут в действительности записаны в 51-й экстент тома PV1.

Администратор может выбрать алгоритм отображения логических экстентов в физические. На данный момент доступны два алгоритма:

1. Линейное отображение последовательно назначает набор физических экстентов области логического тома, т.е. LE 1 — 99 отображаются на PV1, а LE 100 — 347 — на PV2.

2. «Расслоенное» (striped) отображение разделяет порции данных логических экстентов на определенное количество физических томов. То есть:

Похожая схема используется в работе RAID нулевого уровня. В некоторых ситуациях этот алгоритм отображения позволяет увеличить производительность логического тома. Однако он имеет значительное ограничение: логический том с данным отображением не может быть расширен за пределы физических томов, на которых он изначально и создавался.

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

[править] Работа с LVM

Давайте теперь рассмотрим задачи, стоящие перед администратором LVM системы. Помните, что для работы с системой LVM ее нужно инициализировать командами:

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

Первые две строки нужно будет поместить в скрипты автозагрузки (если их там нет), а последнюю можно дописать в скрипт shutdown.

[править] Инициализация дисков и разделов

Перед использованием диска или раздела в качестве физического тома необходимо его инициализировать:

Для целого диска:

Эта команда создает в начале диска дескриптор группы томов.

Если вы получили ошибку инициализации диска с таблицей разделов — проверьте, что работаете именно с нужным диском, и когда полностью будете уверены в том, что делаете, выполните следующие команды

Эти команды уничтожат таблицу разделов на целевом диске.

Установите программой fdisk тип раздела в 0x8e.

Команда создаст в начале раздела /dev/hdb1 дескриптор группы томов.

[править] Создание группы томов

Для создания группы томов используется команда ‘vgcreate’

Если вы используете devfs важно указывать полное имя в devfs, а не ссылку в каталоге /dev. Таким образом приведенная команда должна выглядеть в системе с devfs так:

Кроме того, вы можете задать размер экстента при помощи ключа «-s», если значение по умолчанию в 4Мб вас не устраивает. Можно, также, указать ограничения возможного количества физических и логических томов.

[править] Активация группы томов

После перезагрузки системы или выполнения команды vgchange -an, ваши группы томов и логические тома находятся в неактивном состоянии. Для их активации необходимо выполнить команду

[править] Удаление группы томов

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

Деактивируйте группу томов:

Теперь можно удалить группу томов командой:

[править] Добавление физических томов в группу томов

Для добавления предварительно инициализированного физического тома в существующую группу томов используется команда ‘vgextend’:

[править] Удаление физических томов из группы томов

Убедитесь, что физический том не используется никакими логическими томами. Для этого используйте команду ‘pvdisplay’:

Если же физический том используется, вам нужно будет перенести данные на другой физический том при помощи команды pvmove.

Затем можно использовать ‘vgreduce’ для удаления физических томов:

После этого используя pvremove можно удалить устройство, в котором больше нет необходимости, заполняя его метаданные нулями.

Эта процедура будет описана в следующих разделах.

[править] Создание логического тома

Для того, чтобы создать логический том «lv00», размером 1500Мб, выполните команду:

Без указания суффикса размеру раздела используется множитель «мегабайт» (в системе СИ равный 10 6 байт), что и продемонстрировано в примере выше. Суффиксы в верхнем регистре (KMGTPE) соответствуют единицам в системе СИ (с основанием 10), например, G — гигабайт равен 10 9 байт, а суффиксы в нижнем регистре (kmgtpe) соответствуют единицам в системе IEC (с основанием 2), например g — гибибайт равен 2 30 байт.

Для создания логического тома размером в 100 логических экстентов с расслоением по двум физическим томам и размером блока данных 4 KB:

Если вы хотите создать логический том, полностью занимающий группу томов, выполните команду vgdisplay, чтобы узнать полный размер группы томов, после чего используйте команду lvcreate.

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

[править] Удаление логических томов

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

[править] Увеличение логических томов

Для увеличения логического тома вам нужно просто указать команде lvextend до какого размера вы хотите увеличить том:

В результате /dev/vg00/home увеличится до 12Гбайт.

Эта команда увеличивает размер логического тома на 1Гб.

А эта команда увеличивает размер логического тома до максимально доступного.

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

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

[править] ext2/ext3/ext4

Если вы не пропатчили ваше ядро патчем ext2online, вам будет необходимо размонтировать файловую систему перед изменением размера:

Если у вас нет пакета e2fsprogs 1.19 его можно загрузить с сайта ext2resize.sourceforge.net.

Для файловой системы ext2 есть и другой путь. В состав LVM входит утилита e2fsadm, которая выполняет и lvextend, и resize2fs (она также выполняет и уменьшение размера файловой системы, это описано в следующем разделе). Так что можно использовать одну команду:

что эквивалентно двум следующим:

вам все равно нужно будет размонтировать файловую систему перед выполнением e2fsadm.

[править] jfs
[править] reiserfs

Увеличивать размер файловых систем Reiserfs можно как в смонтированном, так и в размонтированном состоянии.

Увеличить размер смонтированной файловой системы:

Увеличить размер размонтированной файловой системы:

[править] xfs

Размер файловой системы XFS можно увеличить только в смонтированном состоянии. Кроме того, утилите в качестве параметра нужно передать точку монтирования, а не имя устройства:

[править] Уменьшение размера логического тома

Логические тома могут быть уменьшены в размере, точно также как и увеличены. Однако очень важно помнить, что нужно в первую очередь уменьшить размер файловой системы, и только после этого уменьшать размер логического тома. Если вы нарушите последовательность, вы можете потерять данные.

[править] ext2

При использовании файловой системы ext2, как уже указывалось ранее, можно использовать команду e2fsadm:

Если вы хотите выполнить операцию по уменьшению логического тома вручную, вам нужно знать размер тома в блоках:

[править] ext2/ext3/ext4

Способ применимый в более современных системах.

Указываем размер явно и с некоторым с запасом:

[править] reiserfs

При уменьшении размера файловой системы Reiserfs, ее нужно размонтировать:

[править] xfs

Уменьшить размер файловой системы XFS нельзя.

Примечание: обратите внимание на то, что для уменьшения размера файловых систем, необходимо их размонтировать. Это вносит определенные трудности, если вы желаете уменьшить размер корневой файловой системы. В этом случае можно применить следующий метод: загрузится с CD дистрибутива, поддерживающего LVM. Перейти в командный режим (обычно это делается нажатием клавиш Alt+F2) и выполнить команды сканирования и активации группы томов:

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

[править] Перенос данных с физического тома

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

[править] Примеры

[править] Настройка LVM на трех SCSI дисках

В первом примере мы настроим логический том из трех SCSI дисков. Устройства дисков: /dev/sda, /dev/sdb и /dev/sdc.

Перед добавлением в группу томов диски нужно инициализировать:

После выполнения этих команд в начале каждого диска создастся область дескрипторов группы томов.

Теперь создадим группу томов vg01, состоящую из этих дисков:

Проверим статус группы томов командой vgdisplay:

Обратите внимание на первые три строки и строку с общим размером группы томов. Она должна соответствовать сумме всех трех дисков. Если всё в порядке, можно переходить к следующей задаче.

[править] Создание логического тома

После успешного создания группы томов, можно начать создавать логические тома в этой группе. Размер тома может быть любым, но, естественно, не более всего размера группы томов. В этом примере мы создадим один логический том размером 1 Гб. Мы не будем использовать «расслоение», поскольку при этом невозможно добавить диск в группу томов после создания логического тома, использующего данный алгоритм.

[править] Создание файловой системы

Создадим на логическом томе файловую систему ext2:

[править] Тестирование файловой системы

Смонтируйте логический том и проверьте все ли в порядке:

Если вы все сделали правильно, у вас должен появиться логический том с файловой системой ext2, смонтированный в точке /mnt.

[править] Создание логического тома с «расслоением»

Рассмотрим теперь вариант логического тома, использующего алгоритм «расслоения». Как уже указывалось выше, минусом этого решения является невозможность добавления дополнительного диска.

Процедура создания данного типа логического тома также требует инициализации устройств и добавления их в группу томов, как это уже было показано.

Для создания логического тома с «расслоением» на три физических тома с блоком данных 4Кб выполните команду:

После чего можно создавать файловую систему на логическом томе.

[править] Добавление нового диска

Рассмотрим систему со следующей конфигурацией:

Как видно из листинга, группы томов «dev» и «ops» практически заполнены. В систему добавили новый диск /dev/sdg. Его необходимо разделить между группами «ops» и «dev», поэтому разобьем его на разделы:

Перед тем как добавить разделы в группу томов, их необходимо инициализировать:

Теперь можно добавлять физические тома в группы томов:

Наконец, увеличим размеры логических томов и расширим файловые системы до размеров логических томов:

Нам осталось смонтировать системы и посмотреть их размеры:

[править] Резервное копирование при помощи «снапшотов»

Развивая приведенный пример, предположим, что нам нужно выполнить резервирование базы данных. Для этой задачи мы будем использовать устройство-«снапшот».

Этот тип устройства представляет собой доступную только на чтение (при использовании опции —permission r) копию другого тома на момент выполнения процедуры «снапшот». Это дает возможность продолжать работу не заботясь о том, что данные могут измениться в момент резервного копирования. Следовательно, нам не нужно останавливать работу базы данных на время выполнения резервного копирования. Остановка нужна только на момент создания устройства-«снапшот», который значительно короче самого копирования.

В группе томов ops у нас осталось около 600Мб свободного места, его мы и задействуем для «снапшот»-устройства. Размер «снапшот»-устройства не регламентируется, но должен быть достаточен для сохранения всех изменений, которые могут произойти с томом, с которого он сделан, за время жизни снапшота. 600Мб должно хватить для наших целей:

Если вы делаете «снапшот» файловой системы XFS, нужно выполнить на смонтированной файловой системе команду xfs_freeze, и лишь после этого создавать «снапшот»:

Если устройство-«снапшот» полностью заполняется, оно автоматически деактивируется. В этом случае «снапшот» не может более использоваться, потому крайне важно выделять достаточное пространство для него.

После того как мы создали «снапшот», его нужно смонтировать:

Если вы работаете с файловой системой XFS, вам будет нужно при монтировании указать опцию nouuid:

Выполним резервное копирование раздела:

После выполнения необходимых процедур, нужно удалить устройство-«снапшот»:

Запись данных на том, с которого сделан снимок, очень сильно замедлена по сравнению с обычной работой!

Элементарное сравнение производительности, наглядно демонстрирующее разницу между скоростью работы с томом, у которого нет снапшотов (смонтирован в /data/lv3/xxxx), и с томом, на котором есть снапшот (смонтирован в /data/lv4/qqqq).

Подробнее о снапшотах:

  • Consistent backup with Linux Logical Volume Manager (LVM) snapshots (англ.)
  • Back Up (And Restore) LVM Partitions With LVM Snapshots (англ.)
  • Linux Kernel Documentation: device-mapper/snapshot.txt (англ.)

Резервное копирование MySQL и LVM:

  • Using LVM for MySQL Backup and Replication Setup (англ.)
  • MySQL Backups using LVM Snapshots (англ.)
  • mylvmbackup (англ.)

[править] Удаление диска из группы томов

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

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

После окончания процедуры переноса, удалите физический том из группы томов:

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

[править] Перенос группы томов на другую систему

Физический перенос группы томов на другую систему организовывается при помощи команд vgexport и vgimport.

Сперва необходимо размонтировать все логические тома группы томов и деактивировать группу:

После этого экспортируем группу томов. Процедура экспорта запрещает доступ к группе на данной системе и готовит ее к удалению:

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

Все! Группа томов готова к использованию на новой системе.

[править] Конвертация корневой файловой системы в LVM

В данном примере имеется установленная система на двух разделах: корневом и /boot. Диск размером 2Гб разбит на разделы следующим образом:

Корневой раздел занимает все пространство, оставшееся после выделения swap и /boot разделов. Главное требование, предъявляемое к корневому разделу в нашем примере: он должен быть более чем на половину пуст. Это нужно, чтобы мы могли создать его копию. Если это не так, нужно будет использовать дополнительный диск. Процесс при этом останется тот же, но уменьшать корневой раздел будет не нужно.

Для изменения размера файловой системы мы будем использовать утилиту GNU parted.

Загрузитесь в однопользовательском режиме, это важно. Запустите программу parted для уменьшения размера корневого раздела. Ниже приведен пример диалога с утилитой parted:

Изменим размер раздела:

Первое число — это номер раздела (hda3), второе — начало раздела hda3, не меняйте его. Последнее число — это конец раздела. Укажите приблизительно половину текущего размера раздела.

Создадим новый раздел:

Этот раздел будет содержать LVM. Он должен начинаться после раздела hda3 и заканчиваться в конце диска.

Выйдите из утилиты parted:

Перезагрузите систему. Убедитесь, что ваше ядро содержит необходимые установки. Для поддержки LVM должны быть включены параметры CONFIG_BLK_DEV_RAM и CONFIG_BLK_DEV_INITRD.

Для созданного раздела необходимо изменить тип на LVM (8e). Поскольку parted не знает такого типа, воспользуемся утилитой fdisk:

Инициализируем LVM, физический том; создаем группу томов и логический том для корневого раздела:

Создадим теперь файловую систему на логическом томе и перенесем туда содержимое корневого каталога:

Отредактируйте файл /mnt/etc/fstab на логическом томе соответствующем образом. Например, строку:

Создаем образ initrd, поддерживающий LVM:

Внимательно изучите вывод команды. Обратите внимание на имя нового образа и его размер. Отредактируйте файл /etc/lilo.conf. Он должен выглядеть приблизительно следующим образом:

KERNEL_IMAGE_NAME — имя ядра, поддерживающего LVM. INITRD_IMAGE_NAME — имя образа initrd, созданного командой lvmcreate_initrd. Возможно, вам будет нужно увеличить значение ramdisk, если у вас достаточно большая конфигурация LVM, но значения 8192 должно хватить в большинстве случаев. Значение по умолчанию параметра ramdisk равно 4096. Если сомневаетесь, проверьте вывод команды lvmcreate_initrd в строке lvmcreate_initrd — making loopback file (6189 kB).

После этого файл lilo.conf нужно скопировать и на логический том:

Выполните команду lilo:

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

После того как вы убедитесь, что все работает нормально, образ lvm нужно сделать загружаемым по умолчанию. Для этого укажите в конфигурационном файле LILO строку default=lvm, и выполните команду lilo.

Наконец, добавьте оставшийся старый корневой раздел в группу томов. Для этого измените тип раздела утилитой fdisk на 8е, и выполните команды:

[править] Организация корневой файловой системы в LVM для дистрибутива ALT Master 2.2

При установке данного дистрибутива оказалось невозможным разместить корневой раздел в системе LVM. Связано это с тем, как выяснилось позже, что в ядре, поставляемом с данным дистрибутивом, поддержка файловой системы ext2 организована в виде загружаемого модуля. Образ же initrd использует файловую систему romfs, поддержка которой вкомпилирована в ядро. При выполнении команды lvmcreate_initrd генерируется файл-образ initrd с системой ext2. Если после этого вы попытаетесь загрузиться, то получите примерно следующее:

Kernel panic: VFS: Unable to mount root fs on 3a:00

Первое, что вам нужно будет сделать — это скомпилировать ядро со встроенной поддержкой файловой системы ext2, установить его и проверить. После этого снова выполните команду lvmcreate_initrd. Дальнейшие действия зависят от вашей конфигурации. Смонтируйте созданный образ:

И копируйте туда модули, необходимые для работы с вашими дисковыми накопителями и файловыми системами (если они не вкомпилированы в ядро). Так, для системы с RAID-контроллером ICP-Vortex и корневой файловой системой reiserfs нужны модули: gdth.o mod_scsi.o sd_mod.o reiserfs.o. Добавьте их загрузку в файл /mnt/initrd/linuxrc.

Обратите внимание на оставшееся свободное место на образе:

Filesystem Size Used Avail Use% Mounted on . /boot/initrd-lvm-2.4.20-inp1-up-rootlvm

В файловой системе должно быть свободно еще 200-300Кб, в зависимости от вашей LVM-конфигурации. Если же у вас ситуация похожа на приведенную в листинге, будет необходимо создать новый образ, с большим размером файловой системы и повторить операции добавления модулей.

Наконец, отмонтируйте образ, сожмите его, запустите программу lilo и перезагрузитесь:

[править] Заключение

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

[править] Дополнительные вопросы по LVM

[править] Дисковые разделы и LVM внутри LVM

LVM может находиться рекурсивно внутри логического тома LVM.

Например, пусть есть три логических тома: LV1, LV2 и LV3. Один из которых, LV2 разбит на разделы, каждый из которых является физическим томом LVM, который в свою очередь объединены в группу томов, на которых созданы логические тома и так далее.

Такая ситуация очень легко может возникнуть при использовании виртуальных машин, например в том случае, если том LV2 выдан как диск виртуальной машине Xen или эмулятору QEMU.

Может возникнуть необходимость залезть внутрь системы томов, которые установлены внутрь логического тома. Например, это может произойти в случае, когда виртуальная машина (в результате сбоя или по какой-то другой причине), не загружается, а нужно добраться до её данных (напомним, что всё это при условии, что LVM используется не только снаружи, то есть в домене 0, но и внутри, то есть в домене U).

Решение, если говорить кратко, заключается в том, чтобы использовать kpartx из пакета multipath-tools, которая даёт возможность строить карты устройств (device maps) для разделов.

Далее процедура использования kpartx описывается подробно.

Блочное устройство, внутри которого находятся тома LVM может быть любым, в частности, это может быть том LVM, том EVMS, простой дисковый раздел или физическое устройство.

Убедитесь что пакет multipath-tools установлен:

Посмотрите как выполнено разбинение на разделы:

Создайте карту устройств для блочного устройства:

Карты находятся здесь:

Имена выглядят несколько странно, но вообще это нормально.

Можно попробовать смонтировать раздел:

В данном случае была смонтирована корневая файловая система виртуальной машины:

Аналогичным образом монтируем остальные разделы:

С разделами можно работать как обычно.

По завершению работы нужно

  • размонтировать разделы;
  • удалить карты устройств.

Размонтировать разделы и удалить карту устройств особенно важно, если эти разделы принадлежат какой-либо виртуальной машине, которую вы собираетесь запускать.

При условии что разделы находятся не на блочном устройстве, а в обычно файле, сначала нужно воспользоваться программой losetup.

В данном примере loop0 это первое свободное loopback-устройство, но возможно, что оно будет занято, и тогда вместо loop0 нужно будет использовать loopX с более выскоим номерм X:

Можно монтировать, копировать, восстанавливать, форматировать эти разделы, короче, делать с ними всё, что делается с обычными дисковыми разделами.

С одной стороны при таком подходе:

  • не нужно вручную подключать loopback-устройства;
  • не нужно использовать kpartx;

Но с другой стороны:

  • это решение позволяет смонтировать только простые разделы, размещённые внутри тома LVM.

Если внутри логического тома выполнено другое разбиение, такой подход не поможет.

Если внутри тома находится расширенный раздел, подход работает, но требует дополнительных манипуляций:

Найти начало интересующего раздела можно путём умножения значения поля Start (показанного fdiks) на 512.

Если мы хотим смонтировать корневой раздел:

[править] Создание зашифрованных томов LVM

Пример создания зашифрованного тома:

  • How to set up an encrypted filesystem in several easy steps (англ.)
  • Resizing Encrypted Filesystems (англ.)
  • How To Migrate to a full encrypted LVM system (англ.)

[править] Сравнение LVM и ZFS

На первый взгляд такое сравнение может показаться странным, ведь ZFS ­— это файловая система, а LVM ­— система для управления томами, то есть нечто, что находится на уровень ниже файловой системы.

В действительности, сравнение вполне имеет право на существование, поскольку ZFS это не просто файловая система, а нечто большее. В ней присутствует уровень «storage pool», который берёт на себя те же задачи, что и LVM.

В таком случае возникает вопрос, а какую функциональность ZFS может дать сама, без применения LVM, и если что-то она делает лучше, то что именно?

[править] Восстановления LVM после сбоя

  • Recover Data From RAID1 LVM Partitions With Knoppix Linux LiveCD (англ.)
  • LVM Recovery Tale (англ.)
  • Recovery of RAID and LVM2 Volumes (англ.)

[править] Слияние LVM

В августе 2008 появился патч для ядра Linux, который позволяет делать слияние снимка и тома: изменения, которые делаются на снимке, при желании можно перенести на том. Снимок при этом перестаёт существовать.

Начиная с ядра 2.6.33 [1] необходимый код присутствует в составе ядра Linux. Для того чтобы использовать его, необходим пакет LVM версии не менее 2.02.58 [2].

После выполнения этой команды изменения, сделанные в снимке lv1_snap будут перенесены в родительский том /dev/VG0/lv1, а снимок перестанет существовать.

  • http://kerneltrap.org/Linux/LVM_Snapshot_Merging
  • Merging Snapshot Volumes (англ.)

[править] Thin Provisioning

Начиная с 2012 года (полноценно с ядра Linux 3.4; май 2012) LVM поддерживает такую возможность как thin provisioning. Это возможность использовать какое-либо внешнее блочное устройство в режиме только для чтения как основу для создания новых логических томов LVM. Такие разделы при создании уже будут выглядеть так будто они заполнены данными исходного блочного устройства. Операции с томами изменяются налету таким образом, что чтение данных выполняется с исходного блочного устройства (или с тома если данные уже отличаются), а запись — на том.

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

  • New LVM2 release 2.02.89: Thinly-provisioned logical volumes (англ.)
  • https://github.com/jthornber/linux-2.6/blob/thin-stable/Documentation/device-mapper/thin-provisioning.txt (англ.)

[править] Поддержка LVM в NetBSD

В 2008 году в NetBSD появилась [1] начальная поддержка LVM.

Та часть, которая интегрируется в ядро, была написана с нуля и распространяется по лицензии BSD. Другая (большая) часть, которая работает в пространстве пользователя (userland), взята из Linux и осталась под лицензией GPL.

Пока что не работают такие вещи как создание снимков (snapshots), не работает pvmove и нет возможности совместной работы с LVM в кластере, как это можно делать с помощью CLVM (однако, использовать независимые логические тома в кластере, конечно же, можно).

  • How to use lvm on NetBSD (англ.)
  • The NetBSD Logical Volume Manager (англ.)
  • LVM Volume Manager on NetBSD (англ.) — пример использования LVM в NetBSD

[править] Работа с LVM в FreeBSD

Для монтирования LVM с EXT2/EXT3 файловой системой необходимо скомпилировать ядро с поддержкой EXT2FS:

либо добавить /boot/loader.conf строку:

Если после перезагрузки сервера необходимости в подключении данного диска не будет, тогда достаточно просто подгрузить модуль ядра kldload ext2fs

Для подключения LVM разделов необходимо перекомпилировать ядро с опцией:

либо добавить /boot/loader.conf

вручную можно произвести загрузку следующим образом

посмотреть результат (пример):

в /etc/fstab прописать следующим образом:

PS: Для монтирования LVM-раздела с другой FS, отличной от EXT2/EXT3 необходимо перекомпилировать ядро или загрузить соответствующие данной ФС модули ядра.

[править] Работа с LVM в Windows

LVM это чуждая для Windows система, и её поддержка в Windows отсутствует. Не предполагается, что вы будете работать с LVM из-под Windows. Однако, в некоторых случаях такая потребность всё же может возникнуть:

  • В случае, когда у вас на компьютере установлено две системы (dual boot), одна из которых Linux, а вторая Windows;
  • В случае, когда на переносном диске у вас LVM, внутри ценные файлы, а рядом только Windows-машины.

Программа Virtual Volumes позволяет обращаться к логическому тому LVM изнутри Windows-машины. Программа находится в процессе разработки. Пока она имеет некоторые ограничения.

  • http://www.chrysocome.net/virtualvolumes (англ.)

[править] Альтернативы LVM

LVM сегодня — это главная система управления томами, существующая в Linux. Раньше главным её конкурентом считалась система EVMS, но затем, после того как LVM была включена в ядро, а EVMS нет, конкуренция закончилась в пользу LVM.

Сейчас главными конкурентами LVM можно считать файловые системы с возможностями систем управления томами, такие как btrfs и ZFS [2] .

Кроме этого существует система Zumastor, которая отличается от LVM лучшей поддержкой управления снимками (snapshotting) и удалённой репликацией. Особенно печальным для LVM создатели Zumastor считают следующий факт: если в LVM сделать много снимков с одного тома, а потом в оригинальном томе изменить какой-то блок, то оригинальная информация будет копироваться теперь для каждого снимка [3] . Можно представить, какая будет производительность и расточительность при записи в оригинальный том, особенно в случае большого количества снимков с него. Большим недостатком Zumastor является то, что его развитие приостановлено несколько лет назад [4] .

Проблема неэффективных снапшотов в LVM считается одной из важнейших проблем LVM на сегодняшний день и работа по её устранению относится к одной из наиболее приоритетных [5] . Другой приоритетной задачей является поддержка снапшотов бесконечной глубины, то есть, возможность создания снапшотов со снапшотов [6] . Другие попытки решить эту задачу: [4], [5].

[править] Графические инструменты администрирования LVM

Есть несколько графических инструментов, помогающих использовать LVM. В частности:

  1. LVM GUI Project [7] ;
  2. system-config-lvm.

Первый уже давно не развивается. Второй является основным графическим инструментом для администрирования LVM в Redhat-подобных дистрибутивах. Он может быть установлен и в других. Например, в Debian [8] :

Вызвать его можно командой:

  • Using the LVM utility system-config-lvm (англ.) — подробно об использовании system-config-lvm

[править] Ограничение скорости доступа к LVM-томам

Ограничение делается на уровне cgroup:

В качестве X:Y используются мажорный и минорный номер соответствующего тома.

What does mdadm's "spare" number mean?

I created a mdadm-based RAID 5 from six hard drives using the following command:

I expected the array to have one hot spare, namely /dev/sdg1. However, checking mdadm —detail shows 2 spares:

Also, the array size as shown by df is 2 TB, which would correspond to only four of my 500 GB drives being used.

So what exactly is the semantics of —spare-devices ? The man page states that it «Specif[ies] the number of spare (eXtra) devices in the initial array.», but that does not seem to be the case here.

2 Answers 2

That output is correct. You created an RAID 5 with 5 disks ( only 4 of these will be «used» for space). And you added a extra spare drive.

So you actually have a RAID 5 that allow one disk failure + a extra spare drive.

If what you want is actually RAID 5 with 6 disks and have the space of 5 disks then you need to change your command to:

But in this case you can tolerate only one disk failure as per the specs of RAID 5.

EDIT: Adding the link from the official raid page: You can see a raid 5 with 6 disks and it states spare=1: Initial Array Creation

UPDATE: I decided to create a raid 5 in my system and the spare value disappears once the array is in a clean state:

So it is as the OP comment, during initial raid 5 creation it has the spare drive until the raid build/sync is completed.

For the sake of clarity, I’ll aggregate the information given by derobert and Alexandre Alves and some further testing of mine here:

mdadm ‘s —spare-devices parameter does work as the man page states, i.e. it defines the number of «hot spare» drives in an array. A «hot spare», as in normal RAID terminology, does not have anything to do with the extra drives present in a RAID 5 or RAID 6 array — it is an extra drive meant to take over as soon as a drive in the array has failed.

The number of spare drives is given at array creation time. Later, it can be checked using #mdadm —detail —scan .

However, during the brief period of the initialization of a mdadm-based RAID 5, there is an optimization, described in https://raid.wiki.kernel.org/index.php/Initial_Array_Creation, that makes an additional spare drive appear in the output of that command:

«For raid5 there is an optimisation: mdadm takes one of the disks and marks it as ‘spare’; it then creates the array in degraded mode. The kernel marks the spare disk as ‘rebuilding’ and starts to read from the ‘good’ disks, calculate the parity and determines what should be on the spare disk and then just writes to it.»

After array initialization has finished, the number of spares reported goes back to the number selected at creation time.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *