Записи с Меткой ‘ Xen

Xenserver disable ha pool

I use the host-emergency-ha-disable Force=true command I cannot restart the toolstack because
I use a commandfile…

the problem is that after using host-emergency-ha-disable Force=true* the *host-disable enabled=true —multiple
command because it fails with an error «This operation cannot be performed because HA would no longer be guaranteed for this pool…»

It seems that running pool-ha-disable* after *host-emergency-ha-disable works — I hope that it will not
hang at pool-ha-disable if it is an emergency shutdown…

xenserver = centos 5 repo

nano /etc/yum.repos.d/CentOS-Base.repo
nano /etc/yum.repos.d/CentOS-Vault.repo
enable=1

И радуемся тому что есть в репах, например:
yum -y install htop

udev правила xenserver centos — nic ordering

1. Вариант.
http://habrahabr.ru/post/204052/

2. Вариант.
Если при кривом рестарте системы. Посыпался файл /etc/udev/rules/*net*.rules, который в Xenserver 6.5 генериться из /etc/sysconfig/network-scripts/interface-rename.py, причем

[root@srv-xen1 ~]# /etc/sysconfig/network-scripts/interface-rename.py --list
Name  MAC                PCI           ethN  Phys  SMBios  Driver   Version     Firmware
eth0  1c:6f:65:21:2f:47  0000:04:00.0  eth0                r8169    2.3LK-NAPI  rtl_nic/rtl8168d-2.fw
eth2  00:80:48:5d:d2:66  0000:08:03.0  eth1                8139too  0.9.28

[root@srv-xen1 ~]# lspci -v | grep Ethernet
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 03)
08:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (rev 10)
        Subsystem: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter

 

Причем если машина с Xenserver не видит Мастера Пула. То выгрузиться или перезагрузиться она не сможет тк. встает колом служба Xapi.

Вопрос решился таким способом:

[root@srv-xen1 ~]# mv /etc/udev/rules.d/60-net.rules /root/60-net.rules
[root@srv-xen1 ~]# shutdown -rf now

 

Но нормально машина не рестартанет, нужно дернуть ее руками или man shutdown

Накидаю на всякий случай данных по Udev.

http://support.citrix.com/article/CTX135809

Xenserver 6.5 nfs4 client default

1. Изменить дефолтную версию клиента по-умолчанию в файле /opt/xensource/sm/nfs.py на 4

Very simply, edit the file /opt/xensource/sm/nfs.py and change line 46 to use ‘4’ instead of ‘3’ :

DEFAULT_NFSVERSION = ‘4’

and reboot.

NFS mounts for SRs that support NFSv4 now all seem to come up using this (as seen in /etc/mtab). Manual entries in /etc/fstab can also be adjusted to specify nfs4 in the definition (such as for defining NFS export locations for backups and such), but the «tcp» option must be removed from the options list since it is for NFSv4 both the default and no longer supported as an option (I believe you can request udp as a specific alternative).

2. Рестарт серверов Xen.
3. Проверить маунтится ли клиент в локальную папку.
4. Если выдает ошибку mount: can’t get address for , то прописать в /etc/hosts все ip адреса серверов, например: 192.168.4.7 srv-xen1 srv-xen1.example.com
5. Пробовать подключать nfs в pool серверов Xen. Например: 192.168.4.10:/mnt/nfs.
Все.

Восстановление «Local Storage» после падения XenServer

Habrahabr

Добрый день, данная статья ориентирована на новичков в направлении «Системного администрирования».

Статья состоит из трех пунктов:
описание причины и следствия
анализ системы
восстановление работы

Терминология:
LVM — Logical Volume Manager
PV — Physical Volume
PBD — Physical Block Device
VBD — Virtual Block Device
VG — Virtual Group
VM — Virtual Machine
SR — Storage Repository

Описание причины и следствия

В здании выключили свет на длительное время, после чего начали выключатся серверные UPS’ы, первым выключился UPS мастера в пуле серверов.
Следствие: после возобновления питания и запуска сервера, пул рассыпался.

Анализ системы

При запуске XenServer’а, пул оказался пустым, а VM находились вне пула.
Первым делом смотрел логи запуска пула, что дало следующую информацию «Internal error: there is no bootable device». Как оказалось потерялся «Local Storage». Дабы удостоверится в этом, посмотрел uuid диска через gui и в консоли мастера ввел
# xe sr-list
Данная команда выводит информацию о всех подключенных хранилищах. Команда ничего не вывела, далее проверил список VBD
# xe vbd-list
в пунктах vdi-uuid вместо uuid было и естественно команда
# xe vdi-list
ничего не выводит.

Решил поверить хранилища на уровне LVM, сперва проверил список PV коммандой
# pvscan
Oбнаружил, что PV есть; так же ввел команду
# pvdisplay
И она мне ничего не вернула. То есть после падения потерялись метаданные, а это значит, что физически информация сохранилась и все на месте. Один из полезных пряников LVM состоит в том что, он делает бэкапы метаданных автоматически при создании и наполнении пула, но можно делать их и в ручную коммандой
# xe pool-dump-database.
Далее проверил наличие бэкапа метаданных
# ls -lh /etc/lvm/backup/
бэкап есть, можно начинать восстановление.

Восстановление работы

И так, бэкап есть ввожу команду для восстановления метаданных VG
# vgcfgrestore VG_XenStorage-XXXX
где VG_XenStorage-XXXX — это имя файла бэкапа; но получил ошибку о том, что нет девайса с указанным uuid. Недолго думая решил сравнить PV UUID из вывода команды
# pvdisplay
C ID из файла бэкапа (блок physical_volumes) они не совпадают, но партиция совпадает. И это тоже не беда.
Удалил стратый PV
# pvremove /dev/sdXY
где X — это порядковый номер диска (используются латинские буквы a, b, c, d и т.д.), а Y — порядковый номер партиции на диске (используются цифры 1, 2, 3 и т.д.).
Далее создал новый PV в тот же раздел
# pvcreate /dev/sdXY
Nеперь заменил ID устройства в файле бэкапа, в блоке physical_volumes, на полученный 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 uuid=XXXX type=lvm name-label=»Local storage» 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 scsi-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-uuid=XXX device-config:device=/dev/disk/by-id/scsi-SATA_ST380815AS_6QZ5Z1AM-part3 host-uuid=YYYY.
Команда возвращает UUID этой записи.

4) Теперь прикрутим «Local Storage» в XenServer
# xe pbd-plug uuid=ZZZZ, где ZZZZ — это и есть UUID полученный в пункте 3.3.

Теперь пул видит свой «Locale Storage», а в нем есть виртуальные диски, осталось только одно, подключить VM их диски.

Примечание: если у вас пропали имена виртуальных машин, это нестрашно. Методом перебора, подберите диск к VM и через настройки укажите им имена. Тоже касается и имени локального хранилища.

Все действия были произведены на основании документации от RadHat (LVM) и Citrix (XenServer)

Backup Xenserver

https://phdtechsupport.zendesk.com/hc/en-us/articles/202734250-Download-PHD-Virtual-Backup-Version-6-5-3-for-VMWare-or-Citrix

Download PHD Virtual Backup Version 6.5.3 for VMWare or Citrix

6.5.3 full Citrix

6.5.3 full VMware

Настройка PHD Virtual Backup
http://wagthereal.com/2011/06/06/consolidating-xenserver-pools-using-phd-virtual-backup-part-1/

http://sysadminnotebook.blogspot.ru/2011/05/xenserver-backup-solutions.html

We have since replaced the CPU’s in the newer servers and now we wish to consolidate our pools into one group. Currently the two pools are split along functionality, with one being for production and the other being for development. We are using PHD Virtual Backup to archive PVS master images, Citrix Streaming profilers, and some other systems only in the development pool.

This blog series will detail the steps I went through in order to consolidate all our VM’s and Servers into one pool.

Install PHD Virtual Backup

The first step is to install PHD into the production XenServer pool so we can perform restores into this pool.

Download the PHD Virtual Backup for Citrix trial from http://www.phdvirtual.com/downloadtrial_citrix
Extract the compressed file and launch the phdvb.msi on a computer with XenCenter installed.
Accept the license agreement and click Finish when the Installation wizard completes.
Restart XenCenter
Import the PHD virtual appliance (PHDVBA.xva)
If the appliance does not get an IP, you must go to the console and set a static or dynamic IP by typing Ctrl-N.
Right-click the appliance and select the Console

Click Configuration and setup the backup agent…

In my next post we will test a backup from one pool to a restore in the other pool.

Xen Failed to connect, Could not connect

После переноса сервера определилась проблема с отваливанием XenCentra и ssh от гипервизора, но пинг при этом ходил стабильно.
Путем боли и гугла, нашел что часто такие проблемы возникают из за второй машины в сети с аналогичным ipшником или недефолтные настройки ACPI для жестких в биосе.

В общем когда я нашел одну из точек доступа, которой был назначен аналогиный Ip я долго «выражал боль и печаль».

Восстановление сбойных секторов на диске

В /var/log/messages очень не понравилась строчка

[sdb] Add. Sense: Unrecovered read error — auto reallocate failed

Стало понятно, что винт такого обращения с собой не потерпел и начал «сыпаться».

Более полный лог из /var/log/messages:

kernel: [ 237.553123] ata6.00: configured for UDMA/100
kernel: [ 237.553161] ata6: EH complete
kernel: [ 239.373067] ata6.00: configured for UDMA/100
kernel: [ 239.373102] ata6: EH complete
kernel: [ 241.196966] ata6.00: configured for UDMA/100
kernel: [ 241.197000] ata6: EH complete
kernel: [ 243.005896] ata6.00: configured for UDMA/100
kernel: [ 243.005927] ata6: EH complete
kernel: [ 244.820846] ata6.00: configured for UDMA/100
kernel: [ 244.820878] ata6: EH complete
kernel: [ 246.637758] ata6.00: configured for UDMA/100
kernel: [ 246.637797] sd 5:0:0:0: [sdb] Unhandled sense code
kernel: [ 246.637801] sd 5:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
kernel: [ 246.637808] sd 5:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor]
kernel: [ 246.637817] Descriptor sense data with sense descriptors (in hex):
kernel: [ 246.637821] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00.
kernel: [ 246.637842] 0f 9e 54 40.
kernel: [ 246.637850] sd 5:0:0:0: [sdb] Add. Sense: Unrecovered read error — auto reallocate failed
kernel: [ 246.637860] sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 0f 9e 54 3f 00 00 08 00
kernel: [ 246.637918] ata6: EH complete

Чтение dmesq позволило узнать номер сбойного сектора:
[32690.514629] ata6.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[32690.514639] ata6.00: BMDMA2 stat 0x6c0009
[32690.514648] ata6.00: failed command: READ DMA
[32690.514665] ata6.00: cmd c8/00:08:3f:54:9e/00:00:00:00:00/ef tag 0 dma 4096 in
[32690.514668] res 51/40:00:40:54:9e/00:00:00:00:00/ef Emask 0x9 (media error)
[32690.514676] ata6.00: status: { DRDY ERR }
[32690.514682] ata6.00: error: { UNC }
[32690.528582] ata6.00: configured for UDMA/100
[32690.528620] sd 5:0:0:0: [sdb] Unhandled sense code
[32690.528626] sd 5:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[32690.528636] sd 5:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor]
[32690.528661] Descriptor sense data with sense descriptors (in hex):
[32690.528665] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
[32690.528685] 0f 9e 54 40
[32690.528693] sd 5:0:0:0: [sdb] Add. Sense: Unrecovered read error — auto reallocate failed
[32690.528703] sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 0f 9e 54 3f 00 00 08 00
[32690.528721] end_request: I/O error, dev sdb, sector 262034496
[32690.528765] ata6: EH complete

Проверить, действительно ли этот блок поврежден, можно при помощи hdparm:

# hdparm —read-sector 262034496 /dev/sdb

/dev/sdb:
reading sector 262034496: FAILED: Input/output error

Теперь пробуем перезаписать сбойный блок нулями (hdparm умеет обходить системные механизмы чтения/записи на диск):

# hdparm —write-sector 262034496 /dev/sdb

/dev/sdb:
Use of —write-sector is VERY DANGEROUS.
You are trying to deliberately overwrite a low-level sector on the media.
This is a BAD idea, and can easily result in total data loss.
Please supply the —yes-i-know-what-i-am-doing flag if you really want this.
Program aborted.

Утилита нас предупреждает о возможных последствиях и просит подтвердить наши серьезные намерения, запустив ее с параметром «—yes-i-know-what-i-am-doing» («да-я-понимаю-что-делаю«):

# hdparm —write-sector 262034496 —yes-i-know-what-i-am-doing /dev/sdb

/dev/sdb:
re-writing sector 262034496: succeeded

И еще раз проверяем данные в этом секторе:

# hdparm —read-sector 262034496 /dev/sdb

/dev/sdb:
reading sector 262034496: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

Как видим, всё забито нулями.

Ну что же, работа компьютера резко ускорилась, теперь осталось провести тест поверхности
# smartctl -t long /dev/sdb

периодически поглядывая в логи выполнения
# smartctl -l selftest /dev/sdb

радуемся статусам
Completed without error

Local NFS storage xenserver 6.5

1. mkfs -t ext3 /dev/md3
2. mkdir /mnt/nfs{vdisk,iso}
3. mount -t ext3 /dev/md3 /mnt/nfs
4. echo «/dev/md3 /mnt/nfs ext3 defaults 0 0» >> /etc/fstab
5. echo «/mnt/nfs/iso 192.168.0.0/255.255.255.0(rw,no_root_squash,sync)» >> /etc/exports
6. echo «/mnt/nfs/vdisk *(rw,no_root_squash,sync)» >> /etc/exports
7. exportfs -r
8. exportfs
9. lsmod | grep nfs
Если все печально и ничего на выходе нет, то
10. modprobe nfsd
+ echo «modprobe nfsd» >> /etc/rc.local
+ echo «modprobe nfsd» >> /etc/rc.sysinit
>> 9 тест
chkconfig nfs on
chkconfig portmap on

11. sed -i -e ‘s/PMAP_ARGS=-l/PMAP_ARGS=/’ /etc/sysconfig/portmap
Если не проходит и service portmap start валиться с ошибкой нужно привести файл к виду
PMAP_ARGS=»»
12. Раскоментируем /etc/sysconfig/nfs
MOUNTD_PORT=892
!!!
Иначе не достучимся!

13. Добавляем правила iptables для nfs и portmap /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p tcp -m tcp —dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp —dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp —dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp —dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp —dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp —dport 892 -j ACCEPT
14. В порядке очереди дергаем службы
service portmap restart & service nfs restart & service iptables restart

15. showmount localhost
16. rpcinfo -p

Жесткое присвоение портов.

Создание Локольного ISO репозитория Xen

Create new partition and file system

# fdisk /dev/sdb
# mkfs.ext3 /dev/sdb1

Mounting the new partition and configure fstab

# mkdir /mnt/isos/
# mount -t ext3 /dev/sdb1 /mnt/isos/
# vi /etc/fstab
/dev/sdb1 /mnt/isos ext3 defaults 0 2

Creating the new local ISO storage repository

# xe sr-create name-label=ISOS type=iso device-config:location=/mnt/isos/ device-config:legacy_mode=true content-type=iso

Copying a new ISO to the new repository

$ scp debian-6.0.5-i386-CD-1.iso root@172.16.201.200:/mnt/isos/

Checking the new local storage is added

# xe sr-list

uuid ( RO) : e85dc938-ea06-e26d-2acd-ceeaa3778f83
name-label ( RW): ISOS
name-description ( RW):
host ( RO): XenServer-1
type ( RO): iso
content-type ( RO): iso

The new library appears in Xen center:

Checking the ISO image copied successfully

# xe vdi-list

uuid ( RO) : d37c744c-7684-4aef-8644-22102346dc5c
name-label ( RW): debian-6.0.5-i386-CD-1.iso
name-description ( RW):
sr-uuid ( RO): e85dc938-ea06-e26d-2acd-ceeaa3778f83
virtual-size ( RO): 678428672
sharable ( RO): false
read-only ( RO): true