Настройка и управление lvm разделами в linux

Задание 3 (Добавление новых дисков и перенос раздела)

Это самое сложное и объемное задание из всех представленных. Очень внимательно проверяйте что вы делаете и с какими дисками и разделами. Рекомендуется снять копию перед его выполнением. Это задание независимо от задания №2, его можно выполнять после задания №1 с поправкой на имена дисков.

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

Для того чтобы вам было проще работать могу рекомендовать не удалять физически диски с хостовой машины, а только лишь отсоединять их в свойствах машины. С точки зрения ОС в ВМ это будет выглядеть абсолютно одинаково, но вы сможете в случае чего подключить диск обратно и продолжить выполнение работы откатившись на пару пунктов назад, в случае если у вас возникли проблемы. Например вы могли выполнить неверно или забыть скопировать на новый диск раздел /boot. Я могу лишь посоветовать несколько раз перепроверять с какими дисками и разделами вы работаете, а еще лучше выписать на листочек соответствие дисков, разделов и «физическому» номеру диска. Красивое и понятное дерево рисует команда , пользуйтесь ей как можно чаще для анализа того что вы сделали и что нужно сделать.

К истории…

Представьте себе что ваш сервер работал долгое время на 2-х ssd дисках, как вдруг…

Работа в debian с lvm

LVM тема обширная и раскрыть ее у меня задача не стоит. В сети все это есть, я сам постоянно пользуюсь поиском. Приведу только несколько команд из своей шпаргалки, которыми я регулярно пользуюсь для создания, подключения и изменения lvm дисков. Команды актуальны для любых дистрибутивов, где есть lvm, не только в Debian.

Допустим, вы подключили 2 новых диска или raid массива к серверу и хотите их объединить в единое адресное пространство. Я расскажу, как это сделать

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

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

В системе у меня один диск /dev/sda, я добавил еще 2 — sdb и sdc.

# lsblk -a
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0                     2:0    1    4K  0 disk 
sda                     8:0    0   20G  0 disk 
├─sda1                  8:1    0  243M  0 part /boot
├─sda2                  8:2    0    1K  0 part 
└─sda5                  8:5    0 19.8G  0 part 
  └─debian10--vg-root 254:0    0 19.8G  0 lvm  /
sdb                     8:16   0   10G  0 disk 
sdc                     8:32   0   10G  0 disk 

Инициализируем диски в качестве физического тома lvm.

# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.

Теперь создадим группу томов, в которую будут входить оба диска.

# vgcreate vgbackup /dev/sdb /dev/sdc
  Volume group "vgbackup" successfully created

В данном случае vgbackup — название созданной группы. Теперь в этой группе томов мы можем создавать разделы. Они в чем-то похожи на разделы обычных дисков. Мы можем как создать один раздел на всю группу томов, так и нарезать эту группу на несколько разделов. Создадим один раздел на всем пространстве группы томов. Фактически, этот раздел будет занимать оба жестких диска, которые мы добавили.

# lvcreate -l100%FREE vgbackup -n lv_full

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

# mkfs -t ext4 /dev/vgbackup/lv_full
# mkdir /mnt/backup
# mount /dev/vgbackup/lv_full /mnt/backup

Проверяем, что получилось.

# df -h | grep /mnt/backup
/dev/mapper/vgbackup-lv_full    20G   45M   19G   1% /mnt/backup

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

Теперь для примера давайте удалим этот раздел и создадим 2 новых, один на 14 Гб, другой на 5 Гб и так же их подключим к системе. Для начала удаляем раздел lv_full, предварительно отмонтировав его.

# umount /mnt/backup
# lvremove /dev/vgbackup/lv_full

Проверяем, что раздела нет.

# lvs

Остался только один — системный. Создаем 2 новых раздела:

# lvcreate -L14G vgbackup -n lv01
# lvcreate -L4G vgbackup -n lv02
# lvs
  LV   VG          Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root debian10-vg -wi-ao---- <19.76g                                                    
  lv01 vgbackup    -wi-a-----  14.00g                                                    
  lv02 vgbackup    -wi-a-----   4.00g       

