воскресенье, 21 апреля 2013 г.

copy vhd from nfs/cifs

Итак задача: скопировать в локальный стораж VHD с сетевого хранилища.
Можно сделать это через импорт в XenCenter, но тут есть свой ньюанс - надо приаттачить сетевой диск к машине и трафик будет идти по схеме NAS - машина с XenCenter - XenServer, что соответственно негативно скажется на скорости. Еще можно приаттачить NFS-VHD storage, тут уже всё ок, но не всегда работает. ( кстати: чтобы добавить туда свой VHD-образ надо создать новый диск, а затем заменить его своим образом )

А можно пойти другим путем.
Нам нужна будет утилитка vhd2xen от акрониса ( можно взять тут )
качаем: wget http://download.acronis.com/vhd2xen.i686
даем права на исполнение: chmod +x vhd2xen.i686
ну и запускаем установку: ./vhd2xen.i686
далее отвечаем на несложные вопросы
и вуаля - всё готово для нашего действа.
Установилась наша утилитка вот сюда: /usr/lib/Acronis/VHD2XEN/.

Далее нам надо смонтировать наш сетевой диск
mount -t nfs ip:/path /mnt/storage
или mount -t cifs //share /mnt/storage -o username=**** password=****

Все готово к импорту, можно начинать:




[root@WWiskas disk_c]# /usr/lib/Acronis/VHD2XEN/vhd2xen.sh /mnt/storage/path/to/vhd.vhd

Copyright (C) Acronis, 2000-2008.
All rights reserved.

VHD to XEN converter

Select the storage repository to import VHD file to:
1. uuid - XenServer... (unknown)
2. uuid - Local... (local)
3. uuid - DVD... (unknown)
4. uuid - Removable... (unknown)
2

A VHD file must be decompressed before importing to an internal
storage. You need about 98Gb free space to save the raw
uncompressed image and write permissions in the location where
the original VHD file is stored.

Enter XEN name for imported disk:
ИМЯ_ДИСКА_для_XEN

Importing may take a long time depending on vhd size.


спустя некоторое время:
Conversion done, importing to XEN...

и еще немного погодя:
Import successfully finished!

в общем по гигабиту у меня копирование диска в 100ГБ ( 40 занято ) заняло около 4х часов. ( ну вернее скорость копирования в среднем была 20-35 Мб/сек )


Всё, нам остается только ожидать счастливого окончания операции.
А, и еще - нам потребуются права на запись в папку с VHD, иначе импорт закончится крашем.

но этот способ тоже не идеален - сначала оно делает RAW обрах, который равен по объему всему месту, а не только данным, и затем копирует его.

вторник, 16 апреля 2013 г.

Xenserver 6.1 raid monitoring

Нормально Dell Openmanage не встает на XenServer 6.1, так что приходится извращаться.


сначала добавим репозитарии делла:

wget -q -O - http://linux.dell.com/repo/software/bootstrap.cgi | bash

в конце увидим:
Installing repository rpm: http://linux.dell.com/repo/community/content/el5-i386/noarch/dell-community-repository-1-11.2.el5.noarch.rpm
Done!

далее второй реп:
wget -q -O - http://linux.dell.com/repo/hardware/bootstrap.cgi | bash

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

yum -y install srvadmin-base
yum -y install srvadmin-storageservices

после этого было бы неплохо перезагрузиться, но можно и потом.

после этого можно смотреть статус с помощью команды 

omreport storage vdisk

если у вас не работает, то вероятнее всего надо создать симлинк: 
ln -s /opt/dell/srvadmin/sbin/omreport /usr/local/sbin/omreport

пятница, 5 апреля 2013 г.

скрипт для удаления всех .rpm в директории


for i in $(ls *.rpm)
do
DIR=`echo $i | sed 's/\.deb//g'`
rpm -e $i
echo $DIR
echo "============================================="
done

так же можно и устанавливать.

а можно и к дебиану приспособить - поменять маску, и заменить rpm на dpkg

четверг, 4 апреля 2013 г.

Автостарт для XenServer

http://kopacb.github.com/XenHelp/

все очень просто - добавляем в крон с нужной периодичностью, время на запуск машин можно не учитывать - второй раз скрипт не запустится.

Далее добавляем тег Autostart для машин, которые нужно стартовать.

