Как правильно подойти к установке серверов Ubuntu на гипервизоре Xen? У меня нет опыта работы с RAID или Xen, кроме теоретического уровня.
Дополнительные требования:
Возможные идеи на данный момент:
Вопросы и опасения:
Примечание: поскольку это может иметь отношение к поддержке, я имею в виду Ubuntu Server 10.04.
Ответы:
Если вы используете программный рейд в Linux, вы должны создать раздел для вашего экземпляра dom0 и большой раздел с остальной частью жесткого диска.
Затем вы используете этот большой раздел как физический диск lvm и создаете один или несколько логических дисков lvm для каждой виртуальной машины.
Это позволяет вам легко увеличивать / уменьшать размер конкретного логического привода.
1. Можно ли использовать Ubuntu в качестве хоста dom0 Xen?
Установите Ubuntu 10.04 Server PV DomU на Xen 4.0 Dom0
Установите Libvirt 0.8.1 и Xen 4.0.1 Dom0
2. Может ли XenServer устанавливать такие пакеты, как mdadm, и создавать раздел?
Установка может быть немного сложной, но я могу работать. XenServer использует RHEL 5 с настраиваемым ядром из окна rhel, вы можете указать ldd / path / to / mdadm и скопировать все связанные библиотеки в XenServer в тех же местах. Я мог бы работать;)
** 3. Может ли множественный гостевой доступ (R + W) к одному и тому же разделу данных (RAID)? ****
Я уверен, что вы знали ответ.
По моему опыту, я просто оставляю детали для libvirt. Он скрывает для меня детали виртуализации. Типичная установка - установить стандартный ubuntu, затем инструменты libvirt и md. Предполагая, что у вас есть устройства для вашего рейда, убедитесь, что они имеют правильную систему (linux raid autodetect) в fdisk. Запустите fdisk, выберите раздел / устройство, используйте команду t, чтобы изменить его тип. Пример для рейда 1 показан ниже. Отрегулируйте уровень в вашей настройке на 5 получить рейд 5
root@mail:/etc/ldap# fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 2433 19543041 83 Linux
/dev/sda2 2434 3042 4891792+ 83 Linux
/dev/sda3 3043 3286 1959930 82 Linux swap / Solaris
/dev/sda4 3287 9729 51753397+ fd Linux raid autodetect
Disk /dev/sdb: 80.0 GB, 80032038912 bytes
255 heads, 63 sectors/track, 9730 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 2433 19543041 83 Linux
/dev/sdb2 2434 3042 4891792+ 83 Linux
/dev/sdb3 3043 3286 1959930 82 Linux swap / Solaris
/dev/sdb4 3287 9729 51753397+ fd Linux raid autodetect
**You may need to modprobe the right raid module**
raid0 raid1 raid10 raid5 raid6
root@mail:/etc/ldap# modprobe raid1
**Create your array**
root@mail:/etc/ldap# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4
mdadm: array /dev/md0 started.
root@mail:/etc/ldap# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb4[1] sda4[0]
51753280 blocks [2/2] [UU]
[>....................] resync = 0.9% (466176/51753280) finish=14.6min speed=58272K/sec
unused devices: <none>
root@mail:/etc/ldap# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb4[1] sda4[0]
51753280 blocks [2/2] [UU]
[==>..................] resync = 11.5% (5956160/51753280) finish=13.6min speed=55983K/sec
unused devices: <none>
Вы можете начать использовать свой массив даже во время его синхронизации. Итак, мы начинаем с lvm: обычно вам нужно настроить PV, затем vg и, наконец, ваш LV для отдельных виртуальных машин.
Создайте свой физический объем с помощью pvcreate, VG и LV
# pvcreate /dev/md0
# vgcreate xen02 /dev/md0
# lvcreate -L 100G -n nosql.example.net.storage /dev/xen02
тогда просмотрите свою работу
xen02:~# pvs
PV VG Fmt Attr PSize PFree
/dev/md0 xen02 lvm2 a- 462.49g 273.52g
xen02:~# pvdisplay
--- Physical volume ---
PV Name /dev/md0
VG Name xen02
PV Size 462.50 GiB / not usable 3.81 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 118398
Free PE 70022
Allocated PE 48376
PV UUID ,.........
xen02:~# vgdisplay
--- Volume group ---
VG Name xen02
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 30
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 13
Open LV 9
Max PV 0
Cur PV 1
Act PV 1
VG Size 462.49 GiB
PE Size 4.00 MiB
Total PE 118398
Alloc PE / Size 48376 / 188.97 GiB
Free PE / Size 70022 / 273.52 GiB
VG UUID ,,,,,......
xen02:~# vgs
VG #PV #LV #SN Attr VSize VFree
xen02 1 13 0 wz--n- 462.49g 273.52g
xen02:~# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
acme.example.net.root xen02 -wi-ao 15.00g
ca.example.net.root xen02 -wi-ao 15.00g
externalra.example.net.root xen02 -wi-ao 15.00g
box2.example.net.root xen02 -wi-ao 15.00g
Теперь вы можете использовать libvirt для установки поверх такого типичного LV (обратите внимание, что вы можете изменить тип virt-type с kvm на xen .. :)) - Возможно, вам потребуется удалить параметр virtio, поскольку он специфичен для KVM.
virt-install --name=virtio_template \
--ram 1024 \
--os-type linux --os-variant debiansqueeze \
--disk path=/dev/xen02/nosql.example.net.storage,bus=virtio \
--network network=default,model=virtio \
--vnc \
--noautoconsole \
--cdrom ~/debian-testing-amd64-netinst.iso \
--virt-type kvm \
--force yes
Обычно я создаю виртуальную машину-шаблон и клонирую ее для создания рабочей виртуальной машины (--conect может быть специфичным для kvm):
#!/bin/sh
# invoke as ./script "machine3"
MACHINENAME="Somemachine"
lvcreate -L 15G -n "$MACHINENAME".example.net.root /dev/xen02
echo Cloning template to $MACHINENAME
virt-clone \
--prompt \
--connect qemu:///system \
--original template_master \
--name "$MACHINENAME" \
--file /dev/xen02/"$MACHINENAME".example.net.root
Теперь вы можете весело провести время, используя команды virsh. Смотрите, это помощь.
virsh start $MachineName
virsh shutdown $MachineName
Счастливого ВМ