Проект

Общее

Профиль

Создание виртуальных машин Linux » История » Версия 18

Михаил Шарков, 20.11.2019 17:55

1 13 Владимир Ипатов
h1. Создание виртуальных машин Linux
2 1 Dmitry Chernyak
3 2 Dmitry Chernyak
{{toc}}
4 2 Dmitry Chernyak
5 11 Dmitry Chernyak
[[OVERVIEW]] | [[INSTALL]] | [[SETUP]] | [[OPERATIONS]] | [[LICENSE]]
6 11 Dmitry Chernyak
[[ОБЗОР]] | [[УСТАНОВКА]] | [[НАСТРОЙКА]] | [[ОПЕРАЦИИ]] | [[ЛИЦЕНЗИЯ]]
7 2 Dmitry Chernyak
8 1 Dmitry Chernyak
h2. Создание новой виртуальной машины Debian
9 1 Dmitry Chernyak
10 1 Dmitry Chernyak
Новая виртуальная машина на узле NODE1 с вторичным узлом NODE2, с одним диском на 10гб и с 256МБ RAM.
11 1 Dmitry Chernyak
INSTANCE_NAME должен резолвиться в DNS или /etc/hosts.
12 1 Dmitry Chernyak
<pre>
13 12 Владимир Ипатов
gnt-instance add -t drbd -o debian+default -s 10g -B memory=256m --no-name-check --no-ip-check -n NODE1:NODE2 INSTANCE_NAME
14 1 Dmitry Chernyak
</pre>
15 1 Dmitry Chernyak
16 12 Владимир Ипатов
У данной машины будет настроено получение настроек сети по DHCP
17 12 Владимир Ипатов
18 1 Dmitry Chernyak
Более сложный пример: создание машины
19 12 Владимир Ипатов
* На узле gnt2
20 12 Владимир Ипатов
* С вторичным узлом gnt1
21 1 Dmitry Chernyak
* С тремя дисками
22 1 Dmitry Chernyak
** 10g on volume group xenvg
23 1 Dmitry Chernyak
** 600m on volume group xenvg (например, для swap)
24 12 Владимир Ипатов
** 5g on volume group newvg
25 1 Dmitry Chernyak
* DNS имя: vg-test1
26 12 Владимир Ипатов
* IP адрес выяснится автоматически из DNS резолвингом имени vg-test1, а настройки сети будут взяты для подходящей подсети из @/etc/ganeti/networks@.
27 12 Владимир Ипатов
Если днс сервера в сети нет, то следует использовать аргументы --no-ip-check --no-name-check.
28 1 Dmitry Chernyak
29 1 Dmitry Chernyak
<pre>
30 12 Владимир Ипатов
gnt-instance add -t drbd -o debian+default --disk 0:size=10g,vg=xenvg --disk 1:size=600m,vg=xenvg --disk 2:size=5g,vg=newvg,metavg=newvg -B memory=256m -n gnt2:gnt1 vg-test1
31 1 Dmitry Chernyak
</pre>
32 1 Dmitry Chernyak
33 12 Владимир Ипатов
Обратите внимание, что если диск задается на VG, отличной от умолчания (в примере - newvg) то надо также указывать параметр metavg
34 1 Dmitry Chernyak
35 12 Владимир Ипатов
h2. Выбор версии Linux для установки.
36 1 Dmitry Chernyak
37 12 Владимир Ипатов
За выбор версии дистрибутива отвечает параметр -o:
38 12 Владимир Ипатов
-o debian+default - дебиан той же версии, что и хост-система.
39 12 Владимир Ипатов
-o debian+squeeze - дебиан 6 версии, squeeze
40 12 Владимир Ипатов
-o debian+wheezy - дебиан 7 версии, wheezy
41 12 Владимир Ипатов
-o debian+jessie - дебиан 8 версии, jessie
42 12 Владимир Ипатов
-o debian+stretch - дебиан 9 версии, stretch
43 12 Владимир Ипатов
-o ubuntu+default - убунту последней LTS версии
44 12 Владимир Ипатов
-o ubuntu+lucid - убунту 10.04 LTS, lucid
45 12 Владимир Ипатов
-o ubuntu+precise - убунту 10.04 LTS, precise
46 12 Владимир Ипатов
-o ubuntu+trusty - убунту 14.04 LTS, trusty
47 12 Владимир Ипатов
-o ubuntu+xenial - убунту 16.04 LTS, xenial
48 12 Владимир Ипатов
-o centos+default - CentOS 7.0
49 4 Dmitry Chernyak
50 12 Владимир Ипатов
h2. Подключение к консоли машины
51 4 Dmitry Chernyak
52 12 Владимир Ипатов
Для подключения к консоли машины требуется ввести команду:
53 4 Dmitry Chernyak
<pre>
54 18 Михаил Шарков
gnt-instance console ИНСТАНС
55 1 Dmitry Chernyak
</pre>
56 12 Владимир Ипатов
57 12 Владимир Ипатов
h3. SSH
58 12 Владимир Ипатов
59 1 Dmitry Chernyak
Для подключения к виртуальной машине по ssh из Windows нужно скачать клиент putty: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
60 1 Dmitry Chernyak
61 8 Dmitry Chernyak
h2. Импорт виртуальной машины
62 8 Dmitry Chernyak
63 8 Dmitry Chernyak
Например, вы имеете образ, tar или какой-то еще архив с машиной с другого XEN сервера (или физической машины).
64 8 Dmitry Chernyak
Для того, чтобы запустить ее в кластере SCI, нужно
65 1 Dmitry Chernyak
66 1 Dmitry Chernyak
h3. Создайте виртуальную машину с флагом --no-install
67 1 Dmitry Chernyak
68 1 Dmitry Chernyak
<pre>
69 1 Dmitry Chernyak
gnt-instance add -t drbd -B memory=5192m -n NODE1:NODE2 -o debootstrap+default --no-install --no-name-check --no-ip-check --net=0:link=xen-lan --disk 0:size=4G --disk 1:size=1024M --disk 2:size=100G --disk 3:size=50G INSTANCE_NAME
70 1 Dmitry Chernyak
</pre>
71 8 Dmitry Chernyak
--no-namecheck Используется когда имя машины не резолвится в ip (может резолвится через DNS или /etc/hosts).
72 8 Dmitry Chernyak
--no-ip-check Используется, когда ip не предоставляется на этапе создания машины.
73 1 Dmitry Chernyak
74 1 Dmitry Chernyak
h3. Активируйте дисковую систему машины, без ее запуска
75 1 Dmitry Chernyak
76 1 Dmitry Chernyak
<pre>
77 1 Dmitry Chernyak
gnt-instance activate-disks INSTANCE_NAME
78 1 Dmitry Chernyak
</pre>
79 8 Dmitry Chernyak
80 1 Dmitry Chernyak
эта команда напишет имена устройств для доступа к дискам.
81 8 Dmitry Chernyak
82 8 Dmitry Chernyak
h3. Скопируйте на диски имеющуюся файловую систему
83 1 Dmitry Chernyak
84 8 Dmitry Chernyak
*Примечание:* Диски в ganeti представляют собой не разделы (партиции) /dev/xvda1, а именно диски с таблицей разделов /dev/xvda.
85 1 Dmitry Chernyak
Перед копированием информации на такой диск, на нем надо создать таблицу разделов и дисковый раздел. Для этого:
86 8 Dmitry Chernyak
87 8 Dmitry Chernyak
1. Используйте команду
88 8 Dmitry Chernyak
<pre>
89 8 Dmitry Chernyak
fdisk DISK
90 8 Dmitry Chernyak
</pre>
91 8 Dmitry Chernyak
92 8 Dmitry Chernyak
(укажите ей путь к диску, который выдала команда activate-disks)
93 1 Dmitry Chernyak
94 1 Dmitry Chernyak
2. Смонтируйте раздел внутри диска командой
95 1 Dmitry Chernyak
<pre>
96 1 Dmitry Chernyak
kpartx -a DISK
97 8 Dmitry Chernyak
</pre>
98 8 Dmitry Chernyak
99 8 Dmitry Chernyak
она найдет на диске разделы и создаст устройства в /dev
100 1 Dmitry Chernyak
101 1 Dmitry Chernyak
3. После завершения копирования и отмонтирования раздела выполните
102 1 Dmitry Chernyak
103 8 Dmitry Chernyak
<pre>
104 8 Dmitry Chernyak
kpartx -d DISK
105 1 Dmitry Chernyak
</pre>
106 1 Dmitry Chernyak
107 1 Dmitry Chernyak
h3. Запустите виртуальную машину
108 1 Dmitry Chernyak
109 1 Dmitry Chernyak
Наконец можно погасить диски и запустить виртуальную машину:
110 1 Dmitry Chernyak
<pre>
111 1 Dmitry Chernyak
gnt-instance deactivate-disks INSTANCE_NAME
112 6 Dmitry Chernyak
gnt-instance startup INSTANCE_NAME
113 1 Dmitry Chernyak
</pre>
114 7 Владимир Ипатов
115 7 Владимир Ипатов
h2. Установка других вариантов Linux
116 7 Владимир Ипатов
117 7 Владимир Ипатов
h3. Установка Ubuntu
118 7 Владимир Ипатов
119 7 Владимир Ипатов
Для Ubuntu подготовлен os variant ubootstrap+default.
120 7 Владимир Ипатов
Для создания машины с ubuntu нужно запустить команду наподобие этой:
121 1 Dmitry Chernyak
<pre>
122 10 Владимир Ипатов
gnt-instance add -t drbd -o ubootstrap+default -s 4g -B memory=512m -n gnt1:gnt2 ubuntu
123 10 Владимир Ипатов
</pre>
124 10 Владимир Ипатов
125 10 Владимир Ипатов
h3. Установка CentOS
126 10 Владимир Ипатов
127 10 Владимир Ипатов
Для создания машины с CentOS нужно запустить команду наподобие этой:
128 10 Владимир Ипатов
<pre>
129 1 Dmitry Chernyak
gnt-instance add -t drbd -o yumbootstrap+default -s 4g -B memory=512m -n gnt1:gnt2 centos
130 1 Dmitry Chernyak
</pre>
131 1 Dmitry Chernyak
132 14 Владимир Ипатов
т.к. в centos 7.4 red hat сломал поддержку PV (как умудрились в минорном апгрейде ядра это сломать и зачем - загадка), то нужно поставит более старое ядро:
133 14 Владимир Ипатов
http://archive.kernel.org/centos-vault/7.3.1611/os/x86_64/Packages/kernel-3.10.0-514.el7.x86_64.rpm
134 14 Владимир Ипатов
135 14 Владимир Ипатов
<pre>
136 14 Владимир Ипатов
kpartx -av /dev/drbdX
137 14 Владимир Ипатов
mount /dev/mapper/drbdXp1 /mnt
138 15 Владимир Ипатов
cd /mnt
139 15 Владимир Ипатов
mount -o bind /dev dev
140 15 Владимир Ипатов
mount -o bind /proc proc
141 15 Владимир Ипатов
mount -o bind /sys sys
142 15 Владимир Ипатов
chroot ./
143 14 Владимир Ипатов
wget http://archive.kernel.org/centos-vault/7.3.1611/os/x86_64/Packages/kernel-3.10.0-514.el7.x86_64.rpm
144 1 Dmitry Chernyak
rpm -i kernel-3.10.0-514.el7.x86_64.rpm
145 15 Владимир Ипатов
exit
146 15 Владимир Ипатов
umount dev
147 15 Владимир Ипатов
umount proc
148 15 Владимир Ипатов
umount sys
149 16 Владимир Ипатов
cd ~
150 16 Владимир Ипатов
umount /mnt
151 16 Владимир Ипатов
kpartx -dv /dev/drbdX
152 14 Владимир Ипатов
</pre>
153 14 Владимир Ипатов
далее редактируем /boot/grum/menu.lst:
154 14 Владимир Ипатов
<pre>
155 14 Владимир Ипатов
default         0
156 14 Владимир Ипатов
timeout         5
157 14 Владимир Ипатов
color cyan/blue white/blue
158 14 Владимир Ипатов
159 14 Владимир Ипатов
title           CentOS, default kernel
160 14 Владимир Ипатов
root            (hd0,0)
161 14 Владимир Ипатов
kernel          /boot/vmlinuz-3.10.0-514.el7.x86_64 root=/dev/xvda1 ro
162 14 Владимир Ипатов
initrd          /boot/initramfs-3.10.0-514.el7.x86_64.img
163 14 Владимир Ипатов
164 14 Владимир Ипатов
title           CentOS, default kernel (single-user mode)
165 14 Владимир Ипатов
root            (hd0,0)
166 14 Владимир Ипатов
kernel          /boot/vmlinuz-3.10.0-514.el7.x86_64 root=/dev/xvda1 ro single
167 14 Владимир Ипатов
initrd          /boot/initramfs-3.10.0-514.el7.x86_64.img
168 14 Владимир Ипатов
</pre>
169 14 Владимир Ипатов
170 17 Владимир Ипатов
альтернативно можно использовать CentOS Plus Kernel https://wiki.centos.org/AdditionalResources/Repositories/CentOSPlus
171 17 Владимир Ипатов
172 1 Dmitry Chernyak
h2. Управление виртуальными машинами
173 1 Dmitry Chernyak
174 1 Dmitry Chernyak
Всевозможные простые операции:
175 1 Dmitry Chernyak
<pre>
176 1 Dmitry Chernyak
gnt-instance (startup|shutdown|reboot|failover|remove|console) INSTANCE
177 1 Dmitry Chernyak
</pre>