Ну и  радуемся жизни (:

тут всякие полезности для гзена

http://ogris.de/howtos/xen-pci-passthrough.html - пробрасываем pci устройство

среда, 3 апреля 2013 г.

Тут буду собирать уязвимости роутеров

D-LINK многие модели отдадут вам пароли по ссылочке http://ip/save_configuration.cgi
D-LINK 615 может отдаться через  http://IP_роутера/tools_admin.htm?page=tools_admin&admin_password1=admin2&admin_password2=admin2&hostname=DIR-615


ну и можно попробовать тут: http://routerpwn.com

вторник, 2 апреля 2013 г.

Софтварный рейд на ксен 6.*



скопипижжено с: http://kryuchkov62.blogspot.ru/2012/10/software-raid1-citrix-xenserver-602_4.html



Алгоритм работы:


- создать на втором диске файловую систему, аналогичную XenServer
- запустить на нем softraid
- перенести сам XenServer на второй диск
- загрузиться со второго диска, т.е. уже с программного RAID
- подключить к новоиспеченному RAID массиву первый диск


Системный блок:


Материнская плата - Foxconn G31MXP


Процессор - Intel Pentium E5300 @ 2600 МГц


Оперативная память - 4096 Кб (2 x 2048 DDR2-SDRAM )


Дисковая подсистема - 2 Seagate ST3250813AS (250 Гб)






*Примечание: если у вас аналогичная материнская плата, то решение проблемы с определением 3 гигабайт оперативной памяти ****тут.


Устанавливаем XenServer 6.0.2. При установке я выбрал первый диск.

Установили. Переходим в консоль или подключаемся по SSH. Я использую Putty.


Расклад:


sda – диск с XenServer
sdb – пустой диск



Задача: подготовить второй диск к созданию массива (создать на нём копию таблицы разделов первого диска)

Смотрим таблицу разделов на sda


# gdisk -l /dev/sda






Проверяем, что таблица разделов на sdb пуста:


# gdisk -l /dev/sdb




С помощью gdisk вручную создаем на sdb таблицу разделов:


# gdisk /dev/sdb




*Примечание: с помощью клавиши "n" создаём три раздела (номер раздела, стартовые и конечные сектора должны полностью совпадать, тип раздела при этом необходимо указывать fd00 (Linux RAID)). После завершения нажимаем "w" для записи изменений и выходим из gdisk. Все команды можно узнать набрав "?".

Таблица должна быть идентична диску sda.

*Примечание: рекомендую настраивать по SSH, т.к. там легко копируюся любые элементы.






Проверяем наши диски:

# gdisk -l /dev/sda

# gdisk -l /dev/sdb

и если никаких различий (кроме типа раздела) - продолжаем


Создадим устройства MD на втором диске:


1# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing


2# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb2 missing


3# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb3 missing



Создадим и перенесем Local Storage в RAID:

1# pvcreate /dev/md2
2# vgextend VG_[tab] /dev/md2
3# pvmove /dev/sda3 /dev/md2

Примечание: [tab] - означает нажать клавишу Tab, чтобы дописать ваше значение.


Удалим старый storage с первого диска:


1# vgreduce VG_[tab] /dev/sda3
2# pvremove /dev/sda3




Создадим файловую систему на RAID:


# mkfs.ext3 /dev/md0



И смонтируем ее:


# mount /dev/md0 /mnt




Скопируем сам XenServer в RAID:


1# cd /


2# cp -axv . /mnt




Редактируем fstab для монтирования root раздела с RAID:

# nano /mnt/etc/fstab



вместо строки:

LABEL=root-xxx / ext3 defaults 1 1


должна получиться строка:


/dev/md0 / ext3 defaults 1 1






Создаем загрузочный образ для RAID:

1# mkdir /mnt/root/initrd-raid
2# mkinitrd -v --fstab=/mnt/etc/fstab /mnt/root/initrd-raid/initrd-`uname -r`-raid.img `uname -r`
3# cd /mnt/root/initrd-raid
4# zcat initrd-`uname -r`-raid.img | cpio -i




Редактируем файл init:

# nano init



и добавляем после

raidautorun /dev/md0


две строки:

# raidautorun /dev/md1
# raidautorun /dev/md2


Копируем новый диск в каталог /mnt/boot

1# find . -print | cpio -o -Hnewc | gzip -c > /mnt/boot/initrd-`uname -r`-raid.img
2# rm /mnt/boot/initrd-2.6-xen.img
rm: remove symbolic link `/mnt/boot/initrd-2.6-xen.img’? y
3# ln -s initrd-`uname -r`-raid.img /mnt/boot/initrd-2.6-xen.img


Редактируем загрузочное меню:

# nano /mnt/boot/extlinux.conf

Требуется заменить все упоминания:

root=LABEL=root-xxx


на:

root=/dev/md0


Устанавливаем MBR для GPT на втором диске:

1# cat /mnt/usr/share/syslinux/gptmbr.bin > /dev/sdb
2# cd /mnt
3# extlinux --raid -i boot/


Корректно размонтируем второй диск:

1# cd
2# umount /dev/md0
3# sync


Проверяем, что флаг загрузочного диска корректно установлен на обоих дисках:

1# sgdisk /dev/sda --attributes=1:set:2

2# sgdisk /dev/sdb --attributes=1:set:2


Перезагружаем сервер. И ЗАГРУЖАЕМСЯ СО ВТОРОГО ДИСКА, то есть уже с RAID. Во избежание путаницы, возможность загрузки с первого диска лучше вообще отключить в BIOS.

reboot




После загрузки с RAID нам надо настроить файловую систему первого диска для работы в RAID:


# gdisk /dev/sda


*Примечание: с помощью клавиши t меняем типы для всех трех разделов на fd00 (Linux RAID). После завершения нажимаем w для записи изменений и выходим из gdisk. Все команды можно узнать набрав "?".


Теперь можно включать первый диск в RAID:

1# mdadm -a /dev/md0 /dev/sda1

mdadm: added /dev/sda1

2# mdadm -a /dev/md1 /dev/sda2

mdadm: added /dev/sda2

3# mdadm -a /dev/md2 /dev/sda3

mdadm: added /dev/sda3


Процесс синхронизации (ребилда) массива можно смотреть с помощью команды:

# watch cat /proc/mdstat


После завершения ребилда вносим последние изменения в настройки:

# mdadm --detail --scan >> /etc/mdadm.conf


И перезагружаемся. Для корректной загрузки в случае отказа одного из дисков, требуется настроить в BIOS загрузку системы с обоих жестких дисков по-очереди.

Необходимые команды для работы с RAID можно найти здесь.





2# vgextend VG_[tab] /dev/md2
3# pvmove /dev/sda3 /dev/md2


1# vgreduce VG_[tab] /dev/sda3
2# pvremove /dev/sda3

у меня эти команды не выполнялись, поэтому я сам называл VolumeGroup по типу VG1 VG2 и т.д. и в конце сделал руками сторадж. Поэтому НАСТОЯТЕЛЬНО рекомендую делать это на чистой мшине, до того как вы начнете заселять её виртуалками. Ну и соответственно НЕ рекомендую делть это на живой машине.