Ваш надежный
хостинг партнер
(495) 797-8-500

8-800-700 40 36

У Вас нет выбранных услуг.



Новости компании, технические статьи

10.07.2015

3 проверенных способа создания/расширения дискового пространства в CentOS

В поисках решения по расширению дискового пространства в CentOS можно найти немало полезных статей в Интернете. Как и в случае с SELINUX выбор достаточно велик – каждый более-менее опытный сисадмин предлагает проверенный на собственной практике способ, не соотнося его при этом с прочими возможностями. Между тем при всем обилии технической информации начинающим достаточно сложно сориентироваться. Сегодня мы попытаемся обобщить всевозможные пути решения данной проблемы.

Меняем размер раздела

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

Предположим, что CentOS устанавливается на ВМ с выделенным дисковым пространством размером в 10 Гб. Достаточно остановить виртуальную машину и увеличить жесткий диск до 15-20 Гб. При этом физический размер HDD-диска увеличился, но операционная система по-прежнему видит все без изменений, продолжая использовать старые из таблиц разделов и файловых систем.

В данном случае перед пользователем возникает сразу две задачи. Первая заключается в изменении данных по файловой системе, а вторая – в смене размеров раздела. Как правило, для их решения используется утилита parted, однако в данном случае она не подходит. Дело в том, что в CentOS по умолчанию при установке используется система дисковой виртуализации LVM (Logical Volume Manager). А с ней, как известно, parted не умеет работать.

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

Для этого запустим fdisk –c –u /dev/sda и прописываем команду p. CentOS по дефолту создаст два раздела при установке dev/sda1, dev/sda2. Первый – загрузочный раздел, а на втором хранятся все файлы ОС, и его использует LVM. С последним нам и предстоит поработать.

Теперь нужно записать для раздела стартовый сектор – пусть это будет 1026048. Используя команду d необходимо удалить раздел sda2, который идет порядковым номером 2. Используя команду n, создадим новый Primary-раздел под порядком номером 2. При заданном начальном секторе (1026048), задаем конечный сектор со значением 31456655. Далее меняем тип раздела командой t на 8E (Linux LVM). Сделанные изменения нужно записать на диск, используя команду w, после чего перезагрузить виртуальную машину.

После перезагрузки нам нужно уведомит LVM о внесенных изменениях, выполнив lvm pvresize /dev/sda2 Через lvm pvdisplay просмотрим результат проделанных манипуляций, отметив для себя количество свободных PE блоков. В данном случае из 1280.

Для файлов CentОС /dev/VolGroup/lv_root , а также файла подкачки /dev/VolGroup/lv_swap по умолчанию будет создано 2 логических тома LVM, которые также можно посмотреть через lvm display. Здесь нужно «попросить» LVM расширить lv_root за счет не занятых PE-блоков, которые появились:

lvm lvextend -l +1280 /dev/VolGroup/lv_root

Последнее, что нам предстоит сделать, это изменить параметры файловой системы, используя следующую команду: resize2fs /dev/VolGroup/lv_root.

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

Классика жанра

Классический способ – это монтировать устройства каталогом. Для этого нужно добавить в виртуальную машину либо подключить к системному блоку жесткий диск. При распознавании его CentOS в /dev должно появиться новое устройство (к примеру /dev/sdb).

Теперь нужно ввести команду fdisk – c – u /dev/sdb, где ключом – u мы просим использовать сектор в качестве единицы измерения, в - с – производим отключение режима совместимости с MSDOS. Для того чтобы создать новый раздел нам нужно ввести команду n и ответить на последующие запросы. Далее используя команду w, мы запишем на диск внесенные изменения, после чего, применив q – осуществляем выход из fdisk.

Далее в разделе /dev/sdb1 необходимо создать новую file system mkfs.ext4 -L DATA0 /dev/sdb1 (в данном случае можно присвоить метку DATA1 для удобства). После нам нужно создать mkdir /data_folder –каталог и монтировать к нему раздел: mount /dev/sdb1 /data_folder.

Для монтирования раздела в автоматическом режиме при загрузке нужно добавить в файл /etc/fstab строку параметров

LABEL=DATA0 /data_folder ext4 defaults 0 0

где DATA0 – дисковая метка, data folder – место, куда монтируется раздел, ext4 – файловая система, defaults – опции, 0 – дампирование, 0 – проверка.

Данный способ имеет одно неоспоримое преимущество – нам известно, на какой диск попадают все данные, записанные в каталоге /data_folder. Данный метод можно использовать на любой Linux-сборке.

Используем возможности LVM

В данном варианте мы создаем новый раздел и добавляем его в LVM-группу. Для того чтобы создать раздел потребуется добавить новый HDD-диск в систему либо расширить дисковое пространство в виртуальной машине и создать раздел на вновь появившемся свободном месте.

К примеру, мы добавляем в ОС новое дисковое устройство /dev/sdc. Далее необходимо разметить его для того, чтобы использовать в LVM pvcreate /dev/sdc. Теперь добавим раздел в уже существующую группу LVM vgextend VolGroup /dev/sdc.

Данные группы, опять же можно посмотреть в vgdisplay. Здесь нас интересуют свободные PE-блоки (возьмем, к примеру, значение FreePE = 5119). Теперь просматриваем данные lvdisplay /dev/VolGroup/lv_root по созданному LVM-разделу. Пусть значение CurrentLE будет 1217. Зная эти параметры можно вычислить новый размер для логических дисков, сложив значения FreePE и CurrentLE (=6336).

Последний этап сводится к расширению логического раздела lvresize -l 6336 /dev/VolGroup//lv_root и изменению в нем файловой системы resize2fs /dev/VolGroup/lv_root.


Возврат к списку