Ситуация такова: Когда-то давно в 2019 году, обратилась знакомая бухгалтер, с
проблемой, что вирусы зашифровали все её базы 1С, хранящиеся на личном сервере,
который ей поднял и оформил для работы по RDP - её айтишник. Когда вирус всё
пожрал, внезапно обнаружилось, что отсутствуют резервные копии, так как они
хранились на том же WIN-сервере, и оказались также пожранными. Более того, в
процессе разбирательств с этой машиной, выяснилось, что там 4 диска, 2 - HDD и
2 SSD - и при этом все они отдельными устройствами, без намёка на хоть какую-то
реализацию зеркалирования. Айтишника этого она с позором выгнала (отказавшись с
ним иметь дело) и обратилась ко мне.
Понятно что не за восстановлением пожранного, а за организацией сервера, в
работе и надёжности которого она бы могла быть уверена.
Я как старый пользователь FreeBSD, конечно сразу ей сформировал предложение -
эту её машину превратить в сервер на FreeBSD, а уже на нём развернуть виртуалку
с виндой, 1С и всей этой нужной для её работы кухней.
На предложение докупить ещё один ПК, чтобы был отдельной машиной для резервных
копий - отказалась, так как женщина она во-первых бухгалтер, а во-вторых
прижимистый бухгалтер :)
Всё ей в итоге оформил в виде хоста на FreeBSD, c её ZFS-ным зеркалом на 2 HDD
и 2 SSD, и самбой, на которую складировались ежедневные бэкапы, которые затем
скриптом самого хоста перекладывались в samba-ресурс, доступный только на чтение.
Виртуалку оформил на BHyVe'е, так как виртуалбокс медленнен, а BHyVe и
православный и производительней. Sparse - файлом оформил диск на HDD-пуле под
систему в виртуалке, и SSD-пул - подключил zvol'ом как диск под базы 1С.
Разворачивал BHyVe не голый, а с управлением с помощью vm-bhyve. Всё
завелось и работало, как часы. Но через год-полтора, женщина-бухгалтер и со
мной "рассталась", так как всё работало, а я за поддержку желал ежемесячную,
оговорённую сумму.
Никаких козней я понятное дело не строил, да и не собирался, так как честь
IT-шную беречь должно всегда. И все актуальные копии хранилища со всеми
доступами и чего там наворочено в её "инфраструктуре" я ей при внесении правок
сразу высылал и при завершении сотрудничества также актуальную выдал, с
пояснениями, что там всё что есть, все доступы и прочая-прочая, что может
понадобиться знать любому, кто будет заниматься её сервером. Ответы на все
вопросы так сказать. Всё.
Собственно прошло 3-4 года, и вот недавно звонит она мне и говорит, что всё
пропало. Сервак не грузится, её текущий админ не знает что со всем этим делать,
так как с его слов "там сложная распределённая система и диски эти не может
посмотреть". Короче сервак подох, ничего не работает, и ей главное выцарапать
оттуда 1С базы.
Получил, включил, смотрю: Действительно ничего не грузится, что-то там с uefi
разделом, и загрузка дохнет на начальных этапах. Думаю - ничего страшного, там
же бэкапы были, сейчас быстренько смонтирую пул, да последний достану и дело с
концом. Загрузился с флешки, подмонтировал пул, который был HDD, под самбу -
смотрю а бэкап последний лежит прошлогодний. Место на пуле закончилось, так как
самбу они ещё и как файловую шару использовали и накидали туда всякого, что
подъело весь ресурс и баз видимо 1С ещё добавилось, и бэкапы делаться просто не
смогли, а текущий специалист, то ли не следил, то ли не знал как следить,
короче перефразируя (надеюсь) из тех, кто: "Не следил и не проверял бэкапы, но
теперь уже будет всегда это делать (ещё раз надеюсь)".
Тогда остался один путь - получить данные непосредственно с диска в виртуалке,
который реализован был как отдельный датасет на SSD пуле. Отцепил я значит один
из SSD'шников и подключил к своему домашнему ПК, на котором у меня также
FreeBSD и виртуалка BHyVe, с виндой, на случай если что-то виндовое
потребуется. В общем вся соль этого была в подключении к BHyVe'овой машине
диска оформленного как сырой ZFS-датасет. То есть в нём ни файлов нет, просто
особого типа ZFS датасет.
В итоге, чтобы его подключить на посторонней системе с FreeBSD, надо конечно
первым делом ZFS-пул импортировать:
zpool import -f
-f нужен, так как он ругнётся что этот пул использовался на другой машине и
вроде как может не надо его тут подключать.
А после этого в
zfs list
ищем где наш датасет и объявляем его в конфигурации нашей рабочей виртуалки:
disk1_type="virtio-blk"
disk1_dev="custom"
disk1_name="/dev/zvol/oldSSD/BHYVE/1C-BASES"
И это тут так всё просто и безоблачно описано, а на деле я часа два наверное
бодался с тем, как именно объявить zvol-овый диск в BHyVe. И в итоге
disk_type - должен быть virtio-blk
disk_dev - должен быть custom
disk_name - абсолютный путь к zvol'у в /dev, сперва это можно просто проверить ls'ом.
Ну а дальше - ещё в самой загруженной ОСи диск не увиделся, но появился SCSI
контроллер какой-то, который потребовал драйвера с диска
virtio-win-0.1.229 и всё.
Женщина - оплатила услуги непростого восстановления файлов, получила инструктаж
на тему того, что её админ должен ей подтверждать что бэкап есть и он надёжен.
Ну а она со своей стороны должна за этим бдить :)
|