Projet

Général

Profil

Ceph-Sharing-Disk » Historique » Version 42

Fabien ADAM, 12/09/2017 12:14
Compatibilité Fedora

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 1 Mehdi Abaakouk
Sur le cluster ceph:
12 1 Mehdi Abaakouk
13 22 Laurent GUERBY
http://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/openstack-tools/revisions/master/entry/ceph-create-ext-pool-v2.sh
14 22 Laurent GUERBY
15 22 Laurent GUERBY
<pre>
16 25 Mehdi Abaakouk
# ./ceph-create-ext-pool-v2.sh <pool> <username> <size en giga> 
17 25 Mehdi Abaakouk
./ceph-create-ext-pool-v2.sh ec4p1 sileht 4096 # GB  
18 22 Laurent GUERBY
</pre>
19 22 Laurent GUERBY
20 10 Laurent GUERBY
21 1 Mehdi Abaakouk
22 3 Laurent GUERBY
h2. Client
23 1 Mehdi Abaakouk
24 7 Mehdi Abaakouk
h3. Installation de ceph
25 7 Mehdi Abaakouk
26 29 Mehdi Abaakouk
h4. Debian et Ubuntu
27 7 Mehdi Abaakouk
28 40 Mehdi Abaakouk
Le cluster utilise actuellement la version jewel (10.2.X), qui peut être installé via (version au 20170704):
29 40 Mehdi Abaakouk
30 40 Mehdi Abaakouk
* ubuntu xenial-updates 10.2.7-0ubuntu0.16.04.1
31 40 Mehdi Abaakouk
* ubuntu zety-updates 10.2.7-0ubuntu0.17.04.1
32 40 Mehdi Abaakouk
* debian jessie-backport (10.2.5-6~bpo8+1)
33 40 Mehdi Abaakouk
* debian stretch (10.2.5-7.2)
34 40 Mehdi Abaakouk
35 40 Mehdi Abaakouk
Pour avoir le derniére version jewel sur n'importe quel distribution (debian based)
36 40 Mehdi Abaakouk
37 7 Mehdi Abaakouk
<pre>
38 7 Mehdi Abaakouk
apt-get install lsb-release
39 7 Mehdi Abaakouk
wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
40 33 Laurent GUERBY
echo deb http://download.ceph.com/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
41 7 Mehdi Abaakouk
apt-get update
42 34 Laurent GUERBY
apt-get install ceph rbd-nbd
43 12 Laurent GUERBY
</pre>
44 40 Mehdi Abaakouk
45 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 /!\*
46 12 Laurent GUERBY
47 42 Fabien ADAM
h4. Fedora
48 42 Fabien ADAM
49 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)
50 42 Fabien ADAM
Sur Fedora 26, ceph-10.2.7-2.fc26, tout fonctionne normalement
51 42 Fabien ADAM
52 7 Mehdi Abaakouk
h3. Configuration de ceph
53 12 Laurent GUERBY
54 6 Laurent GUERBY
Sur le client rbd :
55 1 Mehdi Abaakouk
56 1 Mehdi Abaakouk
La machine machine doit être configuré avec une ip sur le vlan 3199, si eth0 n'est pas dans un bridge :
57 16 Laurent GUERBY
58 16 Laurent GUERBY
<pre>
59 17 Laurent GUERBY
ip link add link eth0 name eth0.3199 type vlan id 3199
60 1 Mehdi Abaakouk
ip link set dev eth0.3199 txqueuelen 100
61 16 Laurent GUERBY
ip link set eth0.3199 up
62 16 Laurent GUERBY
ip addr add 192.168.99.XXX/24 dev eth0.3199 # XXX donne par les admin ttnn
63 1 Mehdi Abaakouk
</pre>
64 16 Laurent GUERBY
65 1 Mehdi Abaakouk
pour que la config du VLAN se lance automatiquement au boot, on peut rajouter dans /etc/network/interfaces
66 16 Laurent GUERBY
67 17 Laurent GUERBY
<pre>
68 16 Laurent GUERBY
# Vlan pour ceph
69 21 bikepunk bikepunk
auto eth0.3199
70 21 bikepunk bikepunk
iface eth0.3199 inet manual
71 21 bikepunk bikepunk
    up ip link set dev eth0.3199 txqueuelen 100
72 1 Mehdi Abaakouk
    up ip link set eth0.3199 up
73 1 Mehdi Abaakouk
    up ip addr add 192.168.99.222/24 dev eth0.3199
74 21 bikepunk bikepunk
</pre>
75 21 bikepunk bikepunk
76 21 bikepunk bikepunk
Le membre récupére son  keyring (ceph.client.sileht.keyring ici) et le copie dans /etc/ceph/
77 1 Mehdi Abaakouk
78 16 Laurent GUERBY
79 1 Mehdi Abaakouk
<pre>
80 1 Mehdi Abaakouk
# cat /etc/ceph/ceph.client.sileht.keyring
81 1 Mehdi Abaakouk
[client.sileht]
82 5 Laurent GUERBY
	key = xxxxxxxxxyyyy==
83 1 Mehdi Abaakouk
</pre>
84 1 Mehdi Abaakouk
85 19 Laurent GUERBY
Il peut ensuite créer le fichier /etc/ceph/ceph.conf
86 19 Laurent GUERBY
87 19 Laurent GUERBY
<pre>
88 19 Laurent GUERBY
[global]
89 19 Laurent GUERBY
fsid = 1fe74663-8dfa-486c-bb80-3bd94c90c967
90 19 Laurent GUERBY
auth_supported = cephx
91 19 Laurent GUERBY
auth_cluster_required = cephx
92 19 Laurent GUERBY
auth_service_required = cephx
93 19 Laurent GUERBY
auth_client_required = cephx
94 1 Mehdi Abaakouk
mon_host = 192.168.99.251,192.168.99.252,192.168.99.253
95 1 Mehdi Abaakouk
96 1 Mehdi Abaakouk
[client.sileht]
97 1 Mehdi Abaakouk
keyring = /etc/ceph/ceph.client.sileht.keyring
98 1 Mehdi Abaakouk
</pre>
99 1 Mehdi Abaakouk
100 36 Laurent GUERBY
Si c'est une migration commenter toutes les lignes dans /etc/ceph/rbdmap
101 36 Laurent GUERBY
102 31 Mehdi Abaakouk
On configure le mapping automatique du volume rbd :
103 1 Mehdi Abaakouk
104 1 Mehdi Abaakouk
<pre>
105 39 Mehdi Abaakouk
CEPH_ARGS="--id sileht" rbd-nbd map disks/sileht-vol
106 1 Mehdi Abaakouk
</pre>
107 24 Mehdi Abaakouk
108 1 Mehdi Abaakouk
le disque est prêt, on peut soit le formater directement :
109 1 Mehdi Abaakouk
110 1 Mehdi Abaakouk
<pre>
111 31 Mehdi Abaakouk
$ mkfs.ext4 /dev/nbd0
112 31 Mehdi Abaakouk
$ echo /dev/nbd0  /backup ext4   defaults,discard,noatime,_netdev       0       2" >> /etc/fstab
113 24 Mehdi Abaakouk
$ mount /backup
114 26 Mehdi Abaakouk
</pre>
115 1 Mehdi Abaakouk
116 11 Laurent GUERBY
soit le chiffrer:
117 11 Laurent GUERBY
118 1 Mehdi Abaakouk
<pre>
119 31 Mehdi Abaakouk
$ sudo cryptsetup luksFormat /dev/nbd0
120 24 Mehdi Abaakouk
121 1 Mehdi Abaakouk
WARNING!
122 1 Mehdi Abaakouk
========
123 31 Mehdi Abaakouk
This will overwrite data on /dev/nbd0 irrevocably.
124 24 Mehdi Abaakouk
125 1 Mehdi Abaakouk
Are you sure? (Type uppercase yes): YES
126 5 Laurent GUERBY
Enter passphrase:
127 1 Mehdi Abaakouk
Verify passphrase:
128 1 Mehdi Abaakouk
</pre>
129 1 Mehdi Abaakouk
130 1 Mehdi Abaakouk
<pre>
131 35 Laurent GUERBY
$ cryptsetup luksOpen /dev/nbd0 backup1 --allow-discards
132 24 Mehdi Abaakouk
$ mkfs.ext4 /dev/mapper/backup1
133 1 Mehdi Abaakouk
$ mount /dev/mapper/backup1 /backup
134 5 Laurent GUERBY
</pre>
135 1 Mehdi Abaakouk
136 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)
137 1 Mehdi Abaakouk
138 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) :
139 1 Mehdi Abaakouk
140 1 Mehdi Abaakouk
<pre>
141 1 Mehdi Abaakouk
$ dd if=/dev/urandom of=/etc/luks.key bs=1024 count=4
142 1 Mehdi Abaakouk
$ chmod 0400 /etc/luks.key
143 31 Mehdi Abaakouk
$ cryptsetup luksAddKey /dev/nbd0 /etc/luks.key
144 26 Mehdi Abaakouk
145 1 Mehdi Abaakouk
$ sudo blkid | grep -e rbd0 -e backup1
146 1 Mehdi Abaakouk
/dev/rbd0: UUID="1a268f70-6f6d-41f7-9216-43ba0bd0750b" TYPE="crypto_LUKS"
147 1 Mehdi Abaakouk
/dev/mapper/backup1: UUID="51db13d9-4ac4-4e47-bb7a-b111994cdefd" TYPE="ext4" 
148 1 Mehdi Abaakouk
149 1 Mehdi Abaakouk
150 24 Mehdi Abaakouk
$ echo "backup1 UUID=1a268f70-6f6d-41f7-9216-43ba0bd0750b /etc/luks.key luks,discard" >> /etc/crypttab 
151 2 Laurent GUERBY
$ echo "UUID=51db13d9-4ac4-4e47-bb7a-b111994cdefd  /backup ext4   defaults,discard,noatime,_netdev       0       2" >> /etc/fstab
152 2 Laurent GUERBY
</pre>