Дальше так же создаем файловые системы и монтируем новые разделы к серверу. Надеюсь, на конкретных примерах я сумел показать удобство и особенность работы с lvm томами и разделами. Дальше мы продолжим эту тему. При автомонтировании через fstab томов lvm можно использовать их имена вида /dev/mapper/vgbackup-lv_full, а не метки. Эти имена не меняются.

Вот наглядный пример, где можно использовать lvm тома размазанные на несколько дисков. Есть небольшой файловый сервер с 4-мя sata дисками по 4 tb. Нужно было сделать максимально объемное файловое хранилище. Были собраны 2 mdadm raid1. Немного объема ушло на служебные разделы, а потом все, что осталось объединили в единый lvm том и получили шару объемом 6.4 Tb.

Сразу могу сказать, что производительность такой штуки не очень высокая, но зато есть защита от отказа одного из дисков, плюс файловое хранилище нужного объема. Можно было сразу все собрать в raid10, но я сейчас уже не помню, почему от этого отказались. Были какие-то объективные причины, а привел эту ситуацию я просто для примера. Таким образом можно объединять различные разнородные массивы для увеличения суммарного объема одного раздела.

Работа с LVM (шпаргалка)

Вступление / Постановка задачи

Это очень короткая шпаргалка по LVM – основные команды для создания тома.
Имеем виртуальный диск нужно сделать на нем том LVM с возможностью снапшотов (т.к. том не должен занять весь физический диск).

Итак:

Создаем раздел тип раздела

fdisk -l /dev/xvdb

Диск /dev/xvdb: 10.7 ГБ, 10737418240 байт
255 heads, 63 sectors/track, 1305 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe90a3c2f

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/xvdb1               1        1305    10482381   8e  Linux LVM

Создаем физический том

pvcreate /dev/xvdb1

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

vgcreate <имя_группы> /dev/xvdb1

Смотрим какой получился размер у группы томов

число физических экстентов (2558):

~# vgdisplay | grep "Total PE"
  Total PE              2558

размер физического экстента (4,00 MiB):

~# vgdisplay | grep "PE Size"
  PE Size               4,00 MiB

Допустим мы хотим зарезервировать 400Мб под снапшоты, 400Мб = 100 физических экстентов, тогда размер LVM-тома должен быть “Total PE”-100 = 2458.
Создаем LVM-том нужного размера:

lvcreate -l 2458 --name <имя_раздела> <имя_группы>

Узнать есть ли свободное место на физическом томе под снапшоты (400,00 MiB free):

pvscan
  PV /dev/xvdb1   VG mysql   lvm2 [9,99 GiB / 400,00 MiB free]
  Total: 1  / in use: 1  / in no VG: 0 

Уменьшить раздел

Сперва нужно проверить файловую систему на ошибки

e2fsck -f /dev/pve/data

Затем уменьшаем файловую систему на размер, меньший, чем будет раздел в итоге.

resize2fs /dev/pve/data 900G

Потом уменьшаем раздел LVM

lvreduce -L 1000G /dev/pve/data

И наконец, расширяем файловую систему до полного размера раздела

resize2fs /dev/pve/data

Thin LVM

Должны быть установлены thin-provisioning-tools

apt-get -y install thin-provisioning-tools

Создать пул тонких томов:

lvcreate -L 300G --name data pve
lvconvert --type thin-pool pve/data --poolmetadatasize 10G

Проверить chunksize:

lvs -o+chunksize

Создать тонкий том в пуле:

lvcreate -T -V 100G -n thin-volume pve/data

Отобразить все тома включая скрытые

lvs -a

Ключевые моменты в работе тонких томов:
1. При создании тонкого тома дополнительно к исходному тому создаются два скрытых тома под метаданные (один запасной с названием lvol0_pmspare). Если метаданные испортились их можно попробовать восстановить при помощи
2. Для метаданных (информация о выделенных блоках) сохраняется на отдельном томе (который автоматически создается), и когда на нем кончается место, то происходит порча метаданных и файловвых систем на тонких томах (т.к. ошибка записи будет).
3. Thin-LVM поддерживает автоувеличение томов, в том числе и тома metadata (что бы увеличить метадату, нужно что бы были свободные екстенты на vg, по этому под нужно всегда оставлять свободное место на VG!!). Автоувеличение настраивается в /etc/lvm.conf (thin_pool_autoextend)

Enjoy

Как увеличить диск LVM на ProxMox VE 5.4

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

Меняем размер на 70ГБ:

На картинке внизу мы видим что у нас получился новый размер диска:

Ниже видно что размер диска sda изменился и стал 70G. Но sda3 раздел диска остался старого размера.

1. Настройка размера раздела LVM через Gparted

Вот так это будет смотреться если вы в VirtualBox на нашей виртуальной машине в оптический привод вставите iso образ LinuxMint, загрузитесь с него и посмотрите через программу Gparted. Видно что физический том LVM не изменился:

Сразу скажу если у вас есть возможность запустить GParted  как показано выше, то вы можете и отсюда изменить размер sda3 без потерь следующим образом. Выбираете раздел -> sda3 и в меню, затем Edit ->Resize/Move см. ниже:

Смотрим ниже — тянем коричневую полосу до конца чтобы увеличить размер диска proxmox:

Жмем Resize:

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

После выключаем виртуальную машину Proxmox, ставим первой загрузку с жесткого диска -> запускаем виртуальную машину и увидим что размер логической группы pve увеличился на 20G. И после в консоли можно добавить нужный нам размер, например, для логического тома data с помощью команды:

Мы добавили 10G для логического тома data.

2. Увеличение размера LVM Proxmox через треминал

Но бывает так что только через консоль есть возможность изменить размер, и желательно это сделать в самой вирт. машине. Давайте рассмотрим этот вариант. Вернемся к тому что мы добавили нашей виртуальной машине свободного места через VirtualBox, И все выглядит вот так:

Если с LiveCD смотреть то вот так это выглядит:

Итак мы загрузили нашу виртуальную машину Proxmox, зашли на нее по ssh, набрали lsblk, увидели новый размер sda = 70G. Теперь через консоль будем менять размер раздела sda3 а с ним и размер логического тома LMV c именем data:

Первое что нужно сделать это поставить программу parted, это консольная версия программы Gparted:

После успешной установки заходим в parted и выбираем наш диск /dev/sda. Прошу не путать именно /dev/sda:

Далее смотрим наши разделы с помощью команды print:

Cверху на картинке видим что размер нашего lvm диска 42.4 GB и его номер 3. Будем его изменять. Наберем команду resizepart 3 и жмем Enter:

Далее пишем 100%FREE это значит что увеличиваем диск до максимально возможного и жмем Enter:

После выполнения можно снова выполнить команду print и мы увидим новый размер нашего LVM тома который стал 74.6GB:

Далее выходим с помощью команды quit и жмем Enter:

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

Итак на картинке сверху мы видим что размер sda3 раздела стал 69.5G но при этом сам LVM том data мы  увеличить не сможем, а будет выходить ошибка, давайте попробуем все таки увеличить логический том LVM, и проверим:

Мы видим что изменения не применялись т.к. недостаточно свободного места. Если мы загрузимся с LiveCD в нашу виртуальную машину и посмотрим через программу Gparted то увидим следующую картину:

Дело в том что раздел sda3 мы увеличили, но при этом сам LVM физический том остался прежним. Физический LVM том — как следствие и группа LVM занимают старый объем. Чтобы это изменить надо растянуть физический LVM том на все свободное место для этого мы применим команду pvresize /dev/sda3 и жмем Enter:

На нижней картинке размер физического тома изменился мы это видим в сообщении:

Так же мы это заметим если поочередно введем команды pvs (инф. о физических томах),  vgs (инф. о группах LVM). А вот vgs (инф. о логических томах)  показывает старый объем для data  root и swap т. к. нам его еще предстоит изменить.

Вот так теперь отображается в программе Gparted если загрузиться с LiveCD:

Осталось только добавить свободный объем в логический раздел data. Набираем команду:

Наши 20G добавились:

Проверяем изменения вводим поочередно команды:

Видим что для pvs и vgs неизменны параметры, а команда lvs показывает что наш раздел data стал 38.87G мы видим что он увеличился на 20G. Если мы посмотрим предыдущий вывод команды lvs на  снимке, то там видно, что логический том data занимает 18.87G:

В вэб интерфейсе нашей машины мы тоже видим изменения в логическом томе data:

Всем спасибо, рад поделиться опытом.

P.S. Все действия лучше отрабатывайте в виртуальной среде, так как всякое бывает…

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Подключить и примонтировать диск

Расскажу, как подключить и настроить новый физический или виртуальный диск в Debian. У меня в системе есть один диск — /dev/sda. Я подключил к ней новый жесткий диск sdb. Хочу его отформатировать в файловую систему xfs и примонтировать в каталог /mnt/backup.

Разметка диска

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

Создадим один раздел на диске с помощью утилиты cfdisk.

# cfdisk /dev/sdb

Если диск чистый, то вам будет предложено создать таблицу разделов на ней. Я обычно gpt создаю. Дальше через графический интерфейс создайте раздел на весь диск и укажите type — Linux filesystem.

Как закончите, сохраняйте изменения. Вас попросят подтвердить запись, написав yes. Пишите полное слово, не просто y, а именно yes, иначе изменения не будут записаны. Теперь надо обновить таблицу разделов. Иногда система автоматически не видит новые разделы, а требует перезагрузку, чтобы их увидеть. Перезагружаться не обязательно, достаточно запустить программу partprobe.

# partprobe -s

Если ее нет в системе, то установите пакет parted.

# apt install parted

Создание файловой системы ext4, xfs

Раздел на новом диске создали. Теперь его надо отформатировать в файловую систему xfs. Это не родная система для Debian, поэтому нужно поставить отдельный пакет xfsprogs для работы с ней.

# apt install xfsprogs

Создаем файловую систему xfs на новом диске.

# mkfs.xfs /dev/sdb1

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

# mkfs -t ext4 /dev/sdb1

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

# mkdir /mnt/backup
# mount /dev/sdb1 /mnt/backup

Проверяем, что получилось.

# df -h

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

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

/dev/mapper/debian10--vg-root / ext4 errors=remount-ro 0 1
UUID=88c4c0aa-be17-4fd9-b1b7-5c8be142db77 /boot ext2 defaults 0 2
UUID=415236b0-68bd-4f27-8eaf-5e8ab49d98d7 /mnt/backup xfs defaults 0 1

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

Это важно. Если не сделать переход на пустую строку, система не загрузится.

Очень внимательно редактируйте fstab. Ошибка с этим файлом может привести к тому, что система не будет грузиться. Сам сталкивался с этим неоднократно. Я всегда убеждаюсь, что корректно отредактировал fstab перезагрузкой системы. У меня были ситуации, когда файл правился с ошибкой, а потом система не перезагружалась месяцами. Через пол года сделал ребут и система не загрузилась. Это был гипервизор с кучей виртуалок. Было не по себе от такого сюрприза. Оказалось, что была ошибка в fstab, которую оперативно исправил, благо был доступ к консоли. Внимательно за этим следите.

Поясню еще, почему использовали метку диска, а не название диска в системе — /dev/sdb1. Раньше я всегда так и делал. Ну как раньше — лет 7-10 назад. Потом пошли какие-то изменения и стали возникать ситуации, что после добавления новых дисков в систему, менялись системные названия дисков. Когда сталкиваешься с этим впервые — впадаешь в ступор. Вроде только добавил диск в систему, а у тебя все сломалось. То, что было /dev/sdb стало /dev/sdc со всеми вытекающими последствиями. Выход из этой ситуации — использовать метки разделов, а не названия. Метки не меняются.

Создание LVM Linux

Структура LVM состоит из трех слоев:

  • Физический том (один или несколько), Physical Volume (PV)
  • Группа физических томов, Volume Group (VG)
  • Логический том, который и будет доступен программам, Logical Volume (LV)

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

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

Инициализация физических LVM разделов

Сначала определимся с томами, которые будем использовать, допустим это будут /dev/sda6 и /dev/sda7. Инициализировать их для работы LVM можно с помощью команды pvcreate:

Чтобы посмотреть действительно ли были созданы физические тома LVM вы можете использовать команду pvcsan:

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

Здесь PE Size — это размер одного блока LVM, по умолчанию он равен четырем мегабайтам, но это значение можно изменить.

Создание группы разделов LVM

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

С помощью LVM команды vgdisplay вы можете посмотреть созданные группы томов:

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

Теперь все готово, чтобы создать логические LVM разделы. Для этого будем использовать команду lvcreate и создадим логический раздел размером 80 мегабайт, или 20 блоков LVM:

Если вы хотите задать размер в обычных единицах измерения, то необходимо использовать опцию -L. Например, для тех же 80-ти мегабайт:

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

  • B — байты;
  • K — килобайты;
  • M — мегабайты;
  • G — гигабайты;
  • T — терабайты.

Посмотреть список доступных логических разделов LVM можно по аналогии с предыдущими разделами с помощью команды lvdisplay:

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

Как видите, монтирование LVM в Linux ничем не отличается от монтирования обычных разделов.

Вообще говоря, LVM разделы могут быть трех типов:

  • Линейные разделы (Linear Volume)
  • Полосные разделы (Striped Volume)
  • Зеркалированные разделы (Mirrored Volume)

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

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

Для этого нужно задать количество полос записи с помощью опции -i, а также размер полосы опцией -l. Количество полос не должно превышать количества физических дисков. Например:

Зеркалированный том позволяет записывать данные одновременно на два устройства. Когда данные пишутся на один диск, они сразу же копируются на другой. Это позволяет защититься от сбоев одного из дисков. Если один из дисков испортится, то разделы LVM просто станут линейными и все данные по-прежнему будут доступны. Для создания такого раздела LVM Linux можно использовать команду:

Удалить LVM раздел

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

Теперь лишний раздел удален.

Изменение размера LVM тома

Вы можете изменять уже созданные разделы LVM увеличивая или уменьшая их размер

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

Например, LVM увеличим размер диска из 80 до 100 мегабайт:

Также вы можете увеличить размер LVM, использовав знак +:

Точно так же можно выполнить уменьшение LVM раздела с помощью знака -.

Как просто попробовать

Если LVM устанавливается не для дальнейшего использования, а «напосмотреть», то диски и разделы можно заменить файлами. Не понадобятся ни дополнительные диски, ни виртуальные машины. Мы создадим виртуальные накопители и будем с ними работать. Например, можно создать 4 диска по 1 Гбайт, но можно создать другое количество большего или меньшего размера как вам хочется.
Создаем сами файлы, имитирующие устройства:

mkdir /mnt/sdc1/lvm
cd /mnt/sdc1/lvm
dd if=/dev/zero of=./d01 count=1 bs=1G
dd if=/dev/zero of=./d02 count=1 bs=1G
dd if=/dev/zero of=./d03 count=1 bs=1G
dd if=/dev/zero of=./d04 count=1 bs=1G

Создаем loopback устройства из файлов:

losetup -f --show ./d01
losetup -f --show ./d02
losetup -f --show ./d03
losetup -f --show ./d04

Дальше поступаем так же, как если бы ми создавали LVM на реальных дисках

