Proxmox, ceph, zfs, pfsense и все-все-все - часть 1
-
Миграция с других гипервизоров (локально).
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
-
На что лучше устанавливать? SSD или HDD?
На что хватит ресурсов 8 Xeon/32 Гб? -
У меня - на 4-ех HDD 7200 rpm . При установке в самом начале (внизу) выбрал zfs raid 10 и свои 4 диска + lz4 сжатие явно указал.
Плюс, отдельно докинут SSD, к-ый разбит на 2 партиции - меньшая для l2arc cache, большая - как zfs для дисков вирт. машин.На что хватит ресурсов 8 Xeon/32 Гб?
А кто ж его знает.
P.s. Разворачивание proxmox я бы рекомендовал начать с тестов в Virtualbox. Чтобы не залюбиться.
-
Правильно ли я понимаю, что аппаратных рейдов надо избегать? Они не нужны?
-
Верно. Избегать как огня.
"ZFS can not fully protect the user's data when using a hardware RAID controller, as it is not able to perform the automatic self-healing unless it controls the redundancy of the disks and data. ZFS prefers direct, exclusive access to the disks, with nothing in between that interferes. If the user insists on using hardware-level RAID, the controller should be configured as JBOD mode (i.e. turn off RAID-functionality) for ZFS to be able to guarantee data integrity"
Аппаратный контроллер нужно перепрошить, если он не поддерживает работу без рейда.