Proxmox, ceph, zfs, pfsense и все-все-все - часть 1
-
Первый тестовый виртуальный домен поднимал в далеком 2001 году на PIII (Vmware Workstation). ;),
Winows NT DC, рабочие станции Windows NT и 98, выход в интернет через RRAS с диалапом…Сейчас в продакшн используется ESXi - выбор руководства. Мы посовещались и оно решило ;).
С KVM за довольно долгую карьеру столкнуться, как ни странно, так и не пришлось. Сейчас же хочу покрутить для собственного интереса.Что порекомендуете - сразу 5.0 или начать с 4.4?
-
5-ку, ес-но. После установки - сразу обновить.
Если в будущем в продакшн соберетесь, то использовать ZFS raid от 2-ух (raid1), а лучше - 4 диска (raid10). Zfs raid идет из коробки и в самом начале установки конфигурируется.
-
Proxmox поддерживает nested virtualization? Хочу попробовать в ESXi. Нет под рукой свободного полноценного железа.
UPD.
Можно, так же как и для остальных гипервизоров, запускаемых в ESXi.
https://imanudin.net/2015/03/04/how-to-install-proxmox-nested-on-vmware-esxi-full-support-openvz-kvm/Все это исключительно для тестов, нормальной работы от такого мутанта никто не ждет.
-
Nested virtualization (вложенная виртуализация, т.е. возможность запускать гипервизор в гипервизоре) на Proxmox:
https://pve.proxmox.com/wiki/Nested_Virtualization
https://medium.com/@alexander.bazhenov/установка-vmware-esxi-внутри-proxmox-d5778b5a97a1 -
Миграция с других гипервизоров (локально).
Migrate VMWare ESXi Virtual Machines to Proxmox KVM with LVM-Thin Logical Volumes https://www.sysorchestra.com/2017/03/16/migrate-vmware-esxi-virtual-machines-to-proxmox-kvm-with-lvm-thin-logical-volumes/
Migrate from Xenserver to Proxmox https://techblog.jeppson.org/2018/01/migrate-xenserver-proxmox/
https://www.reddit.com/r/homelab/comments/625i4p/tutorial_convert_vulnhub_vms_for_proxmox/
Небольшой how-to.
Внимание! Формат raw - это т.н. "сырой" формат образов дисков. Перед дальнейшими операциями убедиться в наличие
свободного места.Подключаемся по SFTP к Proxmox. В Win это можно сделать с пом. WinSCP или FAR.
Забрасываем образ(ы) диска(ов), к-ые мы хотим подкинуть к ВМ в предварительно созданную временную папку.
Прим. Если у вас ova-образ - сперва распаковываем
tar -xvf disk.ovaКонвертируем (на примере vmware .vmdk)
qemu-img convert -p -O raw disk.vmdk disk.rawСмотрим размер получившегося
ls -ahlCоздаем через gui ВМ с диском(-ми) не меньшего размера. ВМ не запускать!
Смотрим что у нас получилось (у вас путь к образам дисков может быть другой)
ls -al /dev/zvol/rpool/data/Разворачиваем образ диска в диск ВМ
dd if=/path/to/file/disk.raw of=/dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X
ZFS-Pool-Name и vm-XYZ-disk-X изменить на своиПосле
qm rescanUpd2.
Короткий вариант. Проверил - работает.
qemu-img convert -p -O raw disk.vmdk /dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X
ZFS-Pool-Name и vm-XYZ-disk-X изменить на свои
qm rescanЗапускаем ВМ. Проверяем.
Upd3.
Специально для тех, кто переходит с MS Hyper-V на Proxmox (KVM):Подкидываем **vhdx-**образ по SFTP во временную папку на Proxmox.
Далее повторяем ранее описанное (т.е., создаем через gui ВМ с диском необх. размера, но не вкл. её! )
Команда для конвертации:
qemu-img convert -p -O raw disk.vhdx /dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X
ZFS-Pool-Name и vm-XYZ-disk-X изменить на свои
qm rescanЗапускаем ВМ. Проверяем.
Upd4.
И для догадливых (типа меня, ага 8))
Аналогично описанному выше (только наоборот ;)) можно конвертировать zfs-диски Proxmox-а во все самые распространненные форматы:Сперва выкл. ВМ, конечно.
VHD\VHDX (Hyper-V)
qemu-img convert -p -O vhdx /dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X /path/to/file/disk.vhdx
ZFS-Pool-Name , vm-XYZ-disk-X и /path/to/file/ изменить на своиОстальные форматы https://docs.openstack.org/image-guide/convert-images.html
P.s. Также имеется возможность миграции\конвертирования по сети используя netcat, dd, pv, gzip\pigz\bzip2, ssh и
SystemRescueCD https://pve.proxmox.com/wiki/Migration_of_servers_to_Proxmox_VEТак что, добро пожаловать в мир открытого ПО. Для тех кто еще не решился )
Миграция Windows 2000 с динамическими дисками dynamic disc
Дано:
Старый сервер с Windows 2000 Server на программном raid1 из 2-ух дисков. На сервере живет оч. важное для клиента ПО.Задача:
(Бережно) перенести в Proxmox VE (KVM)Проблема:
- Linux ничего "не знает" о динамических дисках Windows, что не дает возможность использовать "в лоб" Clonezilla и Partclone для миграции локально или по сети.
- Windows 2000 не имеет в своем составе службу Volume Shadow Copy, что не позволяет использовать, напр., Disk2vhd для промежуточной миграции в vhd(x) и дальнейшего переноса на PVE.
Решение:
Нам понадобятся Clonezilla Live, Gparted Live, драйверы на сетевой адаптер Intel e1000.- Записать на CD\DVD образ Clonezilla live
- Скачать с сайта Intel и сохранить на раб. стол КЛОНИРУЕМОЙ файлы PROWMI.exe, PRO2K.exe для установки драйверов на виртуальный сет. адаптер Intel e1000
- Создать вирт. машину (ВМ) типа Windows 2000 с размером hdd НЕ МЕНЬШЕ, чем hdd клонируемой.
- Загрузиться с Clonezilla live на ФИЗИЧЕСКОЙ до момента "Start Clonezilla or enter login shell" и выбрать Enter_shell
3.1. (Опционально) Сменить пол-ля на root: sudo passwd root -> ввести 2 раза пароль -> su - и ввести придуманный ранее пароль - Загрузиться с Clonezilla live на ВИРТУАЛЬНОЙ до момента "Start Clonezilla or enter login shell" и выбрать Enter_shell
4.1. (Опционально) п.3.1. - Узнать и запомнить IP адрес на ВИРТУАЛЬНОЙ: ip a s
- Узнать и запомнить имя клонируемого диска на КЛОНИРУЕМОЙ: fdisk -l
- Узнать и запомнить имя диска, на к-ый будет перенесена инф-ция на ВИРТУАЛЬНОЙ: fdisk -l
- На ВИРТУАЛЬНОЙ ввести в терминале: sudo nc -w120 -vvnlp 19000 | sudo cat > /dev/sdX, где sdX - имя диска из п.7 и нажать Enter
- На КЛОНИРУЕМОЙ ввести в терминале: sudo pv /dev/sdX | sudo nc -vvn X.X.X.X 19000, где sdX - имя диска из п.6, X.X.X.X - IP адрес из п.5 и нажать Enter
- По завершние клонирования выкл. КЛОНИРУЕМУЮ.
- Перезагрузить ВИРТУАЛЬНУЮ.
- Установить на ВИРТУАЛЬНОЙ драйверы сетевой карты Intel E1000: 1. PROWMI.exe, 2. PRO2K.exe
- Важно! Откл. в настройках сетевой карты все, что касается Offload.
- Для избавления от динамического диска:
- добавить еще один диск в ВИРТУАЛЬНУЮ
- загрузиться с Gparted live
- скопировать партиции со старого на новый диск
- выключить ВМ
- отсоединить старый диск
- загрузиться с нового
- в случае проблем со стартом ОС загрузиться в Консоль восстановления с диска Windows 2000 и
пофиксить командами fixboot, fixmbr
-
Using Terraform and Cloud-Init to deploy and automatically monitor Proxmox instances https://yetiops.net/posts/proxmox-terraform-cloudinit-windows/
Encrypting Proxmox VE 6: ZFS, LUKS, systemd-boot and Dropbear https://tactical-documentation.github.io/post/proxmoxve6-zfs-luks-systemdboot-dropbear/
ZFS RAIDZ luks disk encryption script https://www.reddit.com/r/Proxmox/comments/ijpuv8/zfs_raidz_luks_disk_encryption_script/Мигрируем удаленно.
Прим. Примеры использования pv - http://linux-notes.org/utilita-pv-progress-bar-dlya-konsol-ny-h-utilit-v-unix-linux/
Предупреждение. Все ниже описанное вы делаете на свой страх и риск. Внимательно проверяйте какие диски копируете и куда принимаете. Крайне желательно иметь резервные копии данных.
И так. Как сказал один оч. известный и достойный Человек: "Поехали!"
Качаем на принимающей и отдающей сторонах SystemRescueCD (http://www.system-rescue-cd.org/).
Принимающая сторона:
На Proxmox создаем ВМ с размером диска как у отдающей стороны.
Загружаемся с SystemRescueCD в эту ВМ.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a sНа отдающей стороне:
Загружаемся с SystemRescueCD.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a sЗапускаем на принимающей стороне:
nc -w10 -vvnlp 19000 | pigz -5 -dfc | cat > /dev/disk-name, где :-w10 - время ожидания данных в сек. на приним. стороне (меняется на ваше усмотрение).
19000 - номер порта, к-ый слушает netcat и принимает на него данные от отдающей стороны (меняется на ваше усмотрение)
pigz -5 - степень сжатия (меняется на ваше усмотрение)
disk-name - имя диска внутри ВМ (меняете на свое)Считаем до трех и запускаем на отдающей стороне:
pv /dev/disk-name | pigz -5 -fc | nc -vvn remote-server-ip 19000, где:disk-name - имя диска, к-ый вы хотите передать (узнается по fdisk -l)
pigz -5 - степень сжатия (меняется на ваше усмотрение)
remote-server-ip - ip-адрес\имя удаленного сервера-приемника
19000 - номер порта удаленного сервера-приемникаВсё. Скрещиваем пальцы, чтобы линк между отдающей и принимающей сторонами не упал и ждем окончания процесса.
После удачного окончания выкл. ВМ на принимающей стороне. Извлекаем в gui из вирт. привода SystemRescueCD и пробуем загрузиться.Пример с SSH (кому необходима секьюрность):
Принимающая сторона:
Создаем ВМ с размером диска как у отдающей стороны.
Загружаемся с SystemRescueCD в эту ВМ.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a s
Смотрим какие диски у нас есть - fdisk -l. Запоминаем\записываем имя нужного нам диска.
Более ничего на принимающей стороне делать\запускать не надо.На отдающей стороне:
Загружаемся с SystemRescueCD.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a s
Запускаем команду:
pv /dev/disk-name | pigz -5 -fc | ssh remote-server-ip "cat > /dev/disk-name", где :disk-name - имя диска на принимающей стороне, к-ое мы внимательно выбрали и запомнили ранее
remote-server-ip - ip\имя примающей стороныОжидаем удачного окончания процесса передачи. После выкл. ВМ на принимающей стороне. Извлекаем в gui из вирт. привода SystemRescueCD и пробуем загрузиться.
-
Обновил шапку.
-
а кто расскажет, какое преимущество у zfs перед ufs ?
это какое странное достижение. Слижком уж не специфичное для фаервола. -
а кто расскажет, какое преимущество у zfs перед ufs ?
это какое странное достижение. Слижком уж не специфичное для фаервола.https://www.reddit.com/r/PFSENSE/comments/76cmjv/advantages_andor_disadvantages_zfs/
Применительно к pfSense на одном диске -
устойчивость к пропаданию питания, например. UFS крайне этого не любит
возможность работать со снапшотами, как в VM.Статья, которая, может быть, заинтересует ув. werter:
http://jrs-s.net/2016/05/09/testing-copies-equals-n-resiliency/ -
Доброе.
@derwin:а кто расскажет, какое преимущество у zfs перед ufs ?
это какое странное достижение. Слижком уж не специфичное для фаервола.В шапке есть картинки. Нагляднее некуда.
-
вы не поняли суть вопроса. Можно сравнивать жареную куропатку с боингом.
А зачем оно (ZFS) для фаервола?
чтобы логи хранить в отказоустойчивом пуле ?? смешно….
вот вам в топку http://2gusia.livejournal.com/7545.html -
Причем тут логи? Речь идет обо всей ОС в данном случае.
Пример? Легко.
Перед обновлением пф делаете снепшот (вот так http://linux.cpms.ru/?p=8931). Криво встало обновление ? Не работают пакеты, к-ые работали до обновления ? Что же делать?Звонить в Спортлото!
Да просто откатиться с пом. сделанного ранее снепшота ::)Вот от вас, ув. derwin, таких откровенно глупых вопросов я не ожидал.
-
что то я не вижу гуя по управлению zfs,а значит всё равно звонить сергею брину.
у меня до 2,4 итак всё было на снапшотах на уровне vmware. Мне мозги пропарило обновление - сейчас откатился до 2,3,4 и нет проблем.werter
фишка zfs это блочное управление и отказоусточивость за счёт проца + памяти. У меня в филиальных бордерах до недавнего времени вообще флешки стояли и я горя не знал! сдохла - вставь резервную… спасибо 2,4 - теперь заказал SSD на 60гб.....
я себе в будущем году мож прикуплю сервак с полкой под 300-дисковый zfs пул. Но это NAS сервер, а не пакетный фаервол!!!!PS: 2.4 меня вообще в тоску вгоняет.... мало того, что удалили radius2 из репо, дык ещё и с 2.3.4 запретили качать пакеты.... это какой то сплошной фейспалм.
-
что то я не вижу гуя по управлению zfs,
Гуй точно будет. Для снэпшотов он и не шибко нужен - сделал снэпшот в CLI\восстановил снэпшот в CLI.
У меня как-то регулярно пропадало электричество, UFS при этом ведет себя крайне ненадежно. Не зря в 2.4 сделали для опции выключения - перезагрузить и запустить fsck.
Учитывая что уже большая часть программных роутеров ,фаерволов итд устанавливаются на VMУ такого решения полно как сторонников, так и противников. Я - не сторонник.
Имел случай проверить свою правоту.И никто не заставляет ZFS использовать, более того - по умолчанию 2.4 ставится по прежнему на UFS.
-
я в первый раз поставил zfs где то в 2009 году вместе с проектом FreeNAS. Секс был просто адовый. Падение производительности - ужасное.
Когда развалился массив - я не смог сделать равном счётом ни-че-го. -
я в первый раз поставил zfs где то в 2009 году вместе с проектом FreeNAS. Секс был просто адовый. Падение производительности - ужасное.
Когда развалился массив - я не смог сделать равном счётом ни-че-го.Не наговаривайте. Для IT-индустрии 8-9 лет - это как для человечества 100. Как паровой котел и АЭС.
-
я в первый раз поставил zfs где то в 2009 году вместе с проектом FreeNAS. Секс был просто адовый. Падение производительности - ужасное.
Когда развалился массив - я не смог сделать равном счётом ни-че-го.Не наговаривайте. Для IT-индустрии 8-9 лет - это как для человечества 100. Как паровой котел и АЭС.
я по первому высшему инженер-котельщик-атомщик ;)
Работал по специальности, всё видел и делал -
Доброе всем.
С утра запустил обновление Proxmox. Прилетело масштабное (!) - ядро теперь 4.13 (наираспоследнее LTS) , zfs - 0.7.2. -
Обновил тестовый PVE.
apt-get update and apt-get upgrade версии не изменили, хотя пакеты и скачались и установились.apt-get dist-upgrade - сработало.
-
Доброе.
Используйте apt <параметры>. Современные дебиан-подобные с ним корректнее пакетные зависимости разрешают.P.s. Также следует обновить zfs - https://docs.oracle.com/cd/E19253-01/819-5461/gcikw/index.html