Проект

Общее

Профиль

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

Владимир Ипатов, 22.06.2020 16:08

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 19 Владимир Ипатов
для отключения от консоли нужно нажать сочетание клавиш ctrl+]
58 19 Владимир Ипатов
59 12 Владимир Ипатов
h3. SSH
60 12 Владимир Ипатов
61 1 Dmitry Chernyak
Для подключения к виртуальной машине по ssh из Windows нужно скачать клиент putty: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
62 1 Dmitry Chernyak
63 8 Dmitry Chernyak
h2. Импорт виртуальной машины
64 8 Dmitry Chernyak
65 8 Dmitry Chernyak
Например, вы имеете образ, tar или какой-то еще архив с машиной с другого XEN сервера (или физической машины).
66 8 Dmitry Chernyak
Для того, чтобы запустить ее в кластере SCI, нужно
67 1 Dmitry Chernyak
68 1 Dmitry Chernyak
h3. Создайте виртуальную машину с флагом --no-install
69 1 Dmitry Chernyak
70 1 Dmitry Chernyak
<pre>
71 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
72 1 Dmitry Chernyak
</pre>
73 8 Dmitry Chernyak
--no-namecheck Используется когда имя машины не резолвится в ip (может резолвится через DNS или /etc/hosts).
74 8 Dmitry Chernyak
--no-ip-check Используется, когда ip не предоставляется на этапе создания машины.
75 1 Dmitry Chernyak
76 1 Dmitry Chernyak
h3. Активируйте дисковую систему машины, без ее запуска
77 1 Dmitry Chernyak
78 1 Dmitry Chernyak
<pre>
79 1 Dmitry Chernyak
gnt-instance activate-disks INSTANCE_NAME
80 1 Dmitry Chernyak
</pre>
81 8 Dmitry Chernyak
82 1 Dmitry Chernyak
эта команда напишет имена устройств для доступа к дискам.
83 8 Dmitry Chernyak
84 8 Dmitry Chernyak
h3. Скопируйте на диски имеющуюся файловую систему
85 1 Dmitry Chernyak
86 8 Dmitry Chernyak
*Примечание:* Диски в ganeti представляют собой не разделы (партиции) /dev/xvda1, а именно диски с таблицей разделов /dev/xvda.
87 1 Dmitry Chernyak
Перед копированием информации на такой диск, на нем надо создать таблицу разделов и дисковый раздел. Для этого:
88 8 Dmitry Chernyak
89 8 Dmitry Chernyak
1. Используйте команду
90 8 Dmitry Chernyak
<pre>
91 8 Dmitry Chernyak
fdisk DISK
92 8 Dmitry Chernyak
</pre>
93 8 Dmitry Chernyak
94 8 Dmitry Chernyak
(укажите ей путь к диску, который выдала команда activate-disks)
95 1 Dmitry Chernyak
96 1 Dmitry Chernyak
2. Смонтируйте раздел внутри диска командой
97 1 Dmitry Chernyak
<pre>
98 1 Dmitry Chernyak
kpartx -a DISK
99 8 Dmitry Chernyak
</pre>
100 8 Dmitry Chernyak
101 8 Dmitry Chernyak
она найдет на диске разделы и создаст устройства в /dev
102 1 Dmitry Chernyak
103 1 Dmitry Chernyak
3. После завершения копирования и отмонтирования раздела выполните
104 1 Dmitry Chernyak
105 8 Dmitry Chernyak
<pre>
106 8 Dmitry Chernyak
kpartx -d DISK
107 1 Dmitry Chernyak
</pre>
108 1 Dmitry Chernyak
109 1 Dmitry Chernyak
h3. Запустите виртуальную машину
110 1 Dmitry Chernyak
111 1 Dmitry Chernyak
Наконец можно погасить диски и запустить виртуальную машину:
112 1 Dmitry Chernyak
<pre>
113 1 Dmitry Chernyak
gnt-instance deactivate-disks INSTANCE_NAME
114 6 Dmitry Chernyak
gnt-instance startup INSTANCE_NAME
115 1 Dmitry Chernyak
</pre>
116 7 Владимир Ипатов
117 7 Владимир Ипатов
h2. Установка других вариантов Linux
118 7 Владимир Ипатов
119 7 Владимир Ипатов
h3. Установка Ubuntu
120 7 Владимир Ипатов
121 7 Владимир Ипатов
Для Ubuntu подготовлен os variant ubootstrap+default.
122 7 Владимир Ипатов
Для создания машины с ubuntu нужно запустить команду наподобие этой:
123 1 Dmitry Chernyak
<pre>
124 10 Владимир Ипатов
gnt-instance add -t drbd -o ubootstrap+default -s 4g -B memory=512m -n gnt1:gnt2 ubuntu
125 10 Владимир Ипатов
</pre>
126 10 Владимир Ипатов
127 10 Владимир Ипатов
h3. Установка CentOS
128 10 Владимир Ипатов
129 10 Владимир Ипатов
Для создания машины с CentOS нужно запустить команду наподобие этой:
130 10 Владимир Ипатов
<pre>
131 1 Dmitry Chernyak
gnt-instance add -t drbd -o yumbootstrap+default -s 4g -B memory=512m -n gnt1:gnt2 centos
132 1 Dmitry Chernyak
</pre>
133 1 Dmitry Chernyak
134 14 Владимир Ипатов
т.к. в centos 7.4 red hat сломал поддержку PV (как умудрились в минорном апгрейде ядра это сломать и зачем - загадка), то нужно поставит более старое ядро:
135 14 Владимир Ипатов
http://archive.kernel.org/centos-vault/7.3.1611/os/x86_64/Packages/kernel-3.10.0-514.el7.x86_64.rpm
136 14 Владимир Ипатов
137 14 Владимир Ипатов
<pre>
138 14 Владимир Ипатов
kpartx -av /dev/drbdX
139 14 Владимир Ипатов
mount /dev/mapper/drbdXp1 /mnt
140 15 Владимир Ипатов
cd /mnt
141 15 Владимир Ипатов
mount -o bind /dev dev
142 15 Владимир Ипатов
mount -o bind /proc proc
143 15 Владимир Ипатов
mount -o bind /sys sys
144 15 Владимир Ипатов
chroot ./
145 14 Владимир Ипатов
wget http://archive.kernel.org/centos-vault/7.3.1611/os/x86_64/Packages/kernel-3.10.0-514.el7.x86_64.rpm
146 1 Dmitry Chernyak
rpm -i kernel-3.10.0-514.el7.x86_64.rpm
147 15 Владимир Ипатов
exit
148 15 Владимир Ипатов
umount dev
149 15 Владимир Ипатов
umount proc
150 15 Владимир Ипатов
umount sys
151 16 Владимир Ипатов
cd ~
152 16 Владимир Ипатов
umount /mnt
153 16 Владимир Ипатов
kpartx -dv /dev/drbdX
154 14 Владимир Ипатов
</pre>
155 14 Владимир Ипатов
далее редактируем /boot/grum/menu.lst:
156 14 Владимир Ипатов
<pre>
157 14 Владимир Ипатов
default         0
158 14 Владимир Ипатов
timeout         5
159 14 Владимир Ипатов
color cyan/blue white/blue
160 14 Владимир Ипатов
161 14 Владимир Ипатов
title           CentOS, default kernel
162 14 Владимир Ипатов
root            (hd0,0)
163 14 Владимир Ипатов
kernel          /boot/vmlinuz-3.10.0-514.el7.x86_64 root=/dev/xvda1 ro
164 14 Владимир Ипатов
initrd          /boot/initramfs-3.10.0-514.el7.x86_64.img
165 14 Владимир Ипатов
166 14 Владимир Ипатов
title           CentOS, default kernel (single-user mode)
167 14 Владимир Ипатов
root            (hd0,0)
168 14 Владимир Ипатов
kernel          /boot/vmlinuz-3.10.0-514.el7.x86_64 root=/dev/xvda1 ro single
169 14 Владимир Ипатов
initrd          /boot/initramfs-3.10.0-514.el7.x86_64.img
170 14 Владимир Ипатов
</pre>
171 14 Владимир Ипатов
172 17 Владимир Ипатов
альтернативно можно использовать CentOS Plus Kernel https://wiki.centos.org/AdditionalResources/Repositories/CentOSPlus
173 17 Владимир Ипатов
174 1 Dmitry Chernyak
h2. Управление виртуальными машинами
175 1 Dmitry Chernyak
176 1 Dmitry Chernyak
Всевозможные простые операции:
177 1 Dmitry Chernyak
<pre>
178 1 Dmitry Chernyak
gnt-instance (startup|shutdown|reboot|failover|remove|console) INSTANCE
179 1 Dmitry Chernyak
</pre>