Расширение диска или раздела linux

Создание разделов

Рассмотрим пример создания томов из дисков sdb и sdc с помощью LVM.

1. Инициализация

Помечаем диски, что они будут использоваться для LVM:

pvcreate /dev/sdb /dev/sdc

* напомним, что в качестве примера нами используются диски sdb и sdc.

Посмотреть, что диск может использоваться LMV можно командой:

pvdisplay

В нашем случае мы должны увидеть что-то на подобие:

  «/dev/sdb» is a new physical volume of «1,00 GiB»
  — NEW Physical volume —
  PV Name               /dev/sdb
  VG Name               
  PV Size               1,00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               rR8qya-eJes-7AC5-wuxv-CT7a-o30m-bnUrWa
   
  «/dev/sdc» is a new physical volume of «1,00 GiB»
  — NEW Physical volume —
  PV Name               /dev/sdc
  VG Name               
  PV Size               1,00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               2jIgFd-gQvH-cYkf-9K7N-M7cB-WWGE-9dzHIY

* где 

  • PV Name — имя диска. 
  • VG Name — группа томов, в которую входит данный диск (в нашем случае пусто, так как мы еще не добавили его в группу).
  • PV Size — размер диска.
  • Allocatable — распределение по группам. Если NO, то диск еще не задействован и его необходимо для использования включить в группу.
  • PE Size — размер физического фрагмента (экстента). Пока диск не добавлен в группу, значение будет 0.
  • Total PE — количество физических экстентов.
  • Free PE — количество свободных физических экстентов.
  • Allocated PE — распределенные экстенты.
  • PV UUID — идентификатор физического раздела.

2. Создание групп томов

Инициализированные на первом этапе диски должны быть объединены в группы.

Группа может быть создана:

vgcreate vg01 /dev/sdb /dev/sdc

* где vg01 — произвольное имя создаваемой группы; /dev/sdb, /dev/sdc — наши диски.

Просмотреть информацию о созданных группах можно командой:

vgdisplay

На что мы получим, примерно, следующее:

  — Volume group —
  VG Name               vg01
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1,99 GiB
  PE Size               4,00 MiB
  Total PE              510
  Alloc PE / Size       0 / 0   
  Free  PE / Size       510 / 1,99 GiB
  VG UUID               b0FAUz-wlXt-Hzqz-Sxs4-oEgZ-aquZ-jLzfKz

* где:

  • VG Name — имя группы.
  • Format — версия подсистемы, используемая для создания группы.
  • Metadata Areas — область размещения метаданных. Увеличивается на единицу с созданием каждой группы.
  • VG Access — уровень доступа к группе томов.
  • VG Size — суммарный объем всех дисков, которые входят в группу.
  • PE Size — размер физического фрагмента (экстента).
  • Total PE — количество физических экстентов.
  • Alloc PE / Size — распределенное пространство: колическтво экстентов / объем.
  • Free  PE / Size — свободное пространство: колическтво экстентов / объем.
  • VG UUID — идентификатор группы.

3. Создание логических томов

Последний этап — создание логического раздела их группы томов командой lvcreate. Ее синтаксис:

lvcreate <имя группы томов>

Примеры создания логических томов:

lvcreate -L 1G vg01

* создание тома на 1 Гб из группы vg01.

lvcreate -L50 -n lv01 vg01

* создание тома с именем lv01 на 50 Мб из группы vg01.

lvcreate -l 40%VG vg01

* при создании тома используется 40% от дискового пространства группы vg01.

lvcreate -l 100%FREE -n lv01 vg01

* использовать все свободное пространство группы vg01 при создании логического тома.
* также можно использовать %PVS — процент места от физического тома (PV); %ORIGIN — размер оригинального тома (применяется для снапшотов).

Посмотрим информацию о созданном томе:

lvdisplay

  — Logical volume —
  LV Path                /dev/vg01/lv01
  LV Name                lv01
  VG Name                vg01
  LV UUID                4nQ2rp-7AcZ-ePEQ-AdUr-qcR7-i4rq-vDISfD
  LV Write Access        read/write
  LV Creation host, time vln.dmosk.local, 2019-03-18 20:01:14 +0300
  LV Status              available
  # open                 0
  LV Size                52,00 MiB
  Current LE             13
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  — currently set to     8192
  Block device           253:2

