Възстановяване на "Local Storage" след падането на XenServer
Статията се състои от три параграфа:
- описание на причината и следствието
- системен анализ
- възстановяване на работата
Описание на причината и следствието
Светлините в сградата бяха изключени за дълго време, след което UPS-ите на сървъра започнаха да се изключват, първи се изключи главният UPS в сървърния пул.Последствие: след възстановяване на захранването и стартиране на сървъра, басейнът се разпадна.
Системен анализ
При стартиране на XenServer пулът беше празен и виртуалните машини бяха извън пула. Първо погледнах регистрационните файлове за стартиране на пула, които дадоха следната информация„Вътрешна грешка: няма стартиращо устройство“. Както се оказа,Локалното хранилищее загубено. За да се уверя в това, погледнах uuid на диска чрез gui и въведох# xe sr-listТази команда показва информация за всички свързани хранилища. Командата не изведе нищо, след което проверих списъка VBD# xe vbd-listв елементите vdi-uuid вместо uuid бешеи естествено командата# xe vdi-listне показва нищо.
Реших да проверя хранилищата на ниво LVM, първо проверих списъка с PV с командата# pvscanОткрих, че има PV; Въведох и командата# pvdisplayИ тя не ми върна нищо. Тоест след падането метаданните са били загубени, което означава, че информацията е физически запазена и всичко си е било на мястото. Една от полезните натруфенки на LVM е, че автоматично прави резервни копия на метаданни, когато създава и попълва пула, но можете да ги направите и ръчно с командата# xe pool-dump-database. След това проверих наличието на резервно копие на метаданни# ls -lh /etc/lvm/backup/има резервно копие, можете да започнете възстановяването.
Възстановяване на работа
И така, има резервно копие, въвеждам командата за възстановяване на VG метаданните# vgcfgrestore VG_XenStorage-XXXXкъдето VG_XenStorage-XXXX е името на архивния файл; но получи грешка, че няма устройство с посочения uuid. Без да мисля два пъти, реших да сравня PV UUID от изхода на командата# pvdisplayC ID от архивния файл (блок физически_обеми) те не съвпадат, но дялът съвпада. И това също не е проблем. Премахна страта PV# pvremove /dev/sdXYкъдето X е серийният номер на диска (използват се буквите a, b, c, d и т.н.), а Y е серийният номер на дяла на диска (използват се числата 1, 2, 3 и т.н.). След това създаде нов PV в същия дял# pvcreate /dev/sdXYNсега замени идентификатора на устройството в архивния файл, в блока физически_обеми, с получения PV UUID на новия PV. Сега отново се опитвате да архивирате метаданни# vgcfgrestore VG_XenStorage-XXXXкоманда върна успех.
Освен това, водени от статията от Citrix, добавяме „Local Storage“ към пула: 1) Идентифицирам SR-UUID на текущия диск с помощта на# pvscanкомандата връща VG_XenStorage-XXXX, където XXXX е необходимият SR-UUID.
2) След това въвеждам SR# xe sr-introduce uu content-type=user
3) Сега трябва да създадете PBD от съществуващ PV, но за това трябва да получите SCSI ID на устройството, UUID на хоста и SR-UUID (това вече е мрежа) 3.1) Разберете SCSI ID# ls -l /dev/disk/by-id/Върната команда: lrwxrwxrwx 1 root root 10 юни 4 17:35 sc si-SATA_ST32000645NS_Z2939GCT-part3 -> ../../sdXY; Необходимият SCSI ID е "scsi-SATA_ST32000645NS_Z2939GCT-part3", койторазположен на /dev/sdXY дяла - на който PV е бил създаден преди това.Забележка: SCSI ID - няма да съвпада с вашия, използвах моя като пример.
3.2) UUID, въпреки че го получавам със следната команда# xe host-list params=uuid; Командата извежда само UUID: uuid (RO): YYYY, където YYYY е UUID на хоста.
3.3.) Сега кодът е готов, създайте PBD# xe pbd-create sr-uu >. Командата връща UUID на този запис.
4) Сега ще закрепим “Local Storage” в XenServer# xe pbd-plug uu >, където ZZZZ е UUID, получен в параграф 3.3.
Сега пулът вижда своето „Locale Storage“ и има виртуални дискове, единственото, което остава, е да свържете VM към техните дискове.
Забележка: ако имената на вашата виртуална машина липсват, няма проблем. Използвайки метода на груба сила, изберете диска за виртуалната машина и задайте имената за тях чрез настройките. Същото важи и за името на локалното хранилище.
Всички действия бяха извършени въз основа на документацията от RadHat (LVM) и Citrix (XenServer) .
И тук можете да получите грант за тестов период на Yandex.Cloud. Необходимо е само да въведете "Habr" в полето "секретна парола".
Написа добър текст - получи покана.
Предварителната модерация работи в Sandbox: преди публикуване всички материали преминават през грижовните лъчи на НЛО.
С голяма вероятност те няма да преминат предварителна модерация: