Projet

Général

Profil

SSD » Historique » Version 7

Mehdi Abaakouk, 12/03/2012 17:54

1 3 Mehdi Abaakouk
h1. Le SSD
2 2 Mehdi Abaakouk
3 5 iku jam
{{>toc}}
4 5 iku jam
5 4 Laurent GUERBY
Afin de mettre à disposition des volumes provenant du SSD sans pour autant perdre 128 MB par volume en utilisant ganeti voici la solution adoptée.
6 3 Mehdi Abaakouk
7 4 Laurent GUERBY
Elle permet d'avoir le SSD en raid 1 réseau (drbd de ganeti) et d'utiliser les fonctionnalités de redondance sans gaspiller de l'espace SSD
8 3 Mehdi Abaakouk
9 3 Mehdi Abaakouk
Une vm ganeti en drbd qui utilise tout l'espace de 2 SSD (ie: 24G sur h5 et h6)
10 3 Mehdi Abaakouk
11 4 Laurent GUERBY
La vm créé un lvm sur son disque virtuel, puis ensuite on partage des logical volume de ce lvm via NBD, ISCSI ou AoE
12 3 Mehdi Abaakouk
13 3 Mehdi Abaakouk
Ci-dessous les éléments de configuration de ceci.
14 1 Laurent GUERBY
15 6 Mehdi Abaakouk
h1. ISCSI (Internet Small Computer Systems Interface), *recommandé*
16 6 Mehdi Abaakouk
17 6 Mehdi Abaakouk
http://en.wikipedia.org/wiki/ISCSI
18 6 Mehdi Abaakouk
19 6 Mehdi Abaakouk
h2. Installation de iscsi côté server
20 6 Mehdi Abaakouk
21 6 Mehdi Abaakouk
<pre>
22 6 Mehdi Abaakouk
apt-get install iscsitarget-dkms iscsitarget
23 6 Mehdi Abaakouk
</pre>
24 6 Mehdi Abaakouk
25 7 Mehdi Abaakouk
Dans "/etc/iet/initiators.allow" et dans "/etc/iet/targets.allow" commenter la ligne suivante:
26 7 Mehdi Abaakouk
<pre>
27 7 Mehdi Abaakouk
ALL ALL
28 7 Mehdi Abaakouk
</pre>
29 1 Laurent GUERBY
30 7 Mehdi Abaakouk
Puis démarrer le iscsi
31 7 Mehdi Abaakouk
32 6 Mehdi Abaakouk
<pre>
33 6 Mehdi Abaakouk
/etc/init.d/iscsitarget start
34 6 Mehdi Abaakouk
</pre>
35 6 Mehdi Abaakouk
36 6 Mehdi Abaakouk
h2. Configuration d'un nouveau volume réseau
37 6 Mehdi Abaakouk
38 6 Mehdi Abaakouk
h3. Configuration sur le serveur
39 6 Mehdi Abaakouk
40 6 Mehdi Abaakouk
<pre>
41 6 Mehdi Abaakouk
lvcreate -n debug-gnt-2 -L 2G vgssd
42 6 Mehdi Abaakouk
mkfs.ext4 /dev/vgssd/debug-gnt-2
43 6 Mehdi Abaakouk
# tune2fs -o discard /dev/vgssd/debug-gnt-2 # ne marche pas sur squeeze
44 6 Mehdi Abaakouk
</pre>
45 6 Mehdi Abaakouk
46 6 Mehdi Abaakouk
Dans le fichier /etc/iet/ietd.conf ajouter un "target iscsi":
47 6 Mehdi Abaakouk
48 6 Mehdi Abaakouk
<pre>
49 6 Mehdi Abaakouk
Target iqn.2012-02.net.tetaneutral:debug-gnt.disk1
50 6 Mehdi Abaakouk
        IncomingUser
51 6 Mehdi Abaakouk
        OutgoingUser
52 6 Mehdi Abaakouk
        Lun 0 Path=/dev/vgssd/debug-gnt,Type=fileio
53 6 Mehdi Abaakouk
        Alias disk1
54 6 Mehdi Abaakouk
</pre>
55 6 Mehdi Abaakouk
56 6 Mehdi Abaakouk
Dans le fichier /etc/iet/initiators.allow, autorisé la machine:
57 6 Mehdi Abaakouk
58 6 Mehdi Abaakouk
<pre>
59 6 Mehdi Abaakouk
iqn.2012-02.net.tetaneutral:nagios.disk1 91.224.149.236
60 1 Laurent GUERBY
</pre>
61 7 Mehdi Abaakouk
62 6 Mehdi Abaakouk
Puis on reload
63 6 Mehdi Abaakouk
<pre>
64 6 Mehdi Abaakouk
/etc/init.d/iscsitarget restart
65 6 Mehdi Abaakouk
</pre>
66 6 Mehdi Abaakouk
67 6 Mehdi Abaakouk
En iscsi, on peut aussi utiliser des login/password en plus des ip pour les ACL
68 6 Mehdi Abaakouk
69 6 Mehdi Abaakouk
h3. Configuration sur le client
70 6 Mehdi Abaakouk
71 6 Mehdi Abaakouk
<pre>
72 6 Mehdi Abaakouk
apt-get install open-iscsi
73 6 Mehdi Abaakouk
sed -i -e '/node.startup/s/manual/automatic/g' /etc/iscsi/iscsid.conf
74 6 Mehdi Abaakouk
/etc/init.d/open-iscsi start
75 6 Mehdi Abaakouk
iscsi_discovery  91.224.149.251
76 6 Mehdi Abaakouk
77 6 Mehdi Abaakouk
78 6 Mehdi Abaakouk
cat >> /etc/fstab <<EOF
79 6 Mehdi Abaakouk
/dev/sda    /myssd2     ext4    discard,noatime,_netdev     0       0
80 6 Mehdi Abaakouk
EOF
81 6 Mehdi Abaakouk
mkdir /myssd2
82 6 Mehdi Abaakouk
/etc/init.d/open-iscsi restart
83 6 Mehdi Abaakouk
</pre>
84 6 Mehdi Abaakouk
85 6 Mehdi Abaakouk
h3. Supprimer un disk iscsi
86 6 Mehdi Abaakouk
87 6 Mehdi Abaakouk
Sur le client, arrêter open-iscsi:
88 6 Mehdi Abaakouk
<pre>
89 6 Mehdi Abaakouk
/etc/init.d/open-iscsi stop
90 6 Mehdi Abaakouk
</pre>
91 6 Mehdi Abaakouk
92 6 Mehdi Abaakouk
93 2 Mehdi Abaakouk
h1. NBD (Network Block Device)
94 2 Mehdi Abaakouk
95 2 Mehdi Abaakouk
http://en.wikipedia.org/wiki/Network_block_device
96 2 Mehdi Abaakouk
97 2 Mehdi Abaakouk
h2. Installation de nbd côté serveur
98 2 Mehdi Abaakouk
99 2 Mehdi Abaakouk
<pre>
100 2 Mehdi Abaakouk
apt-get install nbd-server
101 2 Mehdi Abaakouk
echo '[general]' > /etc/nbd-server/conf
102 2 Mehdi Abaakouk
/etc/init.d/nbd-server restart
103 2 Mehdi Abaakouk
</pre>
104 1 Laurent GUERBY
105 1 Laurent GUERBY
h2. Configuration d'un nouveau volume réseau
106 2 Mehdi Abaakouk
107 4 Laurent GUERBY
h3. Configuration sur le serveur
108 4 Laurent GUERBY
109 2 Mehdi Abaakouk
<pre>
110 2 Mehdi Abaakouk
lvcreate -n debug-gnt -L 2G vgssd
111 2 Mehdi Abaakouk
mkfs.ext4 /dev/vgssd/debug-gnt
112 2 Mehdi Abaakouk
# tune2fs -o discard /dev/vgssd/debug-gnt # ne marche pas sur squeeze
113 2 Mehdi Abaakouk
</pre>
114 2 Mehdi Abaakouk
115 2 Mehdi Abaakouk
Le port est par convention pour tetaneutral :
116 2 Mehdi Abaakouk
1 + 3 last ip digit (ie: 1231 pour 91.224.149.231)
117 2 Mehdi Abaakouk
118 2 Mehdi Abaakouk
<pre>
119 2 Mehdi Abaakouk
cat >> /etc/nbd-server/conf <<EOF
120 2 Mehdi Abaakouk
[debug-gnt]
121 2 Mehdi Abaakouk
    exportname = /dev/vgssd/debug-gnt
122 2 Mehdi Abaakouk
    port = 1231
123 2 Mehdi Abaakouk
    authfile = /etc/nbd-server/allow-231
124 2 Mehdi Abaakouk
EOF
125 2 Mehdi Abaakouk
126 2 Mehdi Abaakouk
cat > /etc/nbd-server/allow-231 <<EOF
127 2 Mehdi Abaakouk
91.224.149.231
128 2 Mehdi Abaakouk
EOF
129 2 Mehdi Abaakouk
</pre>
130 2 Mehdi Abaakouk
131 2 Mehdi Abaakouk
h3. Configuration sur le client
132 2 Mehdi Abaakouk
133 2 Mehdi Abaakouk
<pre>
134 2 Mehdi Abaakouk
apt-get install nbd-client
135 2 Mehdi Abaakouk
136 2 Mehdi Abaakouk
cat > /etc/nbd-client <<EOF
137 2 Mehdi Abaakouk
KILLALL="true"
138 2 Mehdi Abaakouk
NBD_DEVICE[0]=/dev/nbd0
139 2 Mehdi Abaakouk
NBD_TYPE[0]=f
140 2 Mehdi Abaakouk
NBD_HOST[0]=ssd1
141 2 Mehdi Abaakouk
NBD_PORT[0]=1231 # < 1 + 3 last ip digit
142 2 Mehdi Abaakouk
NBD_EXTRA[0]=
143 2 Mehdi Abaakouk
EOF
144 2 Mehdi Abaakouk
145 2 Mehdi Abaakouk
mkdir /myssd1
146 2 Mehdi Abaakouk
147 2 Mehdi Abaakouk
cat >> /etc/fstab <<EOF
148 2 Mehdi Abaakouk
/dev/nbd0           /myssd      ext4    defaults,discard,noauto        0       2
149 2 Mehdi Abaakouk
EOF
150 2 Mehdi Abaakouk
151 2 Mehdi Abaakouk
/etc/init.d/nbd-client restart
152 2 Mehdi Abaakouk
mount -a
153 2 Mehdi Abaakouk
</pre>
154 2 Mehdi Abaakouk
155 1 Laurent GUERBY
156 1 Laurent GUERBY
h1. AoE (ATA over Ethernet)
157 2 Mehdi Abaakouk
158 4 Laurent GUERBY
http://en.wikipedia.org/wiki/ATA_over_Ethernet
159 4 Laurent GUERBY
160 2 Mehdi Abaakouk
h2. Installation de AoE côté serveur
161 2 Mehdi Abaakouk
162 2 Mehdi Abaakouk
<pre>
163 2 Mehdi Abaakouk
apt-get install vblade vblade-persist
164 2 Mehdi Abaakouk
</pre>
165 2 Mehdi Abaakouk
166 2 Mehdi Abaakouk
h2. Configuration d'un nouveau volume réseau
167 2 Mehdi Abaakouk
168 2 Mehdi Abaakouk
h3. Configuration sur le serveur
169 2 Mehdi Abaakouk
170 2 Mehdi Abaakouk
<pre>
171 2 Mehdi Abaakouk
lvcreate -n debug-gnt-3 -L 2G vgssd
172 2 Mehdi Abaakouk
mkfs.ext4 /dev/vgssd/debug-gnt-3
173 2 Mehdi Abaakouk
# tune2fs -o discard /dev/vgssd/debug-gnt-3 # ne marche pas sur squeeze
174 2 Mehdi Abaakouk
</pre>
175 2 Mehdi Abaakouk
176 2 Mehdi Abaakouk
<pre>
177 2 Mehdi Abaakouk
vblade-persist setup 0 0 eth0 /dev/vgssd/debug-gnt-3
178 2 Mehdi Abaakouk
vblade-persist mac 0 0 add aa:00:00:be:8f:d0 
179 2 Mehdi Abaakouk
vblade-persist auto 0 0 
180 2 Mehdi Abaakouk
vblade-persist restart 0 0
181 2 Mehdi Abaakouk
</pre> 
182 2 Mehdi Abaakouk
183 2 Mehdi Abaakouk
Le 0 0 est un identifiant unique du disque
184 2 Mehdi Abaakouk
Dans AoE les acl s'applique sur les adresses MAC
185 2 Mehdi Abaakouk
186 2 Mehdi Abaakouk
AoE communique sur la couche ethernet comme son nom l'indique
187 2 Mehdi Abaakouk
Il n'est donc pas routable
188 2 Mehdi Abaakouk
189 2 Mehdi Abaakouk
190 2 Mehdi Abaakouk
191 2 Mehdi Abaakouk
h3. Configuration sur le client
192 2 Mehdi Abaakouk
193 2 Mehdi Abaakouk
<pre>
194 2 Mehdi Abaakouk
apt-get install aoe-tools
195 2 Mehdi Abaakouk
</pre>
196 2 Mehdi Abaakouk
197 2 Mehdi Abaakouk
dans /etc/default/aoetools changer INTERFACES comme ceci:
198 2 Mehdi Abaakouk
199 2 Mehdi Abaakouk
<pre>
200 2 Mehdi Abaakouk
INTERFACES="eth0"
201 2 Mehdi Abaakouk
</pre>
202 2 Mehdi Abaakouk
203 2 Mehdi Abaakouk
<pre>
204 2 Mehdi Abaakouk
/etc/init.d/aoetools start
205 2 Mehdi Abaakouk
aoe-discover
206 2 Mehdi Abaakouk
207 2 Mehdi Abaakouk
cat >> /etc/fstab <<EOF
208 2 Mehdi Abaakouk
/dev/etherd/e0.0    /myssd2     ext4    discard,noatime,_netdev     0       0
209 2 Mehdi Abaakouk
EOF
210 2 Mehdi Abaakouk
211 2 Mehdi Abaakouk
mkdir /myssd2
212 2 Mehdi Abaakouk
213 2 Mehdi Abaakouk
/etc/init.d/aoetools restart
214 2 Mehdi Abaakouk
mount -a
215 2 Mehdi Abaakouk
</pre>
216 2 Mehdi Abaakouk
217 2 Mehdi Abaakouk
218 2 Mehdi Abaakouk
h1. Installation d'une machine SSDx
219 2 Mehdi Abaakouk
220 2 Mehdi Abaakouk
h2. Préparation du disque sur h5 et h6
221 2 Mehdi Abaakouk
222 2 Mehdi Abaakouk
<pre>
223 2 Mehdi Abaakouk
root@h5:~# fdisk /dev/sda
224 2 Mehdi Abaakouk
225 2 Mehdi Abaakouk
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
226 2 Mehdi Abaakouk
         switch off the mode (command 'c') and change display units to
227 2 Mehdi Abaakouk
         sectors (command 'u').
228 2 Mehdi Abaakouk
229 2 Mehdi Abaakouk
Command (m for help): c
230 2 Mehdi Abaakouk
DOS Compatibility flag is not set
231 2 Mehdi Abaakouk
232 2 Mehdi Abaakouk
Command (m for help): p
233 2 Mehdi Abaakouk
234 2 Mehdi Abaakouk
Disk /dev/sda: 40.0 GB, 40020664320 bytes
235 2 Mehdi Abaakouk
255 heads, 63 sectors/track, 4865 cylinders
236 2 Mehdi Abaakouk
Units = cylinders of 16065 * 512 = 8225280 bytes
237 2 Mehdi Abaakouk
Sector size (logical/physical): 512 bytes / 512 bytes
238 2 Mehdi Abaakouk
I/O size (minimum/optimal): 512 bytes / 512 bytes
239 2 Mehdi Abaakouk
Disk identifier: 0x0001def5
240 2 Mehdi Abaakouk
241 2 Mehdi Abaakouk
   Device Boot      Start         End      Blocks   Id  System
242 2 Mehdi Abaakouk
/dev/sda1   *           1        1216     9764864   83  Linux
243 2 Mehdi Abaakouk
/dev/sda2            1216        1703     3906560   82  Linux swap / Solaris
244 2 Mehdi Abaakouk
245 2 Mehdi Abaakouk
Command (m for help): n
246 2 Mehdi Abaakouk
Command action
247 2 Mehdi Abaakouk
   e   extended
248 2 Mehdi Abaakouk
   p   primary partition (1-4)
249 2 Mehdi Abaakouk
p
250 2 Mehdi Abaakouk
Partition number (1-4): 3
251 2 Mehdi Abaakouk
First cylinder (1703-4865, default 1703):
252 2 Mehdi Abaakouk
Using default value 1703
253 2 Mehdi Abaakouk
Last cylinder, +cylinders or +size{K,M,G} (1703-4865, default 4865):
254 2 Mehdi Abaakouk
Using default value 4865
255 2 Mehdi Abaakouk
256 2 Mehdi Abaakouk
Command (m for help): t
257 2 Mehdi Abaakouk
Partition number (1-4): 3
258 2 Mehdi Abaakouk
Hex code (type L to list codes): 8e
259 2 Mehdi Abaakouk
Changed system type of partition 3 to 8e (Linux LVM)
260 2 Mehdi Abaakouk
261 2 Mehdi Abaakouk
Command (m for help): w
262 2 Mehdi Abaakouk
The partition table has been altered!
263 2 Mehdi Abaakouk
</pre>
264 2 Mehdi Abaakouk
265 2 Mehdi Abaakouk
Création du lvm
266 2 Mehdi Abaakouk
267 2 Mehdi Abaakouk
<pre>
268 2 Mehdi Abaakouk
pvcreate /dev/sda3
269 2 Mehdi Abaakouk
vgcreate kvmvgssd /dev/sda3
270 2 Mehdi Abaakouk
</pre>
271 2 Mehdi Abaakouk
272 2 Mehdi Abaakouk
273 2 Mehdi Abaakouk
*Création de la vm, sur le master node (ie: h1):*
274 2 Mehdi Abaakouk
275 2 Mehdi Abaakouk
La taille du disque sera de 24680M: 24680M + 128M (drbd) = 24808M dispo sur le SSD
276 2 Mehdi Abaakouk
277 1 Laurent GUERBY
278 1 Laurent GUERBY
<pre>
279 1 Laurent GUERBY
gnt-instance add -t drbd -B memory=512,vcpus=2 --disk 0:size=24680M,vg=kvmvgssd -n h5:h6 -o debootstrap+default --no-wait-for-sync -H kvm:boot_order=cdrom,cdrom_image_path=/root/debian-6.0.3-amd64-netinst.iso ssd1
280 2 Mehdi Abaakouk
</pre>
281 2 Mehdi Abaakouk
282 4 Laurent GUERBY
Ensuite se connecter en vnc pour faire l'installation classique, uniquement SSH server est installé
283 4 Laurent GUERBY
Le FS c'est un VG appelé vgssd, puis un lv 'root' de 4G en ext4 avec l'option discard et noatime
284 1 Laurent GUERBY
285 4 Laurent GUERBY
Pour le vnc, il faut redigirer de la machine ou tourne la vm (ie: h5 pour ssd1) sur le port retourné par la commande suivante :
286 2 Mehdi Abaakouk
<pre>
287 2 Mehdi Abaakouk
gnt-instance list -o network_port ssd1
288 2 Mehdi Abaakouk
</pre>
289 2 Mehdi Abaakouk
290 2 Mehdi Abaakouk
291 4 Laurent GUERBY
*Une fois la vm installé voici la configuration à effectuer:*
292 2 Mehdi Abaakouk
Via un terminal sur la vm (en vnc toujours)
293 2 Mehdi Abaakouk
294 2 Mehdi Abaakouk
<pre>
295 2 Mehdi Abaakouk
cat >> /etc/apt/sources.list <<EOF
296 2 Mehdi Abaakouk
deb http://backports.debian.org/debian-backports squeeze-backports main
297 2 Mehdi Abaakouk
deb-src http://backports.debian.org/debian-backports squeeze-backports main
298 2 Mehdi Abaakouk
EOF
299 2 Mehdi Abaakouk
300 2 Mehdi Abaakouk
sed -i -e 's/^.*Port.*$/Port 2222/' -e 's/^[# ]*PasswordAuthentication.*$/PasswordAuthentication no/' $TARGET/etc/ssh/sshd_configentication.*$/PasswordAuthentication no/' /etc/ssh/sshd_config
301 2 Mehdi Abaakouk
302 2 Mehdi Abaakouk
cat > /etc/resolv.conf <<EOF
303 2 Mehdi Abaakouk
domain tetaneutral.net
304 2 Mehdi Abaakouk
search tetaneutral.net
305 2 Mehdi Abaakouk
nameserver 91.224.149.254
306 2 Mehdi Abaakouk
nameserver 8.8.8.8
307 2 Mehdi Abaakouk
EOF
308 2 Mehdi Abaakouk
309 2 Mehdi Abaakouk
cat >/etc/hosts <<EOF
310 2 Mehdi Abaakouk
127.0.0.1       localhost
311 2 Mehdi Abaakouk
312 2 Mehdi Abaakouk
# The following lines are desirable for IPv6 capable hosts
313 2 Mehdi Abaakouk
::1     ip6-localhost ip6-loopback
314 2 Mehdi Abaakouk
fe00::0 ip6-localnet
315 2 Mehdi Abaakouk
ff00::0 ip6-mcastprefix
316 2 Mehdi Abaakouk
ff02::1 ip6-allnodes
317 2 Mehdi Abaakouk
ff02::2 ip6-allrouters
318 2 Mehdi Abaakouk
319 2 Mehdi Abaakouk
91.224.149.251      ssd1.tetaneutral.net ssd1
320 2 Mehdi Abaakouk
2a01:6600:8081:fb00::1     ssd1.tetaneutral.net ssd1
321 2 Mehdi Abaakouk
EOF
322 2 Mehdi Abaakouk
323 2 Mehdi Abaakouk
324 2 Mehdi Abaakouk
cat > /etc/network/interfaces <<EOF
325 2 Mehdi Abaakouk
# This file describes the network interfaces available on your system
326 2 Mehdi Abaakouk
# and how to activate them. For more information, see interfaces(5).
327 2 Mehdi Abaakouk
328 2 Mehdi Abaakouk
# The loopback network interface
329 2 Mehdi Abaakouk
auto lo
330 2 Mehdi Abaakouk
iface lo inet loopback
331 2 Mehdi Abaakouk
332 2 Mehdi Abaakouk
# The primary network interface
333 2 Mehdi Abaakouk
auto eth0
334 2 Mehdi Abaakouk
iface eth0 inet static
335 2 Mehdi Abaakouk
        address 91.224.149.251
336 2 Mehdi Abaakouk
        netmask 255.255.255.0
337 2 Mehdi Abaakouk
        network 91.224.149.0
338 2 Mehdi Abaakouk
        broadcast 91.224.149.255
339 2 Mehdi Abaakouk
        gateway 91.224.149.254
340 2 Mehdi Abaakouk
341 2 Mehdi Abaakouk
iface eth0 inet6 static
342 2 Mehdi Abaakouk
   address 2a01:6600:8081:fb00::1
343 2 Mehdi Abaakouk
   netmask 56
344 2 Mehdi Abaakouk
   gateway fe80::31
345 2 Mehdi Abaakouk
EOF
346 2 Mehdi Abaakouk
347 2 Mehdi Abaakouk
cat >> /etc/default/grub <<EOF
348 2 Mehdi Abaakouk
GRUB_CMDLINE_LINUX="\$GRUB_CMDLINE_LINUX elevator=noop console=ttyS0,38400"
349 2 Mehdi Abaakouk
GRUB_TERMINAL=console
350 2 Mehdi Abaakouk
EOF
351 2 Mehdi Abaakouk
</pre>
352 2 Mehdi Abaakouk
353 2 Mehdi Abaakouk
# Décommenter cette ligne dans /etc/inittab
354 2 Mehdi Abaakouk
<pre>
355 2 Mehdi Abaakouk
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
356 2 Mehdi Abaakouk
</pre>
357 2 Mehdi Abaakouk
358 2 Mehdi Abaakouk
<pre>
359 2 Mehdi Abaakouk
update-grub
360 2 Mehdi Abaakouk
apt-get install -t  squeeze-backports linux-image-2.6.39-bpo.2-amd64
361 2 Mehdi Abaakouk
</pre>
362 2 Mehdi Abaakouk
363 2 Mehdi Abaakouk
h1. Doc initial
364 1 Laurent GUERBY
365 1 Laurent GUERBY
http://dl.sileht.net/public/setupssdvm.txt