* где:

  • LV Path — путь к устройству логического тома.
  • LV Name — имя логического тома.
  • VG Name — имя группы томов.
  • LV UUID — идентификатор.
  • LV Write Access — уровень доступа.
  • LV Creation host, time — имя компьютера и дата, когда был создан том.
  • LV Size — объем дискового пространства, доступный для использования.
  • Current LE — количество логических экстентов.

Динамическое изменение размера разделов

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

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

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

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

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

ВНИМАНИЕ! Шаги 2 и 3 очень часто путают местами, что приводит к потере данных, хранящихся на логическом томе.

Делается это все так:

1. Размонтируем файловую систему: umount /dev/fileserver/samba

2. Уменьшаем размер файловой системы. Для этого сначала сделаем проверку самой файловой системы. Утилита resize2fs не даст изменить размер до выполнения проверки. Конечно, у нее есть ключ -f, который заставит ее это сделать, но лучше перестраховаться и все-таки выполнить проверку:

# fsck.ext4 -f /dev/fileserver/samba
 e2fsck 1.41.5 (23-Apr-2009)
 Pass 1: Checking inodes, blocks, and sizes
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
 /dev/fileserver/samba: 11/127512 files (0.0% non-contiguous), 26603/512000 blocks
 # resize2fs /dev/fileserver/samba 300M
 resize2fs 1.41.5 (23-Apr-2009)
 Resizing the filesystem on /dev/fileserver/samba to 307200 (1k) blocks.
 The filesystem on /dev/fileserver/samba is now 307200 blocks long

3. ТОЛЬКО после корректного выполнения двух предыдущих шагов уменьшаем размер логического тома:

 # lvreduce -L 300M /dev/fileserver/samba
  WARNING: Reducing active logical volume to 300.00 MB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
  Do you really want to reduce samba? [y/n]: y
  Reducing logical volume samba to 300.00 MB
  Logical volume samba successfully resized

В качестве размера тома (ключ -L), как и в случае с lvextend можно указывать и абсолютные и относительные единицы. Здесь мы также видим страшное предупреждение о потере данных. Несмотря на это (если вы не используете тестовые версии программ), ваши данные будут в целости и сохранности (скорее всего :) , 100% гарантии вам все равно никто не даст).

После этого монтируем файловую систему и смотрим что поменялось:

# mount /dev/fileserver/samba /mnt/data/
# df -h
 Filesystem Size Used Avail Use% Mounted on
 /dev/mapper/fileserver-samba
            291M 11M 266M 4% /mnt/data

Итак, если вы все делаете в указанной последовательности, вашим данным скорее всего ничего не грозит. Но лучше перед уменьшением тома все-таки сделать его резервную копию. Я сам многократно уменьшал физические тома без каких-либо потерь данных, но наличие резервной копии — это наличие резервной копии :).

Создание пула дискового пространства LVM.

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

root@debian:~# ls /dev | grep sd
sda
sda1
sda2
sda5
sdb
sdc
sdd

Следующее, что необходимо сделать, — это установить в систему пакет lvm2, если он еще не установлен.

apt-get install lvm2

После установки пакета можно создавать пул дискового пространства и включать в него физические диски. По  принятой терминологии дисковый пул называют «volume group», то есть группа томов. После установки проверяем, присутствуют ли в системе дисковые пулы:

root@debian:~# vgdisplay
  No volume groups found

Как мы видим, ни одного дискового пула нет, и нам надо создать один. Давайте создадим один дисков пул, назовем его vg_test

root@debian:~# vgcreate vg_test /dev/sdb
  No physical volume label read from /dev/sdb
  Writing physical volume data to disk "/dev/sdb"
  Physical volume "/dev/sdb" successfully created
  Volume group "vg_test" successfully created

И теперь проверим, есть ли у нас так называемые группы томов:

root@debian:~# vgdisplay
  --- Volume group ---
  VG Name               vg_test
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               8.00 GiB
  PE Size               4.00 MiB
  Total PE              2047
  Alloc PE / Size       0 / 0
  Free  PE / Size       2047 / 8.00 GiB
  VG UUID               5erC13-SIU1-Iy9J-qyiM-SHlm-Mv4S-GyB0Il

Пул создан, давайте добавим в него и остальные диски.

