Объединить два диска в один centos
Необходимо объединить несколько существующих разделов в один без потери информации. Такое может случиться, если заранее не был задействован LVM, а необходимо расширить пространство, например, для торрентов.
Установка parted в Linux
Обновите набор по на сервере и установите пакет parted с помощью менеджера пакетов вашего дистрибутива Linux. Для CentOS 8 с менеджером пакетов dnf (который заменил yum), можете установить parted из базового репозитория командой:
Или в Debian/Ubuntu:
Чтобы проверить версию утилиты, выполните команду:
Чтобы попасть в саму оболочку, введите:
инструменты
Во-первых, давайте изменим границы (раздел), чтобы убедиться, что в конце нашего раздела нет данных.
Теперь для fdisk мы можем сделать:
Помните, что разделы - это просто границы для данных. Удаление раздела не приведет к удалению базовых данных. Они как указатели на языке программирования без сбора мусора. К счастью, благодаря вашему выводу из fdisk -l у нас есть границы (расположение указателей) для вашего раздела!
Это где есть возможность потери данных. Я не несу ответственности за удаление очень важных вещей с /disk1 без резервного копирования. Перед выполнением этого шага сделайте резервную копию всего, что вам нужно, в двух местах
Давайте удалим ваш раздел
И воссоздать его с (сокращенными) границами
А затем мы создадим еще один раздел, который мы сможем использовать позже со всем нашим новым свободным пространством, которое мы сделали
Наши новые разделы настроены, и мы можем перейти к следующему шагу
Здорово! Сложная часть сделана. Ваш вопрос - одна из замечательных особенностей LVM, и почему он так часто используется (объединение разделов даже на отдельных дисках!)
Итак, что мы пытаемся сделать, это увеличить логический том, который является /dev /mapper /vg_hadoop1-lv_root. Для этого нам нужно достаточно места в нашей группе томов, чтобы расти! Мы можем сделать это, добавив физический том в нашу группу томов.
Итак, сначала мы создадим физический том из нашего нового раздела, чтобы он мог быть распознан LVM, а затем добавлен в группу томов. Мы делаем это с .
LVM может добавлять любые физические тома в любые группы томов, поэтому мы добавим их в наш hadoop, который мы нашли из вывода
Итак, мы знаем, что хотим vg_hadoop1. Мы добавим наш новый физический том в эту группу томов с .
Теперь, когда он добавлен, мы запускаем быструю команду для изменения размера текущего логического тома.
Параметр -L для lvextend довольно полезен и может принимать различные данные. Мы используем + почти как двоичный оператор + = во многих языках программирования. Мы говорим "новый размер = текущий размер + 4,5G"
Теперь, когда все сказано и сделано, у нас есть две файловые системы, размер которых не совпадает с объемом, на котором они находятся. Для файловой системы ext2/3/4fs [наиболее распространенной] (которую я обновлю, когда у нас будет вывод fdisk -l, чтобы сообщить нам, какую файловую систему вы используете), мы можем изменить файловую систему, чтобы она соответствовала размеру раздела :
Возможно, вам придется перемонтировать root, чтобы увидеть новый размер. Мы могли бы также смонтировать /disk1 обратно. сделать это с:
Давайте удостоверимся, что все работает, используя df (без диска), и что все имеет правильный размер.
Как только я получу вывод этих двух команд, я обновлю этот вопрос, так что вы можете быть вдвойне уверены, что все правильно, прежде чем выполнять.
ВАЖНО! Часть проблем можно было б избежать, если добавлять дисковое пространство ВМ не просто увеличив размер виртуального диска, а добавлением нового HDD. Так как я сразу до этого не додумался, а обратно место уже не забрать, описываю вариант с обычным изменением размера диска.
ВАЖНО! Перед началом работ не забыть сделать backup на другом/внешнем носителе: информация и /etc/fstab
Итак начнем (все команды выполняются с правами root):
Проведем инвентаризацию имеющейся ВМ:
Из этого видно, что важный раздел находится на /dev/sda6, HDD имеет размер 6442 МБ и /dev/sda6 вовсе не LVM
(именно это досадное недоразумение и послужило причиной написания статьи)
Увеличим размер HDD через менеджера ВМ и сравним результаты:
Получили, что размер /dev/sda вырос до 8589 МБ, но больше нигде никаких изменений нет, следовательно необходимо создать раздел в этой свободной области. Сразу же возникает вопрос: А, собственно, как это делать? Поразмышляв и пошустрив интернет пришел к использованию GParted Live CD (есть USB, PXE и HDD). Качаем образ, подсовываем его ВМ (у меня в vmware при перезагрузке машины надо было успеть зайти в виртуальный биос по F2 и поставить boot from cd на первое место). При загрузке Gparted в графическом режиме сразу же открывается окошко с вашим HDD и разделами на нём, выделяем раздел sda4 (он является вспомогательным для доступа к остальным разделам), жмякаем изменить размер и растягиваем до упора Есть отдельная кнопочка “применить изменения”, нажимаем её, ждем успешного завершения и выходим с перезагрузкой.
Итак, теперь у нас доступно место для создания раздела, приступим:
Итак, мы готовы начинать создавать LVM раздел, проверим еще раз:
Убедились, что /dev/sda7 является Linux LVM разделом, преобразуем раздел /dev/sda7 в физический том, чтобы LVM мог использовать его:
Создаем логическую группу томов с именем important_vg (имя можно любое) и добавляем в неё один физический том:
Теперь создаем логический раздел с именем important из всего свободного места в группе:
можем посмотреть все, что у нас получилось командами: pvdisplay, vgdisplay и lvdisplay.
Теперь мы имеем логический раздел с удобным именем (не безликое sda7), следовательно надо узнать как нам к нему теперь обращаться:
Этот вывод команды ls говорит о следующем: в папке /dev создался каталог с названием нашей группы important_vg, внутри которого создался файл important, который в свою очередь является ссылкой на /dev/mapper/important_vg-important, таким образом обращаться к разделу можно как /dev/important_vg/important, так и /dev/mapper/important_vg-important (далее используется 2 вариант)
Далее создаем файловую систему в нашем свеженьком разделе с именем very_important:
и по новой примонтируем все, что прописано в fstab:
На самом деле, на реальной машине возникли ошибки, что раздел занят и не может быть отмонтирован, мне было лень искать блокирующие дескрипторы, поэтому перекрестившись:
У кого же не возникло проблем/перезагрузка прошла удачно продолжаем:
Теперь раздел готов, и мы можем передвинуть туда все данные. Для этого создадим новую папку, куда примонтируем старый раздел с Важной Информацией:
Попрощаемся с разделом /dev/sda6, больше мы его таким не увидим и отмонтируем его:
Теперь стоит задача создать физический том LVM, добавить его в группу и расширить логический раздел.
Преобразуем том в LVM тип так же как и /dev/sda7:
Создаем физический том:
Добавляем в группу:
Теперь самое время поговорить о команде vgdisplay:
Cur PV сообщает, что эта группа состоит из 2 физических томов, VG Size сообщает о размере группы и Free PE / Size говорит о том, что в группе есть свободное место, не занятое никаким разделом. Как раз таки его и надо присоединить к разделу /dev/mapper/important_vg-important:
Ну и на последок исправим файловую систему ext3 после увеличения размера раздела:
04.02.2020
VyacheslavK
CentOS, Linux
комментария 4
LVM (Logical Volume Manager) – подсистема операционных систем Linux, позволяющая использовать разные области физического жесткого диска или разных жестких дисков как один логический том. LVM встроена в ядро Linux и реализуется на базе device mapper.
Главные преимущества LVM – высокий уровень абстракции от физических дисков, гибкость и масштабируемость. Вы можете на лету изменять размер логического тома, добавлять (и удалять) новые диски. Для LVM томов поддерживается зекалирование, снапшоты (persistent snapshot) и striping (расслоение данных между несколькими дисками с целью увеличения производительности).
В данной статье мы рассмотрим использование LVM разделов на примере Linux CentOS 8, покажем процесс объединения двух дисков в одну группу LVM, посмотрим как создавать группы, тома, монтировать, расширять и уменьшать размер LVM разделов.
Прежде всего нужно разобраться с уровнями дисковых абстракций LVM.
- Physical Volume (PV) – физический уровень. Физические диски инициализируются для использования в LVM.
- Volume Group (VG) – уровень группы томов. Инициализированные диски объединяются в логические группы с именем.
- Logical Volume (LV) — создается логический том на группе томов, на котором размещается файловая система и данные.
Уменьшение LVM томов
LVM позволяют уменьшать размер тома. Но для безопасности умеьшения размера раздела его нужно отключить.
Отмонтируем том от директории:
Выполним проверку диска:
e2fsck -fy /dev/test/test1
Уменьшим раздел файловой системы на 4 Гб:
Теперь уменьшим размер самого LVM тома:
lvreduce -L-4G /dev/test/test1
После чего, нужно примонтировать том обратно и проверить текущий размер:
Как видим, размер уменьшился до 4 Гб.
LVM: создание файловой системы, монтирование логического тома
Чтобы создать файловую систему на логическом томе, воспользуйтесь утилитой mkfs:
Создадим файловую систему ext4 на LVM томе:
Файловая система была создана без ошибок.
Теперь создадим тестовую директорию и примонтируем логический том к данной директории:
Как видите, все прошло без ошибок и теперь директория /var/www/home существует как отдельный раздел.
Чтобы логический том монтировался при загрузке системы, нужно добавить его в fstab и назначить директорию для монтирования.
Откроем файл:
nano /etc/fstab
И добавим в него следующую информацию:
После чего примонтировать том можно будет через mount -a:
Чтобы проверить общую информацию по дискам, разделам и томам, введите команду lsblk:
Как видим, наш созданный том отображается, и указана директория к которой он примонтирован.
Команда lvmdiskscan позволяет просканировать доступные диски, показывает их размер и принадлежность к LVM.
Управление таблицей разделов в parted, разметка диска
Выведем список доступных дисков:
Доступен диск /dev/vdb размером 21 Гб, диску не присвоена метка (error /dev/vdb: unrecognized disk label), какая таблица разделов – не понятно.
Можно создать на диске разметку msdos (MBR)
Или таблицу разделов gpt ( GUIE partition table поддерживает размер раздела более 2 Тб) :
Обратите внимаени, что в parted в отличии от fdisk нет команды для записи изменений. Все изменения применяются немедленно.
Теперь parted показывает тип таблицы разделов (разметки) на диске:
Как вы видите, на диске уже есть таблица разделов MBR, но сами разделы еще не созданы.
Если у вас на сервере имеется несколько свободных дисков, то можно переключаться между ними с помощью команды:
aufs2
aufs2 — файловая система, реализующая каскадно-объединённое монтирование для файловых систем Linux. Помимо унаследованного от UnionFS функционала здесь реализованы RW-ветки и балансировка записи, что идеально подходит для решения поставленной задачи.
- в Debian Lenny (в Testing и Sid уже, к сожалению, нет);
- в Ubuntu (так как LiveCD Ubuntu построен с применением этой ФС);
- в Zen-kernel и Liquorix.
Если с ядром разобрались, то необходимо позаботиться о userspace-утилитах. В Debian'е есть готовые пакеты (несмотря на отсутствие поддержки со стороны ядра), поэтому их можно поставить одной командой:
sudo aptitude install aufs-tools
Если готовых пакетов в дистрибутиве нет, их можно взять с официального сайта aufs.
- старый с кучей торрентов: /media/torrents;
- и новый на только-что купленном винчестере: /media/new_storage.
sudo mount -t aufs none /media/storage -o br:/media/torrents=rw:/media/new_storage=rw,create=mfs,sum
- br: ветка1=rw: ветка2=rw:… — список т. н. веток, т. е. смонтированных разделов, которые будут объединены в один;
- create=mfs — главный параметр, указывающий на то, что для записи будет выбираться та ветка, которая имеет больше свободного места. Без указания этого параметра «слойка» из разделов не будет работать так, как задумано;
- sum — указывает, что в утилитах типа df или pydf будет выводиться суммарный размер разделов и свободного места на них для объединённого раздела.
none /media/storage aufs br:/media/torrents=rw:/media/new_storage=rw,create=mfs,sum 0 0
Установка утилиты lvm2
Чтобы начать работу с LVM, нужно установить утилиту lvm2. Выполним следующие команды:
apt-get install lvm2 — для Ubuntu, Mint, Debian
yum install lvm2 – для Centos, Red-Hat, Fedora
В разных версиях Linux отличается только способ установки утилиты lvm2 (установка через yum/dnf или apt-get), дальнейшие команды для работы с LVM, одинаковы.
1 ответ 1
Поскольку / находится на логическом томе, можно увеличивать / dev / mapper / vg_hadoop1-lv_root без переформатирования. Эта операция будет очень безопасной, если не будет удара молнии.
Поскольку /dev /sdb1 (/disk1) не является логическим томом, его все еще можно сжать - однако всегда есть вероятность этого сбоя. У меня никогда не было проблемы с изменением размера раздела, если было достаточно места; но это не значит, что это невозможно! Многие инструменты, которые вы могли бы использовать для сокращения раздела, предупреждают вас об этом факте. Еще раз, несмотря на это: я не нашел ни у кого никогда проблемы с этим.
Теперь, если у вас есть резервная копия /disk1, или вы не против, чтобы она была потеряна, продолжайте!
Итак, чтобы продолжить разворот данных, мы сначала сжимаем /disk1, поэтому у нас позже будет достаточно места для роста /. Во-первых, мы должны убедиться, что он не подключен - вы не можете (безопасно) уменьшить размер подключенного тома.
mhddfs
В отличие от aufs, mhddfs — ФС пространства пользователя, работающая через fuse. В Debian'е есть готовый пакет, который устанавливается командой:
sudo aptitude install mhddfs
Монтирование производится командой:
sudo mhddfs /media/torrents,/media/new_storage /media/storage -o default_permissions,allow_other
В /etc/fstab соответствующая запись имеет вид:
Стоит заметить, что ни aufs2, ни mhddfs не позволяют одному файлу находится частично на одном, частично — на другом разделе. Также отмечу, что после размонтирования слойки ко всем файлам будет доступ через исходные точки монтирования. Часть файлов окажется на одном разделе, часть — на другом.
Выводы
Если необходимо быстрое и простое решение, то большинству пользователей будет достаточно mhddfs. Но стоит помнить, что aufs2 работает на уровне ядра, поэтому производительность в этом случае выше. К тому же, mhddfs в значительно большей степени нагружает процессор, а скорость записи/считывания несколько ниже, чем в aufs2.
У меня есть Lite Centos 6 в моей системе. Я собираюсь изменить размер одного из его разделов. Вот файловая система этой системы:
Я хочу изменить размер /disk1 до 1G и изменить размер / до 9,5G. Но проблема в том, что / и /disk1 находятся на двух разных устройствах! Возможно ли изменить размер / без форматирования?
К вашему сведению, вот вывод команды fdisk -l:
Также, пожалуйста, обратите внимание, что эта машина находится внутри vmware esx в качестве гостевой ОС, хотя я думаю, что этот факт не меняет процесс.
Восстановление случайно удаленных разделов с помощью rescue
Удаленный раздел можно восстановить с помощью утилиты rescue, которая доступа в оболочке parted:
Команда запросит начальный и конечный размер разделе. Если на этих позициях есть инфа о разделе, команда попробует восстановить удаленный раздел.
Как видите, утилита parted проста в использовании и очень удобна для создания/изменения разделов вашего диска. Надеемся, что данная статья поможет вам разобраться во многих вопросах.
Решения
Решений существует как минимум два.
Создание зеркальных томов LVM
LVM позволяет создать зеркальные тома для повышения отказоустойчивости хранения данных. В LVM зеркале данные одновременно хранятся на двух (или более) физических дисках (подобие RAID-1). Процедура создания зеркального тома в LVM.
- Инициализация дисков: pvcreate /dev/sd
- Создаем LVM группу: vgcreate mirror1 /dev/sd
- Создадим зеркальный LVM том: lvcreate -L 5g -m1 -n lvMirr1 VGmirror1
Инструменты LVM очень удобны для работы, с помощью них можно легко управлять томами, нарезать их на нужные вам размеры и с легкостью использовать под свои нужды. В данной статье я постарался затронуть все основные моменты в работе с LVM.
20.02.2021
VyacheslavK
CentOS, Linux, Ubuntu
Один комментарий
Parted – (сокращенно от PARTition EDitor) редактор дисковых разделов для Linux, предназначенный для управления разметкой, создания, удаления и изменения размеров разделов диска. Утилита проста в использовании и доступна для всех дистрибутивов Unix/Linux систем. Кроме того, доступна GUI версия — Gparted. В данной статье, мы покажем, как управлять разделами диска с помощью parted на примере CentOS 8 (в других дистрибутивах Linux все работает аналогично). В Windows аналогом команды parted является diskpart .
Увеличение логического тома LVM
Чтобы добавить дополнительный диск к группе томов, нужно воспользоваться уже знакомой схемой:
pvcreate /dev/нашдиск — инициализация диска для lvm
vgextend test /dev/нашдиск — добавление диска в группу томов
Чтобы расширить логический том, воспользуйтесь следующей схемой:
lvextend -L10G /dev/test/test1
Данным способом вы расширите раздел на 10 Гб.
Еще несколько примеров расширения LVM раздела:
lvextend -L+10G /dev/test/test1 — добавите 10 Гб к вашему тому
lvextend -l +100%FREE /dev/test/test1 — выделите все нераспределенное пространство в группе test
Осталось увеличить раздел файловой системы:
resize2fs /dev/test/test1 – для ext4
xfs_growfs /dev/test/test1 – для xfs
Как расширить или уменьшить размер раздела диска с помощью parted
Чтобы расширить или уменьшить размер раздела в partedиспользуется субкоманда resizepart Можно изменить размер раздела в интерактивном режиме. В оболочке parted введите команду:
Система запросит номер раздела (берется из вывода команды print) и конечный размер раздела. В этом примере размер разделе будет увеличен с 5 до 10 Гб:
Сначала увеличьте размер раздела, а потом растяните файловую систему на нем. Если вы уменьшаете размер раздела – сначала нужно сжать размер файловой системы, и только после этого уменьшать размер раздела. Иначе потеряете данные.
Для уменьшения размер файловой системы используются следующие команды. Для файловых систем ext2/3/4 :
resize2fs /dev/sdab size
btrfs filesystem resize /dev/sdab size
Изменять флаг раздела в parted тоже возможно, вы можете установить один из нужных вам:
Например сделаем раздел загрузочным:
Удаление LVM групп и томов
Для удаления LVM томов, используется команда lvremove:
Чтобы удалить группу логических томов, используйте:
Убрать метки с LVM дисков:
Создание LVM разделов
Итак, у нас имеется виртуальная машина KVM, к которой подключены два дополнительных диска. Проверим, что они доступны в системе, используя команду:
Как вы видите, у меня доступны два диска /dev/vdb и /dev/vdc .
При настройке LVM на своем виртуальном или физическом сервере, используйте свою маркировку дисков.
Чтобы диски были доступны для LVM, их нужно пометить (инициализировать) утилитой pvcreate:
pvcreate /dev/vdb /dev/vdc
Теперь, чтобы убедиться, что данные диски можно использовать для LVM, введите команду pvdisplay:
Как видим, оба диска отображаются. Разберем информацию из вывода команды:
- PV Name – имя диска или раздела
- VG Name – группа томов, в которую данный диск входит (мы пока группу не создали)
- PV Size – размер диска или размера
- Allocatable – распределение по группам. В нашем случае распределения не было, поэтому указано NO
- PE Size – размер физического фрагмента. Если диск не добавлен ни в одну группу, значение всегда будет 0
- Total PE – количество физических фрагментов
- Free PE — количество свободных физических фрагментов
- Allocated PE – распределенные фрагменты
- PV UUID – идентификатор раздела
С помощью команды pvscan вы можете просканировать диски на предмет PV.
Чтобы проверить результат введите vgdisplay:
Как видим, диски объединены в группу test и VG Size показывает общий размер дисков.
Разберем информацию из листинга команды vgdisplay:
- VG Name – группа томов, в которую данный диск входит.
- Format – версия подсистемы lvm, которая используется для создание группы (в нашем случае версия 2)
- Metadata Areas – область метаданных
- VG Access – уровень доступа к группе логических томов
- VG Size – общий объем дисков, которые входят в группу
- PE Size — размер физического фрагмента
- Alloc PE / Size – распределенное пространство(количество и объем фрагментов)
После того, как мы создали общую группу для дисков, мы можем создать логический том на этой группы. При создании тома, используется команда lvcreate.
Чтобы в вашей группе создать логический том определенного размера и именем, используйте команду:
Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.
Если вы хотите сами задать имя, используйте флаг -n:
Несколько примеров для создания логических томов с разными размерами:
lvcreate -l 40%VG test – 40% от дискового пространства группы test
lvcreate -l 100%FREE test – использовать все свободное пространство группы test
Чтобы вывести информацию о логическом томе, используйте lvdisplay:
Так же разберем листинг данной команды:
- LV Path – путь к устройству логического тома (к диску или разделу)
- LV Name – имя логического тома
- VG Name – имя группы томов
- LV UUID – идентификатор логического тома
- LV Write Access – уровень доступа к логическому тому
- LV Creation host, time — информация о хосте, дата когда был создан логический том
- LV Size – размер диска, доступный для использования логическому тому
- Current LE – количество логических фрагментов
Создание нового раздела в parted
Для создания раздела в parted, используется утилита mkpart . При вводе команды в интерактивном режиме будут появляться вопросы о параметрах нового раздела:
- Partition type — указываем тип раздела (primary / extended)
- File system type — файловая система, по умолчанию предлагается ext2 (в дальнейшем мы ее изменим);
- Start — начальный сектор раздела
- End — конечный сектор раздела (в мегабайтах). В нашем примере мы указали 5000, это значит, что будет создан раздел размером 5Гб.
(parted) print free
Можно сразу создать раздел на весь диск:
или указать произвольный размер раздела так:
Также можно указывать размер диска в % и задать метку:
Чтобы выйти из оболочки parted, выполните команду:
Отформатируем раздел в файловой системе ext4:
Проверяем файловую систему раздела и видим, что она изменилась (обратите внимание что команда print выводит теперь список разделов на диске, их номера, тип, размер и файловую систему).
Можно создать раздел и отформатировать его, не входя в оболочку parted, например:
Данной командой мы создадим раздел на диске vdb, под который отдадим всё пространство.
Таким образом вы можете упрощать себе работу или же добавлять подобные команды в какие-то скрипты или файлы кикстарта.
Удаление раздела с помощью parted
Если вам требуется удалить раздел на диске, вы можете использовать команду rm в оболочке parted:
Эта команду удалит раздел с номером 1:
Будьте осторожны в использовании данной команды, так как она не требует подтверждение удаления.
Читайте также: