Projet

Général

Profil

Ceph-Sharing-Disk » Historique » Version 46

Fabien ADAM, 20/10/2019 22:37
Erreurs connues / Ancien verrou présents

1 3 Laurent GUERBY
{{>toc}}
2 3 Laurent GUERBY
3 1 Mehdi Abaakouk
h1. Ceph-Sharing-Disk
4 1 Mehdi Abaakouk
5 3 Laurent GUERBY
h2. Objectif
6 3 Laurent GUERBY
7 4 Laurent GUERBY
Un-e adherent-e tetaneutral.net souhaite heberger une machine efficace energetiquement et prenant peu de place comme un NUC/Brix ce qui arrange tetaneutral.net mais limite la partie stockage disque. L'idée est que l'adherent-e achete en plus des disques 3.5 classiques, nous les mettons dans le cluster Ceph/openstack et nous exportons un pool de stockage Ceph a la machine.
8 4 Laurent GUERBY
9 3 Laurent GUERBY
h2. Cluster
10 3 Laurent GUERBY
11 43 Mehdi Abaakouk
Sur le cluster ceph (g1):
12 1 Mehdi Abaakouk
13 1 Mehdi Abaakouk
<pre>
14 43 Mehdi Abaakouk
# tools/ceph-create-ext-pool-v2.sh <pool> <username> <size en giga> 
15 43 Mehdi Abaakouk
tools/ceph-create-ext-pool-v2.sh ec4p1 sileht 4096 # GB  
16 22 Laurent GUERBY
</pre>
17 22 Laurent GUERBY
18 43 Mehdi Abaakouk
http://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/openstack-tools/revisions/master/entry/ceph-create-ext-pool-v2.sh
19 1 Mehdi Abaakouk
20 3 Laurent GUERBY
h2. Client
21 1 Mehdi Abaakouk
22 7 Mehdi Abaakouk
h3. Installation de ceph
23 7 Mehdi Abaakouk
24 29 Mehdi Abaakouk
h4. Debian et Ubuntu
25 7 Mehdi Abaakouk
26 40 Mehdi Abaakouk
Le cluster utilise actuellement la version jewel (10.2.X), qui peut être installé via (version au 20170704):
27 40 Mehdi Abaakouk
28 40 Mehdi Abaakouk
* ubuntu xenial-updates 10.2.7-0ubuntu0.16.04.1
29 40 Mehdi Abaakouk
* ubuntu zety-updates 10.2.7-0ubuntu0.17.04.1
30 40 Mehdi Abaakouk
* debian jessie-backport (10.2.5-6~bpo8+1)
31 40 Mehdi Abaakouk
* debian stretch (10.2.5-7.2)
32 40 Mehdi Abaakouk
33 40 Mehdi Abaakouk
Pour avoir le derniére version jewel sur n'importe quel distribution (debian based)
34 40 Mehdi Abaakouk
35 7 Mehdi Abaakouk
<pre>
36 7 Mehdi Abaakouk
apt-get install lsb-release
37 7 Mehdi Abaakouk
wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
38 33 Laurent GUERBY
echo deb http://download.ceph.com/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
39 7 Mehdi Abaakouk
apt-get update
40 34 Laurent GUERBY
apt-get install ceph rbd-nbd
41 12 Laurent GUERBY
</pre>
42 40 Mehdi Abaakouk
43 40 Mehdi Abaakouk
*/!\ la version 10.2.9-1~bpo80+1 du repo ceph a le support nbd cassé, en attendant on peut temporairement la version 10.2.5-6~bpo8+1 de jessie-backport /!\*
44 12 Laurent GUERBY
45 42 Fabien ADAM
h4. Fedora
46 42 Fabien ADAM
47 42 Fabien ADAM
Sur Fedora 25, ceph-10.2.4-2.fc25, la connexion nbd fonctionnera, mais le device monté sera inutilisable (dd ne pourra ni lire ni écrire dessus)
48 42 Fabien ADAM
Sur Fedora 26, ceph-10.2.7-2.fc26, tout fonctionne normalement
49 42 Fabien ADAM
50 7 Mehdi Abaakouk
h3. Configuration de ceph
51 12 Laurent GUERBY
52 6 Laurent GUERBY
Sur le client rbd :
53 1 Mehdi Abaakouk
54 1 Mehdi Abaakouk
La machine machine doit être configuré avec une ip sur le vlan 3199, si eth0 n'est pas dans un bridge :
55 16 Laurent GUERBY
56 16 Laurent GUERBY
<pre>
57 17 Laurent GUERBY
ip link add link eth0 name eth0.3199 type vlan id 3199
58 1 Mehdi Abaakouk
ip link set dev eth0.3199 txqueuelen 100
59 16 Laurent GUERBY
ip link set eth0.3199 up
60 16 Laurent GUERBY
ip addr add 192.168.99.XXX/24 dev eth0.3199 # XXX donne par les admin ttnn
61 1 Mehdi Abaakouk
</pre>
62 16 Laurent GUERBY
63 1 Mehdi Abaakouk
pour que la config du VLAN se lance automatiquement au boot, on peut rajouter dans /etc/network/interfaces
64 16 Laurent GUERBY
65 17 Laurent GUERBY
<pre>
66 16 Laurent GUERBY
# Vlan pour ceph
67 21 bikepunk bikepunk
auto eth0.3199
68 21 bikepunk bikepunk
iface eth0.3199 inet manual
69 21 bikepunk bikepunk
    up ip link set dev eth0.3199 txqueuelen 100
70 1 Mehdi Abaakouk
    up ip link set eth0.3199 up
71 1 Mehdi Abaakouk
    up ip addr add 192.168.99.222/24 dev eth0.3199
72 21 bikepunk bikepunk
</pre>
73 21 bikepunk bikepunk
74 21 bikepunk bikepunk
Le membre récupére son  keyring (ceph.client.sileht.keyring ici) et le copie dans /etc/ceph/
75 1 Mehdi Abaakouk
76 16 Laurent GUERBY
77 1 Mehdi Abaakouk
<pre>
78 1 Mehdi Abaakouk
# cat /etc/ceph/ceph.client.sileht.keyring
79 1 Mehdi Abaakouk
[client.sileht]
80 5 Laurent GUERBY
	key = xxxxxxxxxyyyy==
81 1 Mehdi Abaakouk
</pre>
82 1 Mehdi Abaakouk
83 19 Laurent GUERBY
Il peut ensuite créer le fichier /etc/ceph/ceph.conf
84 19 Laurent GUERBY
85 19 Laurent GUERBY
<pre>
86 19 Laurent GUERBY
[global]
87 19 Laurent GUERBY
fsid = 1fe74663-8dfa-486c-bb80-3bd94c90c967
88 19 Laurent GUERBY
auth_supported = cephx
89 19 Laurent GUERBY
auth_cluster_required = cephx
90 19 Laurent GUERBY
auth_service_required = cephx
91 19 Laurent GUERBY
auth_client_required = cephx
92 1 Mehdi Abaakouk
mon_host = 192.168.99.251,192.168.99.252,192.168.99.253
93 1 Mehdi Abaakouk
94 1 Mehdi Abaakouk
[client.sileht]
95 1 Mehdi Abaakouk
keyring = /etc/ceph/ceph.client.sileht.keyring
96 1 Mehdi Abaakouk
</pre>
97 1 Mehdi Abaakouk
98 36 Laurent GUERBY
Si c'est une migration commenter toutes les lignes dans /etc/ceph/rbdmap
99 36 Laurent GUERBY
100 31 Mehdi Abaakouk
On configure le mapping automatique du volume rbd :
101 1 Mehdi Abaakouk
102 1 Mehdi Abaakouk
<pre>
103 39 Mehdi Abaakouk
CEPH_ARGS="--id sileht" rbd-nbd map disks/sileht-vol
104 1 Mehdi Abaakouk
</pre>
105 24 Mehdi Abaakouk
106 1 Mehdi Abaakouk
le disque est prêt, on peut soit le formater directement :
107 1 Mehdi Abaakouk
108 1 Mehdi Abaakouk
<pre>
109 31 Mehdi Abaakouk
$ mkfs.ext4 /dev/nbd0
110 31 Mehdi Abaakouk
$ echo /dev/nbd0  /backup ext4   defaults,discard,noatime,_netdev       0       2" >> /etc/fstab
111 24 Mehdi Abaakouk
$ mount /backup
112 26 Mehdi Abaakouk
</pre>
113 1 Mehdi Abaakouk
114 11 Laurent GUERBY
soit le chiffrer:
115 11 Laurent GUERBY
116 1 Mehdi Abaakouk
<pre>
117 31 Mehdi Abaakouk
$ sudo cryptsetup luksFormat /dev/nbd0
118 24 Mehdi Abaakouk
119 1 Mehdi Abaakouk
WARNING!
120 1 Mehdi Abaakouk
========
121 31 Mehdi Abaakouk
This will overwrite data on /dev/nbd0 irrevocably.
122 24 Mehdi Abaakouk
123 1 Mehdi Abaakouk
Are you sure? (Type uppercase yes): YES
124 5 Laurent GUERBY
Enter passphrase:
125 1 Mehdi Abaakouk
Verify passphrase:
126 1 Mehdi Abaakouk
</pre>
127 1 Mehdi Abaakouk
128 1 Mehdi Abaakouk
<pre>
129 35 Laurent GUERBY
$ cryptsetup luksOpen /dev/nbd0 backup1 --allow-discards
130 24 Mehdi Abaakouk
$ mkfs.ext4 /dev/mapper/backup1
131 1 Mehdi Abaakouk
$ mount /dev/mapper/backup1 /backup
132 5 Laurent GUERBY
</pre>
133 1 Mehdi Abaakouk
134 1 Mehdi Abaakouk
Attention : ne pas remplir le device de données aleatoires comme suggéré dans les tutoriaux luks cela ferait perdre le provisionning progressif de ceph (utilisation effective uniquement sur les blocks non zero)
135 1 Mehdi Abaakouk
136 1 Mehdi Abaakouk
Ajout de la configuration persistante via un keyfile (attention : c'est une clé privée qui permet d'ouvrir le volume cryptfs sans passphrase) :
137 1 Mehdi Abaakouk
138 1 Mehdi Abaakouk
<pre>
139 1 Mehdi Abaakouk
$ dd if=/dev/urandom of=/etc/luks.key bs=1024 count=4
140 1 Mehdi Abaakouk
$ chmod 0400 /etc/luks.key
141 31 Mehdi Abaakouk
$ cryptsetup luksAddKey /dev/nbd0 /etc/luks.key
142 26 Mehdi Abaakouk
143 1 Mehdi Abaakouk
$ sudo blkid | grep -e rbd0 -e backup1
144 1 Mehdi Abaakouk
/dev/rbd0: UUID="1a268f70-6f6d-41f7-9216-43ba0bd0750b" TYPE="crypto_LUKS"
145 1 Mehdi Abaakouk
/dev/mapper/backup1: UUID="51db13d9-4ac4-4e47-bb7a-b111994cdefd" TYPE="ext4" 
146 1 Mehdi Abaakouk
147 1 Mehdi Abaakouk
148 24 Mehdi Abaakouk
$ echo "backup1 UUID=1a268f70-6f6d-41f7-9216-43ba0bd0750b /etc/luks.key luks,discard" >> /etc/crypttab 
149 2 Laurent GUERBY
$ echo "UUID=51db13d9-4ac4-4e47-bb7a-b111994cdefd  /backup ext4   defaults,discard,noatime,_netdev       0       2" >> /etc/fstab
150 2 Laurent GUERBY
</pre>
151 44 Mehdi Abaakouk
152 46 Fabien ADAM
h3. Erreurs connues
153 46 Fabien ADAM
154 46 Fabien ADAM
h4. Ancien verrou présents
155 46 Fabien ADAM
156 46 Fabien ADAM
Si lors du montage d'une partition, vous avez une erreur, celà peut être du à un verrouillage exclusif de volume nbd par un autre client.
157 46 Fabien ADAM
Les symptomes resemblent à ceci dans le @dmesg@ :
158 46 Fabien ADAM
<pre>
159 46 Fabien ADAM
[  571.968741] block nbd0: Other side returned error (13)
160 46 Fabien ADAM
[  571.970475] print_req_error: I/O error, dev nbd0, sector 52436212
161 46 Fabien ADAM
</pre>
162 46 Fabien ADAM
163 46 Fabien ADAM
Pour le vérifier, démonter le nbd avec @rbd-nbd unmap disks/vous-vol@, puis lister les locks :
164 46 Fabien ADAM
<pre>
165 46 Fabien ADAM
rbd-nbd lock list disks/vous-vol --id vous
166 46 Fabien ADAM
</pre>
167 46 Fabien ADAM
S'il existe toujours un verrou, demander à un administrateur ceph de le supprimer (sur l'IRC).
168 46 Fabien ADAM
169 44 Mehdi Abaakouk
h2. Supprimer un disque
170 44 Mehdi Abaakouk
171 44 Mehdi Abaakouk
<pre>
172 45 Mehdi Abaakouk
ceph auth del client.<username>
173 45 Mehdi Abaakouk
rbd -p <pool> rm <username>-vol
174 44 Mehdi Abaakouk
</pre>