Зачем это нужно? Гибернация (спящий режим) — это режим завершения работы системы, при котором ее текущее состояние, включая состояние оперативной памяти, сохраняется в энергонезависимом хранилище.
Этот режим при использовании совместно с Proxmox может значительно ускорить процесс завершения работы основной хост-системы без необходимости выключения гостевых виртуальных систем.
Особенно удобно, когда терминальные серверы на Windows развернуты как гостевая система.
Ведь при обычном выключении такой системы в окнах пользователя появляется запрос на сохранение редактируемого документа, а если у пользователя отключается питание вместе с его компьютером и монитором, то пользователь отсутствует, происходит принудительное выключение система вызовет прединфарктное состояние, потерю данных, редактируемых сотрудником/ами.
Вот тут-то и придет на помощь спящий режим хост-нод, и после восстановления электропитания пользователи смогут продолжить работу с того же места! Конечно, чтобы это произошло, вам еще нужно настроить ИБП сервера.
Переход в режим гибернации удобно назначить событием при низком заряде батареи ИБП, а благодаря скорости перехода в этот режим можно серьезно снизить требования к емкости его батарей.
Как это работает
Proxmox 2.2 работает на Debian 6 и почти всё описанное ниже в той или иной степени относится к нему.Для включения режима гибернации требуется выделенный диск, который будет виден GRUB непосредственно при загрузке, или отдельный раздел подкачки на системном диске.
Поскольку логический том подкачки автоматически создавался во время установки внутри LVM, мне не удалось запустить спящий режим.
Однако proxmox не позволяет создать структуру диска, необходимую для этого режима, в процессе установки.
Вероятно, это связано с концепцией максимальной простоты развертывания системы, с которой справится даже домохозяйка.
Самое простое решение — просто добавить к серверу еще один жесткий диск и назначить его хранилищем для режима гибернации, но мы рассмотрим более сложный вариант с поиском свободного места на том же диске, где был установлен proxmox.
Исходные данные
При установке proxmox полностью использует 1 из дисков, уничтожая на нем всю информацию и создавая специфическую структуру разделов:Таким образом мы узнали, что на физическом диске не занятое разделами пространство составляет всего 352кБ, чего явно недостаточно для раздела подкачки, на котором система будет сохранять состояние занятой оперативной памяти во время гибернации.# parted /dev/sda print free Model: ATA WDC WD3200AAKS-7 (scsi) Disk /dev/sda: 320GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 32.3kB 1049kB 1016kB Free Space 1 1049kB 537MB 536MB primary ext3 boot 2 537MB 320GB 320GB primary lvm 320GB 320GB 352kB Free Space
Такой раздел должен иметь размер не меньше размера оперативной памяти узла.
Предположим, что нам нужен размер 32 ГБ.
Давайте теперь посмотрим, из каких логических томов состоит наш физический том, расположенный на втором разделе.
# lvs
мы видим LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
data pve -wi-ao-- 203.09g
root pve -wi-ao-- 74.50g
swap pve -wi-ao-- 4.00g
Подготовка СМИ
Давайте выясним, сколько свободного места уже есть внутри физического тома LVM2. # pvs
Мы смотрим на ценность PFree
PV VG Fmt Attr PSize PFree
/dev/sda2 pve lvm2 a-- 297.59g 16.00g
Это значит, что мы можем сразу уменьшить раздел на физическом диске на 16,00 ГБ, но наша цель — получить 32 ГБ, поэтому будем искать дополнительные данные.
Необходимое нам пространство возьмем из логического тома данных.
Для этого уменьшим размер /dev/pve/data на 16 ГБ.
Этот процесс выполняется в 2 этапа.
Сначала уменьшается размер файловой системы, а затем уменьшается размер самого логического тома.
Поскольку процедура потенциально небезопасна, файловая система будет отключена на период изменения размера; соответственно, все виртуальные машины, расположенные в /var/lib/vz, на это время должны быть остановлены.
# lvresize /dev/pve/data -r -L-16Gb
Do you want to unmount "/var/lib/vz"? [Y|n]
Давай ответим тебе
Теперь давай сделаем это снова # pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 pve lvm2 a-- 297.59g 32.00g
Видим, что объем свободного места внутри физического тома увеличился до 32 ГБ.
Теперь мы можем смело уменьшать его размер на количество доступного свободного места + 1 ГБ для подстраховки:
Рассчитаем итоговый размер физического объёма 297-32+1=266. # pvresize /dev/sda2 --setphysicalvolumesize 266Gb
Давайте еще раз посмотрим, что у нас получилось # pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 pve lvm2 a-- 266.00g 412.00m
Размер физического тома LVM уменьшен на:
297,59 – 266 + 0,412 = 32,002 ГБ
Но, несмотря на это, размер раздела, содержащего LVM-структуру на жестком диске, остался неизменным: # parted /dev/sda print free
Number Start End Size Type File system Flags
32.3kB 1049kB 1016kB Free Space
1 1049kB 537MB 536MB primary ext3 boot
2 537MB 320GB 320GB primary lvm
320GB 320GB 352kB Free Space
Нас это не устраивает, так как нам необходимо получить свободное место для нового раздела в таблице разделов физического диска.
На данный момент нам не удалось найти готовые утилиты, способные изменять разделы, содержащие структуру lvm2, поэтому просто удалим и заново создадим раздел на жестком диске с тем же началом, что и исходный, но с Меньший размер.
Это потенциально довольно опасная процедура.
Рассчитаем параметры 2-й секции, которые мы хотим получить в результате.
Он должен быть меньше текущего на 32 ГБ.
320 – 32 = 288 ГБ
Таким образом, второй раздел будет иметь параметры:
Тип основной
Начало 537 МБ
Конец 288Гб
Удалить раздел 2, подтверждающий игнорирование предупреждений # parted /dev/sda rm 2
Создаем новый раздел, но меньшего размера, чем был # parted /dev/sda mkpart primary 537MB 288GB
Назначьте флаг lvm разделу # parted /dev/sda set 2 lvm on
Посмотрим на результат # parted /dev/sda print free
Видим, что на физическом диске есть свободное место для будущего раздела Number Start End Size Type File system Flags
32.3kB 1049kB 1016kB Free Space
1 1049kB 537MB 536MB primary ext3 boot
2 537MB 288GB 287GB primary lvm
288GB 320GB 32.1GB Free Space
Создайте раздел типа swap. Его параметры:
Тип основной
ФС Linux-своп
Начало 288 ГБ
Конец 320 ГБ
Давай сделаем: # parted /dev/sda mkpart primary linux-swap 288GB 320GB
# mkswap /dev/sda3
Подготовительные работы завершены и теперь можно переходить непосредственно к настройке гибернации.
Активация спящего режима
Установка компонентов # apt-get update
# apt-get install pm-utils
Добавление опций в grub и fstab
# echo 'GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda3"' >> /etc/default/grub
# echo '/dev/sda3 none swap sw 0 0' >> /etc/fstab
Подключите новый раздел как файл подкачки к системе.
# swapon /dev/sda3
Давайте обновим загрузчик # update-grub
Можно приступить к тестированию самого режима гибернации.
Но сначала очень желательно по возможности перезагрузить сервер, так как в структуре носителя произошли достаточно серьёзные изменения! # reboot
Выполним полный спящий режим, отключив питание системы # pm-hibernate
Теперь осталось назначить выполнение этой команды при низком заряде батареи на ИБП, но это уже другая история, которую я надеюсь описать в следующей статье.
Все вышеперечисленное проверено на свежеустановленном проксмокс 2.2 Теги: #Виртуализация #hibernate #debian 6 #proxmox 2 #hibernate
-
Требования К Компьютеру Для Онлайн-Игр
19 Oct, 24 -
Обзор Домена И Оценка Стоимости Вашего Сайта
19 Oct, 24 -
Резина
19 Oct, 24 -
Новый Криптовымогатель «Locky»
19 Oct, 24 -
Оригинальные Идеи В Игровом Процессе
19 Oct, 24