Обратите внимание на названия loop-устройств — они могут отличаться от приведённых здесь.

pvcreate /dev/loop0
pvcreate /dev/loop1
pvcreate /dev/loop2
pvcreate /dev/loop3
vgcreate -s 32M vg /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3
lvcreate -n first -L 2G vg
lvcreate -n second -L 400M vg
...

Создание логического тома

Создадим логический том (прим. jakonda) состоящего в группе томов datastore1, размером 50G, командой:

1
2
3

lvcreate-L50G-njakonda datastore1

Logical volume»jakonda»created

Используемые ключи:-L — Размер логического тома. Используются суффиксы: K (килобайты), M (мегабайты), G (гигабайты), T (терабайты).-n — Название логического тома и принадлежность его к группе томов

Форматируем созданный логический том jakonda в формат ext4:

1 mkfs.ext4devdatastore1jakonda

Создаем каталог и монтируем логический том jakonda в него:

1
2

mkdir-pmntdatastore1jakonda

mountdevdatastore1jakondamntdatastore1jakonda

Отобразить информацию по логическим томам, можно командой (lvdisplay):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

—Logical volume—

LV Pathdevdatastore1jakonda

LV Name jakonda

VG Name datastore1

LV UUID P1rdwe-Cpu5-6Dnj-RWPd-OZOn-NeNi-HeRuAY

LV Write Access readwrite

LV Creation host,time srv-zm,2018-02-14090205+0300

LV Status available

#open

LV Size50,00GiB

Current LE256

Segments1

Allocation inherit

Read ahead sectors auto

-currently setto256

Block device252

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

Увеличим размер логического тома (прим. jakonda) состоящего в группе томов datastore1 на 10Gb, командой:

1
2
3
4

lvextend-L+10Gdevdatastore1jakonda

Extending logical volume datastore1 to60,00GiB

Logical volume jakonda successfully resized

1
2
3
4
5

resize2fsdevdatastore1jakonda

resize2fs1.42.9(4-Feb-2014)

Filesystem atdevdatastore1jakonda  is mounted onmntdatastore1jakonda;on-line resizing required old_desc_blocks=4,new_desc_blocks=4

The filesystem ondevdatastore1jakonda  is now15728640blocks long.

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

Уменьшение логического тома

Операция по уменьшению размера логического тома, возможно только на размонтированном логическом томе, в ином состоянии уменьшить размер логического тома нельзя.

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

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

Выполним уменьшение логического тома (прим. jakonda) состоящего в группе томов datastore1 на 10Gb от текущего размера (60G).

Демонтируем логический том jakonda из системы и проверяем его на наличие ошибок:

1
2

umountdevdatastore1jakonda

e2fsck-fdevdatastore1jakonda

Используемый ключ -f в утилите e2fsck, означает выполнение принудительной проверки, даже если файловая система помечена как чистая

Уменьшаем размер файловой системы логического тома jakonda, командой:

1 resize2fsdevdatastore1jakonda50G

где 50G — это итоговый размер, который мы хотим задать для файловой системы, а не на который мы хотим уменьшить файловую систему.

Теперь уменьшим размер самого логического тома jakonda, командой:

1
2
3
4
5
6
7

lvreduce-L-10Gdevdatastore1jakonda

WARNINGReducing active logical volume to50,00GiB.

THIS MAY DESTROY YOUR DATA(filesystem etc.)

Do you really want to reduce datastore1jakonda?yny

Size of logical volume datastore1acronis changed from60,00GiB(287744extents)to50,00GiB(262144extents).

Logical volume datastore1jakonda successfully resized.

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

1
2

mountdevdatastore1jakonda

mountdevdatastore1jakondamntdatastore1jakonda

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

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

Размонтируем логический том (прим. jakonda) из группы томов datastore1 и выполняем его удаление:

2

4
5
6

Do you really want to remove and DISCARD active logical volume jakonda?yny

Logical volume»jakonda»successfully removed

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

Снапшоты

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

Примеры использования

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

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

Поддержка архивных копий файлов в Samba

Создание и удаление

Большинство команд требуют прав суперпользователя.

Как уже отмечалось, LVM строится на основе разделов жёсткого диска и/или целых жёстких дисков. На каждом из дисков/разделов должен быть создан физический том (physical volume). К примеру, мы используем для LVM диск sda и раздел sdb2:

pvcreate /dev/sda
pvcreate /dev/sdb2

На этих физических томах создаём группу томов, которая будет называться, скажем, vg1:

vgcreate -s 32M vg1 /dev/sda /dev/sdb2

Посмотрим информацию о нашей группе томов:

vgdisplay vg1

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

Теперь в группе томов можно создать логические тома lv1 и lv2 размером 20 Гбайт и 30 Гбайт соответствено:

lvcreate -n lv1 -L 20G vg1
lvcreate -n lv2 -L 30G vg1

Теперь у нас есть блочные устройства /dev/vg1/lv1 и /dev/vg1/lv2.

Осталось создать на них файловую систему. Тут различий с обычными разделами нет:

mkfs.ext4 /dev/vg1/lv1
mkfs.reiserfs /dev/vg1/lv2

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

Ускорение дисковой подсистемы Qemu KVM в Linux +35

  • 25.03.20 02:48


inetstar

#493696

Хабрахабр


Tutorial

8900

Блог компании RUVDS.com, Высокая производительность, Виртуализация, Настройка Linux, Накопители

Иногда я берусь за различные задачи по настройке серверов. Некоторое время назад ко мне обратился владелец небольшой хостинговой компании, с интересной проблемой. Он хотел бы на своих серверах, где уже стоял Ubuntu 18.04, запускать виртуальные машины с Windows под KVM.
Однако проведённое им тестирование показало, что дисковая система KVM прилично отставала от показателей, которые у него были под Hyper-V. Он хотел раскочегарить qemu на своих Ubuntu серверах, чтобы избежать закупок дорогих серверных лицензий Windows (бесплатная версия Microsoft Hyper-V Server не устраивала из-за своих ограничений).

0. Диспозиция

Windows 10 LTSC Hyper-V
2 CPU
KVM
2 CPU

О размере тестового файла для CrystalDiskMarkВнимательный читатель может заметить, что использовались разные по размеру области для тестирования от 100МБ до 4ГБ. Дело в том, что размер области очень влияет на время выполнения теста: чем больше область, тем длиннее шёл тест.
Однако, так как каждый раз виртуальная машина запускалась заново, кеш Windows сбрасывался и не оказывал влияние на результаты. Результаты для области 100МБ и 4ГБ отличались в пределах погрешности, но время было в 40 раз больше.
Тестирований за время настройки было проведено огромное количество, чтобы задача не затянулась на месяцы, основная часть испытаний была проведена с областями размером 100МБ-1ГБ. И только решающие испытания были проведены с областями 4ГБ.

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

<iothreads>1</iothreads>
<disk type=’block’ device=’disk’>
<driver name=’qemu’ type=’raw’ cache=’none’ io=’threads’ iothread=’1′/>
<source dev=’/dev/win/terminal’/>
<target dev=’vda’ bus=’virtio’/>
<boot order=’2’/>
<address type=’pci’ domain=’0x0000′ bus=’0x04′ slot=’0x00′ function=’0x0’/>
</disk>

7. Результаты после применения всех твиков

Hyper-V
2 CPU
KVM
2 CPU
KVM
4 CPU
KVM из коробки
2 CPU
KVM после твиков
2 CPU

Основные элементы успехаЗамеченные ошибки направляйте в личку. Повышаю за это карму.

Благодарности

За изображение спасибо TripletConcept. Его лучше смотреть в полном размере в отдельном окне.
За разрешение поделиться рабочими материалами — st_neon
RUVDSЗамеченные ошибки направляйте в личку. Повышаю за это карму.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

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