Colobridge WIKI

расширение добавлением отдельных разделов

Применимость: Linux


Тарифный план включает в себя 60Гб диска, а я вижу только 20. Остальное пространство не размечено.

Как использовать свободное и не размеченное место на диске?

Этот вариант более рационален и менее рискованный.

Меньше риска потому что не меняется размер существующих разделов.

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

Потому для каталогов, в которые пользователи имеют возможность загружать файлы, делают отдельные разделы с опциями монтирования запрещающими особые свойства файлов и повышение привилегий. Обычно это каталоги /tmp и /var. Файл загруженный со злым умыслом может прикинуться устройством и выполнить опасные действия на уровне ядра системы или используя особые свойства, может выполнить действие в системе с правами root.

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

Например вы решили создать отдельный раздел для каталога /var и /tmp

Для возможности изменения таблицы разделов без перезагрузки необходим пакет parted

Чтобы обрыв связи не привел к прерыванию процесса изменения размера файловой системы необходим пакет screen

Установим оба пакета:

yum install screen parted

или для debian / ubuntu

apt-get install screen parted

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

Если система уже работала, то диск к моменту изменения размера может быть переполнен.

В такой ситуации высока вероятность неожиданной перезагрузки системы. Если это произойдет во время изменения размера, то результат вам не понравится…

ОБЯЗАТЕЛЬНО ПРОВЕРЬТЕ НАЛИЧИЕ СВОБОДНОГО МЕСТА

LVM Снапшот (снимок)

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

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

Инструкция для персонала

SCREEN

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

Обрыв связи с сервером во время изменения размера файловой системы приведет к ее повреждению.

Можно все действия выполнить через KVM -VNC консоль в вашей панели управления, в случае потери и возобновления связи работа может быть продолжена без прерывания процесса, но удобнее работать по сети через SSH.

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

Если вы еще не освоили screen, поторопитесь это сделать

Дальнейшие действия выполняем в сессии screen.

Создать сессию с именем admin

screen -S admin

Если связь оборвется, то для продолжения работы снова соединитесь с системой и выполните команду подключения к запущенной сессии screen командой:

screen -x admin

Просмотреть существующую таблицу разделов:

parted /dev/sda print 
Модель: ATA QEMU HARDDISK (scsi)
Диск /dev/sda: 42.9GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos

Номер  Начало  Конец   Размер  Тип      Файловая система  Флаги
 1     1049kB  525MB   524MB   primary  ext3              загрузочный
 2     525MB   21.5GB  20.9GB  primary                    lvm
Как видите здесь размечено только около 20Гб пространства из 40Гб

В другом варианте вы можете увидеть такую таблицу разделов:

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  256MB   255MB   primary   ext2         boot
 2      257MB   21.5GB  21.2GB  extended
 5      257MB   21.5GB  21.2GB  logical                lvm
Здесь вы видите раздел типа logical (5) который «живет» внутри контейнера раздела типа extended (2)

Всего в таблице разделов может быть не более четырех разделов типа primary или не более 3-х primary плюс 1 типа extended который может служить контейнером до 63-х разделов типа logical .

Так как в таблице разделов свободен номер 3 для раздела, то используем его для создания раздела типа prymary.

Добавить раздел

parted /dev/sda mkpart primary "3 -0"

Параметр «-0» означает - использовать все свободное пространство.

Установим метку типа файловой системы для раздела (мы используем раздел для создания физического LVM тома)

parted /dev/sda set 3 lvm on

Вам вы получите предупреждение WARNING: the kernel failed to re-read the partition table on /dev/sda (Устройство или ресурс занято). As a result, it may not reflect all of your changes until after reboot.

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

LVM

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

pvcreate /dev/sda3

Если вы получили предупреждение: Device /dev/sda3 not found (or ignored by filtering)., значит команда partprobe не помогла и придется перезагрузить систему.

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

VG         #PV #LV #SN Attr   VSize  VFree
vg_centos6   1   2   0 wz--n- 19.51g    0 

В моем случае имя группы LVM томов - vg_centos6

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

vgextend vg_centos6 /dev/sda3

Снова проверим список групп:

vgs
VG         #PV #LV #SN Attr   VSize  VFree 
vg_centos6   2   2   0 wz--n- 39.50g 20.00g

Теперь мы видим около 20Гб свободного пространства которое можно использовать.

Создадим логический раздел с именем VAR и размером 500мб в группе томов имеющей имя vg_centos6

lvcreate -L500 -nVAR vg_centos6

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

mkfs.ext3 /dev/vg_centos6/VAR

Временно смонтируем в каталог /mnt

mount /dev/vg_centos6/VAR  /mnt

Переместим файлы

До начала перемещения файлов вы должны остановить все службы которые используют файлы в этом каталоге. Это, как правило, mysql, syslog и т.п. Можно остановить все кроме сети и службы sshd
mv /var/* /mnt

Размонтировать

umount /mnt

Добавим запись в /etc/fstab с опциями защиты системы от взлома

echo "/dev/vg_centos6/VAR  /var ext3  noexec,nodev,nosuid   0 1" >> /etc/fstab

Смонтировать /var

mount /var

Сделаем подобное для /tmp только с другим размером раздела, например 200мб

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

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