root@debian:~# vgextend vg_test /dev/sdc /dev/sdd
  No physical volume label read from /dev/sdc
  No physical volume label read from /dev/sdd
  Writing physical volume data to disk "/dev/sdc"
  Physical volume "/dev/sdc" successfully created
  Writing physical volume data to disk "/dev/sdd"
  Physical volume "/dev/sdd" successfully created
  Volume group "vg_test" successfully extended

Диски добавлены. Теперь можно создавать логические разделы. Для примера создадим директорию /data и примонтируем туда созданный нами логический раздел.

root@debian:~# mkdir /data

root@debian:~# lvcreate --name lv_test1 --size 1G vg_test
  Logical volume "lv_test1" created

root@debian:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_test/lv_test1
  LV Name                lv_test1
  VG Name                vg_test
  LV UUID                5vpTj1-m0bv-oRho-yXpg-vMtl-dCT8-A2BaqN
  LV Write Access        read/write
  LV Creation host, time debian, 2014-04-06 20:59:09 +0400
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

Инициализация LVM

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

%# vgscan
%# vgchange -ay

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

%# vgchange -an

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

Добавление в LVM физических дисков и разделов

Перед использованием диска или раздела в качестве физического тома для LVM его нужно инициализировать.

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

pvcreate /dev/hdb

Для инициализации раздела:

pvcreate /dev/hdb1

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

После инициализации физический том можно будет добавить в группу томов LVM.

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

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

vgcreate vg-vmdisks /dev/md1 /dev/md3

Данная команда создаст новую группу томов с названием vg-vmdisks, расположенную на дисках /dev/md1 и /dev/md3.

Просмотр существующих групп томов LVM

Чтобы просмотреть краткую информацию по зарегистрированным в системе группам томов, достаточно выполнить команду vgs

# vgs
VG #PV #LV #SN Attr VSize VFree
vg-vm-disks 1 3 0 wz--n- 1.72t 1.63t

Получить ту же информацию в развернутой форме можно с помощью команды vgdisplay

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

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

После этого деактивируйте группу томов:

vgchange -a n vm-disks

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

vgremove vm-disks

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

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

%# vgextend vm-disks /dev/hdc1

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

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

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

pvdisplay /dev/md3

--- Physical volume ---
PV Name /dev/md3
VG Name vg-vdisks0
PV Size 1.72 TiB / not usable 1.31 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 451076
Free PE 427268
Allocated PE 23808
PV UUID 4fh0MQ-9VXl-iGnn-OaHw-Y5vl-5vnj-UikpLV

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

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

vgreduce vg-vmdisks /dev/hda1

Перенос данных с физического тома

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

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

Увеличение логического тома LVM

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

Чтобы расширить логический том, воспользуйтесь следующей схемой:

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

pvcreate /dev/нашдиск

1 pvcreatedevнашдиск

 — инициализация диска для lvm

vgextend test /dev/нашдиск 

1 vgextend testdevнашдиск 

— добавление диска в группу томов

Чтобы расширить логический том, воспользуйтесь следующей схемой:

lvextend -L10G /dev/test/test1

1 lvextend-L10Gdevtesttest1

Данным способом вы расширите раздел на 10 Гб.

Еще несколько примеров расширения LVM раздела:

lvextend -L+10G /dev/test/test1

1 lvextend-L+10Gdevtesttest1

 — добавите 10 Гб к вашему тому

lvextend -l +100%FREE /dev/test/test1

1 lvextend-l+100%FREEdevtesttest1

 — выделите все нераспределенное пространство в группе test

resize2fs /dev/test/test1

1 resize2fsdevtesttest1

 – для ext4

xfs_growfs /dev/test/test1

1 xfs_growfsdevtesttest1

 – для xfs

Специфика LVM

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

Изменение размера разделов

С помощью gparted вы можете расширять и сжимать разделы, но только если они не используются. LVM может расширять раздел во время когда диск смонтирован, если файловая система, используемая на нём, также поддерживает это (например, обычный ext3/4). При расширении раздела gparted может расширить его только на соседнее свободное пространство, но LVM может использовать свободное пространство в любом месте группы томов, даже на другом диске. При использовании gparted это ограничение часто означает, что вы должны перемещать другие разделы, чтобы освободить место для расширения одного из них, что является очень трудоёмким процессом, который может привести к значительной потере данных в случае сбоя или прерывания работы (отключение электричества).

Перемещение разделов

Перемещение разделов с помощью gparted обычно необходимо только в первую очередь из-за требования, чтобы разделы были физически смежными, поэтому вам, вероятно, никогда не понадобится делать это с LVM. Если вы это сделаете, в отличие от gparted, LVM может перемещать раздел, пока он используется, и не повредит ваши данные, если операция будет прервана. В случае, если ваша система выйдет из строя или потеряет питание во время перемещения, вы можете просто перезапустить операцию перемещения после перезагрузки, и она завершится нормально. Когда я получил свой SSD-накопитель, я просто подключил его, загрузил и попросил lvm переместить мою работающую корневую файловую систему на новый диск в фоновом режиме, пока я продолжал работать. Другая причина, по которой вы можете захотеть переехать, — это заменить старый диск на новый, большего размера. Вы можете перенести систему на новый диск во время его использования, а затем удалить старый.

Много разделов

Если вам нравится тестировать различные дистрибутивы Linux, или просто другие версии Ubuntu, или и то, и другое приводит к созданию довольно большого числа разделов. С обычными разделами msdos (MBR) это становится проблематичным из-за его ограничений (хотя нужно отметить, что с GPT такой проблемы уже нет). С LVM вы можете создать столько логических томов, сколько захотите, и обычно это довольно просто, поскольку обычно у вас остаётся много свободного места. Обычно люди выделяют весь диск на один раздел при первой установке, но, поскольку расширение раздела с помощью LVM настолько простое, для этого нет никаких причин и вы можете начать с создания раздела не в целый диск. Лучше выделить только то, что, по вашему мнению, вам понадобится, а остальное пространство оставить свободным для использования в будущем. Если в конечном итоге исходное выделенное место закончилось, добавление дополнительного пространства к этому тому — это всего лишь одна команда, которая выполняется немедленно, пока система работает в обычном режиме.

Снимки

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

Список команд для работы с LVM

lvchange
Изменить атрибуты логического тома
lvcreate
Создать логический том
lvdisplay
Показать информацию о логическом томе
lvextend
Добавить места в логический том
lvmchange
(команда устарела, её лучше не использовать)
lvmdiskscan
Показать список устройств, которые могут быть использованы как физический том
lvmsadc
Собрать данные об активности использования LVM
lvmsar
Создать отчёт об активности использования LVM
lvreduce
Уменьшить размер логического тома
lvremove
Удалить логический том из системы
lvrename
Переименовать логический том
lvresize
Изменить размер логического тома
lvs
Показать информацию о логическом томе
lvscan
Показать список логических томов во всех группах томов
pvchange
Изменить атрибуты физического тома
pvcreate
Инициализировать физический том для использования в LVM
pvdata
Показать информацию (из метаданных на диске) о физическом томе
pvdisplay
Показать информацию о физическом томе
pvmove
Переместить эстенты с одного физического тома на другой
pvremove
Удалить метку LVM с физического тома
pvresize
Изменить размер физического тома, использующегося в группе томов
pvs
Показать информацию о физическом томе
pvscan
Показать список всех физических томов
vgcfgbackup
Сделать резервную копию конфигурации группы томов
vgcfgrestore
Восстановить из резервной копии конфигурацию группы томов
vgchange
Изменить атрибуты группы томов
vgck
Проверить целостность группы томов
vgconvert
Изменить формат метаданных группы томов
vgcreate
Создать группу томов
vgdisplay
Показать информацию о группе томов
vgexport
Разрегистрировать группу томов в системе
vgextend
Добавить физический том в группу томов
vgimport
Зарегистрировать эскпортированную группу томов в системе
vgmerge
Объединить группы томов
vgmknodes
Создать файлы устройств для групп томов в каталоге /dev/
vgreduce
Удалить физический том из группы томов
vgremove
Удалить группу томов
vgrename
Переименовать группу томов
vgs
Показать информацию о группах томов
vgscan
Выполнить поиск групп томов
vgsplit
Переместить физический том в новую группу томов

Snapshots

When you create a snapshot, you create a new Logical Volume to act as a clone of the original Logical Volume. The snapshot volume initially does not use any space, but as changes are made to the original volume, the changed blocks are copied to the snapshot volume before they are changed, in order to preserve them. This means that the more changes you make to the origin, the more space the snapshot needs. If the snapshot volume uses all of the space allocated to it, then the snapshot is broken and can not be used any more, leaving you only with the modified origin. The lvs command will tell you how much space has been used in a snapshot Logical Volume. If it starts to get full, you might want to extend it with the lvextend command. To create a snapshot of the bar Logical Volume and name it snap, run:

 sudo lvcreate -s -n snap -L 5g foo/bar 

This will create a snapshot named snap of the original Logical Volume bar and allocate 5 GB of space for it. Since the snapshot volume only stores the ares of the disk that have changed since it was created, it can be much smaller than the original volume. I recently used a 5 GB snapshot of a 12 GB Logical Volume holding my Maverick root filesystem and ran an dist-upgrade to Natty on the origin, which only used about 50-60% of the snapshot space.

While you have the snapshot, you can mount it if you wish and will see the original filesystem as it appeared when you made the snapshot. In the above example you would mount the /dev/foo/snap device. You can modify the snapshot without affecting the original, and the original without affecting the snapshot. If you take a snapshot of your root Logical Volume, and then upgrade some packages, or to the next whole distribution release, and then decide it isn’t working out, you can merge the snapshot back into the origin volume, effectively reverting to the state at the time you made the snapshot. To do this, you simply run:

 sudo lvconvert --merge foo/snap 

Note that this requires a more recent version of LVM than ships with Maverick. You can get one from my ppa by running sudo apt-add-repository ppa:psusi/ppa then installing/upgrading the lvm2 package.

If the origin volume of foo/snap is in use, it will inform you that the merge will take place the next time the volumes are activated. If this is the root volume, then you will need to reboot for this to happen. At the next boot, the volume will be activated and the merge will begin in the background, so your system will boot up as if you had never made the changes since the snapshot was created, and the actual data movement will take place in the background while you work.

Реализации

Продавец Представлено в Менеджер тома Распределить где угодно Снимки RAID 0 RAID 1 RAID 5 RAID 10 Тонкая подготовка Ноты
IBM AIX 3.0 (1989) Диспетчер логических томов да да да да Нет да Относится к PE как к PP (физическим разделам), а к LE как к LP (логическим разделам). Не имеет механизма моментальных снимков копирования при записи; создает снимки, замораживая один том зеркальной пары.
Фирма Хьюлет-Паккард HP-UX 9.0 Диспетчер логических томов HP да да да да Нет да
FreeBSD Vinum Volume Manager да да да да да да Быстрая файловая система FreeBSD (UFS) поддерживает моментальные снимки.
FreeBSD ZFS да да да да да да да Файловая система со встроенным управлением томами
NetBSD Диспетчер логических томов да Нет да да Нет Нет NetBSD версии 6.0 поддерживает собственную повторную реализацию Linux LVM. Повторная реализация основана на лицензированном BSD драйвере сопоставителя устройств и использует порт Linux lvm tools в качестве пользовательской части LVM. Нет необходимости поддерживать RAID5 в LVM из-за превосходной подсистемы RAIDFrame NetBSD.
NetBSD ZFS да да да да да да да Файловая система со встроенным управлением томами
Фонд NetBSD, Inc. (2009 г.) bioctl arcmsr Нет Нет да да да да bioctl в NetBSD может использоваться как для обслуживания, так и для инициализации аппаратного RAID, хотя инициализация (через ioctl ) с 2019 года поддерживается только одним драйвером — ; программный RAID поддерживается отдельно через RAIDframe и ZFS
Проект OpenBSD (2007) биоктл софтрейд да Нет да да да да bioctl в OpenBSD может использоваться для обслуживания аппаратного RAID, а также для инициализации и обслуживания программного RAID.
Linux 2.2 Диспетчер логических томов версии 1 да да да да Нет Нет
Linux 2.4 Система управления корпоративным объемом да да да да да Нет
Linux 2.6 и выше Диспетчер логических томов версии 2 да да да да да да да
Linux 2.6 и выше Btrfs да да да да Да (не стабильно) да Нет данных Файловая система со встроенным управлением томами
Силиконовая Графика IRIX или Linux Менеджер томов XVM да да да да да
Sun Microsystems SunOS Менеджер томов Solaris (ранее был Solstice DiskSuite ). Нет Нет да да да да Относится к PV как томам (которые могут быть объединены с примитивами RAID0, RAID1 или RAID5 в большие тома), к LV как мягким разделам (которые представляют собой непрерывные экстенты, размещаемые в любом месте на томах, но не могут охватывать несколько томов), и к VG как диск наборы.
Sun Microsystems Solaris 10 ZFS да да да да да да да Файловая система со встроенным управлением томами
иллюзия ZFS да да да да да да да Файловая система со встроенным управлением томами
Veritas Кросс-ОС Диспетчер томов Veritas (VxVM) да да да да да да Относится к LV как к томам , к VG как к дисковым группам ; имеет PE переменного размера, называемые поддисками, и LE, называемые сплетениями .
Microsoft Windows 2000 и более поздние операционные системы на базе NT Диспетчер логических дисков да да да да да Нет Нет Не имеет понятия PE или LE; может только RAID0, RAID1, RAID5 или объединять разделы диска в большие тома; файловые системы должны охватывать целые тома.
Windows 8 да да Нет да да Нет да Логика более высокого уровня, чем у RAID1 и RAID5 — несколько пространств хранения охватывают несколько дисков разного размера, пространства хранения устойчивы к физическим сбоям с помощью зеркалирования (не менее 2 дисков) или чередующейся четности (не менее 3 дисков), управления дисками и восстановления данных полностью автоматический
Windows 10 Места для хранения да да да да да да да RAID 10 называется зеркалированием диска
Красная шляпа Linux 4.14 и выше Стратис да да Нет Нет Нет Нет да Поддержка RAID запланирована в версии 2.0
яблоко Mac OS X Lion Основная память да Нет Нет Нет Нет Нет Нет В настоящее время он используется в реализации FileVault Lion , чтобы обеспечить полное шифрование диска , а также в Fusion Drive , который представляет собой просто LVG с несколькими PV.

