Спящий Режим На Proxmox2



Зачем это нужно? Гибернация (спящий режим) — это режим завершения работы системы, при котором ее текущее состояние, включая состояние оперативной памяти, сохраняется в энергонезависимом хранилище.

Этот режим при использовании совместно с Proxmox может значительно ускорить процесс завершения работы основной хост-системы без необходимости выключения гостевых виртуальных систем.

Особенно удобно, когда терминальные серверы на Windows развернуты как гостевая система.

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

Вот тут-то и придет на помощь спящий режим хост-нод, и после восстановления электропитания пользователи смогут продолжить работу с того же места! Конечно, чтобы это произошло, вам еще нужно настроить ИБП сервера.

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



Как это работает

Proxmox 2.2 работает на Debian 6 и почти всё описанное ниже в той или иной степени относится к нему.

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

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

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

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

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

Исходные данные

При установке proxmox полностью использует 1 из дисков, уничтожая на нем всю информацию и создавая специфическую структуру разделов:
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
   

# 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

Таким образом мы узнали, что на физическом диске не занятое разделами пространство составляет всего 352кБ, чего явно недостаточно для раздела подкачки, на котором система будет сохранять состояние занятой оперативной памяти во время гибернации.

Такой раздел должен иметь размер не меньше размера оперативной памяти узла.

Предположим, что нам нужен размер 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

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.