Снимки обрабатываются Time Machine ; Программный RAID предоставляется AppleRAID. Оба находятся отдельно от Core Storage.

List of LV commands

  • lvchange — Change attributes of a Logical Volume.

  • lvconvert — Convert a Logical Volume from linear to mirror or snapshot.

  • lvcreate — Create a Logical Volume in an existing Volume Group.

  • lvdisplay — Display the attributes of a Logical Volume.

  • lvextend — Extend the size of a Logical Volume.

  • lvreduce — Reduce the size of a Logical Volume.

  • lvremove — Remove a Logical Volume.

  • lvrename — Rename a Logical Volume.

  • lvresize — Resize a Logical Volume.

  • lvs — Report information about Logical Volumes.

  • lvscan — Scan (all disks) for Logical Volumes.

See also:

  • Comparison of Linux volume management solutions for Debian users

  • Upstream:
    • https://sourceware.org/lvm2/ — Homepage, mailing list, IRC…

    • https://sourceware.org/lvm2/wiki/ — Wiki

  • RedHat:

    Logical Volume Manager Administration

CategorySystemAdministration CategoryStorage

Откат изменений

  1. Для отката изменений следует перезагрузить компьютер, например, с Live-образа Astra Linux Common Edition (или с отдельного дискового раздела, если такой раздел предусмотрен в системе).
  2. При загрузке со стандартного Live-образа Astra Linux Common Edition понадобится установить пакет lvm2, для чего:
    1. При работе в открытой сети:
      1. Если в сети не настроено автоматическое назначение параметров сетевых подключений, то вручную настроить подключение к сети (в частности, указать в настройках сетевого подключения сервер DNS, например 8.8.8.8) и перезапустить службу сети, чтобы это изменение настройки  вступило в силу;
      2. В файле /etc/apt/sources.list раскомментировать строку с указанием репозитория;
      3. Обновить репозиторий и выполнить установку:

        sudo apt updatesudo apt install lvm2

    2. При работе в закрытой сети выполнить установку пакета lvm2 в соответствии с принятыми в этой сети правилами работы.
  3. Восстановить состояние системы из снимка /dev/astra-vg/lvsnap:

    sudo lvconvert —merge /dev/astra-vg/lvsnap

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

Возможные ошибки

Рассмотрим ошибки, с которыми можно столкнуться при работе с LVM.

Device /dev/sdX excluded by a filter 

Данную ошибку можно встретить при попытке инициализировать диск командой pvcreate.

Причина: либо диск не полностью чист, либо раздел не имеет нужный тип.

Решение: в зависимости от типа проблемы, рассмотрим 2 варианта.

а) если добавляем целый диск.

Удаляем все метаданные с диска командой:

wipefs -a /dev/sdX

* где вместо X (или sdX) подсталвляем имя диска.

б) если добавляем раздел.

Открываем диск с помощью команды fdisk:

fdisk /dev/sdX

* где вместо X (или sdX) подсталвляем имя диска.

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

: p

Задаем тип раздела:

: t

Выбираем номер раздела (например, раздел номер 3):

: 3

Командой L можно посмотреть список всех типов, но нас интересует конкретный — LVM (8e):

: 8e

Сохраняем настройки:

: w

Обзор архитектуры LVM

Исходный менеджер логических томов LVM1, появившийся впервые в RHEL4, был заменен на LVM2, архитектура которого более универсальна.
LVM2 обладает следующими преимуществами:

  • гибкая емкость
  • эффективность хранения метаданных
  • улучшенный формат восстановления
  • новый формат метаданных ASCII
  • атомарные изменения метаданных
  • избыточные копии метаданных

В основе логического тома LVM лежит блочное устройство (раздел или даже целый диск). Устройство инициализируется как физический том LVM.

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

Background

LVM building blocks

Virtual partitions allow addition and removal without worry of whether you have enough contiguous space on a particular disk, getting caught up fdisking a disk in use (and wondering whether the kernel is using the old or new partition table), or, having to move other partitions out of the way.

Basic building blocks of LVM:

Physical volume (PV)
Unix block device node, usable for storage by LVM. Examples: a hard disk, an MBR or GPT partition, a loopback file, a device mapper device (e.g. dm-crypt). It hosts an LVM header.
Volume group (VG)
Group of PVs that serves as a container for LVs. PEs are allocated from a VG for a LV.
Logical volume (LV)
«Virtual/logical partition» that resides in a VG and is composed of PEs. LVs are Unix block devices analogous to physical partitions, e.g. they can be directly formatted with a file system.
Physical extent (PE)
The smallest contiguous extent (default 4 MiB) in the PV that can be assigned to a LV. Think of PEs as parts of PVs that can be allocated to any LV.

Example:

Physical disks

  Disk1 (/dev/sda):
    ┌─────────────────────────────────────┬─────────────────────────────────────┐
    │ Partition1 50 GiB (Physical volume) │ Partition2 80 GiB (Physical volume) │
    │ /dev/sda1                           │ /dev/sda2                           │
    └─────────────────────────────────────┴─────────────────────────────────────┘

  Disk2 (/dev/sdb):
    ┌──────────────────────────────────────┐
    │ Partition1 120 GiB (Physical volume) │
    │ /dev/sdb1                            │
    └──────────────────────────────────────┘
LVM logical volumes

  Volume Group1 (/dev/MyVolGroup/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):
    ┌─────────────────────────┬─────────────────────────┬──────────────────────────┐
    │ Logical volume1 15 GiB  │ Logical volume2 35 GiB  │ Logical volume3 200 GiB  │
    │ /dev/MyVolGroup/rootvol │ /dev/MyVolGroup/homevol │ /dev/MyVolGroup/mediavol │
    └─────────────────────────┴─────────────────────────┴──────────────────────────┘

Note: Logical volumes are accessible at both and . However, recommends the former format for «software and scripts» (e.g. fstab) since the latter is intended for «internal use» and subject to possible «change between releases and distributions».

Advantages

LVM gives you more flexibility than just using normal hard drive partitions:

  • Use any number of disks as one big disk.
  • Have logical volumes stretched over several disks.
  • Create small logical volumes and resize them «dynamically» as they get filled up.
  • Resize logical volumes regardless of their order on disk. It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.
  • Resize/create/delete logical and physical volumes online. File systems on them still need to be resized, but some (such as ext4) support online resizing.
  • Online/live migration of LV being used by services to different disks without having to restart services.
  • Snapshots allow you to backup a frozen copy of the file system, while keeping service downtime to a minimum.
  • Support for various device-mapper targets, including transparent filesystem encryption and caching of frequently used data. This allows creating a system with (one or more) physical disks (encrypted with LUKS) and to allow for easy resizing and management of separate volumes (e.g. for , , , etc.) without the hassle of entering a key multiple times on boot.

Disadvantages

  • Additional steps in setting up the system, more complicated. Requires (multiple) daemons to constantly run.
  • If dual-booting, note that Windows does not support LVM; you will be unable to access any LVM partitions from Windows.
  • If your physical volumes are not on a RAID-1, RAID-5 or RAID-6 losing one disk can lose one or more logical volumes if you span (or extend) your logical volumes across multiple non-redundant disks.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: