Projet

Général

Profil

Ceph-Sharing-Disk » Historique » Version 41

Mehdi Abaakouk, 06/09/2017 07:54

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 7 Mehdi Abaakouk
h3. Configuration de ceph
48 12 Laurent GUERBY
49 6 Laurent GUERBY
Sur le client rbd :
50 1 Mehdi Abaakouk
51 1 Mehdi Abaakouk
La machine machine doit être configuré avec une ip sur le vlan 3199, si eth0 n'est pas dans un bridge :
52 16 Laurent GUERBY
53 16 Laurent GUERBY
<pre>
54 17 Laurent GUERBY
ip link add link eth0 name eth0.3199 type vlan id 3199
55 1 Mehdi Abaakouk
ip link set dev eth0.3199 txqueuelen 100
56 16 Laurent GUERBY
ip link set eth0.3199 up
57 16 Laurent GUERBY
ip addr add 192.168.99.XXX/24 dev eth0.3199 # XXX donne par les admin ttnn
58 1 Mehdi Abaakouk
</pre>
59 16 Laurent GUERBY
60 1 Mehdi Abaakouk
pour que la config du VLAN se lance automatiquement au boot, on peut rajouter dans /etc/network/interfaces
61 16 Laurent GUERBY
62 17 Laurent GUERBY
<pre>
63 16 Laurent GUERBY
# Vlan pour ceph
64 21 bikepunk bikepunk
auto eth0.3199
65 21 bikepunk bikepunk
iface eth0.3199 inet manual
66 21 bikepunk bikepunk
    up ip link set dev eth0.3199 txqueuelen 100
67 1 Mehdi Abaakouk
    up ip link set eth0.3199 up
68 1 Mehdi Abaakouk
    up ip addr add 192.168.99.222/24 dev eth0.3199
69 21 bikepunk bikepunk
</pre>
70 21 bikepunk bikepunk
71 21 bikepunk bikepunk
Le membre récupére son  keyring (ceph.client.sileht.keyring ici) et le copie dans /etc/ceph/
72 1 Mehdi Abaakouk
73 16 Laurent GUERBY
74 1 Mehdi Abaakouk
<pre>
75 1 Mehdi Abaakouk
# cat /etc/ceph/ceph.client.sileht.keyring
76 1 Mehdi Abaakouk
[client.sileht]
77 5 Laurent GUERBY
	key = xxxxxxxxxyyyy==
78 1 Mehdi Abaakouk
</pre>
79 1 Mehdi Abaakouk
80 19 Laurent GUERBY
Il peut ensuite créer le fichier /etc/ceph/ceph.conf
81 19 Laurent GUERBY
82 19 Laurent GUERBY
<pre>
83 19 Laurent GUERBY
[global]
84 19 Laurent GUERBY
fsid = 1fe74663-8dfa-486c-bb80-3bd94c90c967
85 19 Laurent GUERBY
auth_supported = cephx
86 19 Laurent GUERBY
auth_cluster_required = cephx
87 19 Laurent GUERBY
auth_service_required = cephx
88 19 Laurent GUERBY
auth_client_required = cephx
89 1 Mehdi Abaakouk
mon_host = 192.168.99.251,192.168.99.252,192.168.99.253
90 1 Mehdi Abaakouk
91 1 Mehdi Abaakouk
[client.sileht]
92 1 Mehdi Abaakouk
keyring = /etc/ceph/ceph.client.sileht.keyring
93 1 Mehdi Abaakouk
</pre>
94 1 Mehdi Abaakouk
95 36 Laurent GUERBY
Si c'est une migration commenter toutes les lignes dans /etc/ceph/rbdmap
96 36 Laurent GUERBY
97 31 Mehdi Abaakouk
On configure le mapping automatique du volume rbd :
98 1 Mehdi Abaakouk
99 1 Mehdi Abaakouk
<pre>
100 39 Mehdi Abaakouk
CEPH_ARGS="--id sileht" rbd-nbd map disks/sileht-vol
101 1 Mehdi Abaakouk
</pre>
102 24 Mehdi Abaakouk
103 1 Mehdi Abaakouk
le disque est prêt, on peut soit le formater directement :
104 1 Mehdi Abaakouk
105 1 Mehdi Abaakouk
<pre>
106 31 Mehdi Abaakouk
$ mkfs.ext4 /dev/nbd0
107 31 Mehdi Abaakouk
$ echo /dev/nbd0  /backup ext4   defaults,discard,noatime,_netdev       0       2" >> /etc/fstab
108 24 Mehdi Abaakouk
$ mount /backup
109 26 Mehdi Abaakouk
</pre>
110 1 Mehdi Abaakouk
111 11 Laurent GUERBY
soit le chiffrer:
112 11 Laurent GUERBY
113 1 Mehdi Abaakouk
<pre>
114 31 Mehdi Abaakouk
$ sudo cryptsetup luksFormat /dev/nbd0
115 24 Mehdi Abaakouk
116 1 Mehdi Abaakouk
WARNING!
117 1 Mehdi Abaakouk
========
118 31 Mehdi Abaakouk
This will overwrite data on /dev/nbd0 irrevocably.
119 24 Mehdi Abaakouk
120 1 Mehdi Abaakouk
Are you sure? (Type uppercase yes): YES
121 5 Laurent GUERBY
Enter passphrase:
122 1 Mehdi Abaakouk
Verify passphrase:
123 1 Mehdi Abaakouk
</pre>
124 1 Mehdi Abaakouk
125 1 Mehdi Abaakouk
<pre>
126 35 Laurent GUERBY
$ cryptsetup luksOpen /dev/nbd0 backup1 --allow-discards
127 24 Mehdi Abaakouk
$ mkfs.ext4 /dev/mapper/backup1
128 1 Mehdi Abaakouk
$ mount /dev/mapper/backup1 /backup
129 5 Laurent GUERBY
</pre>
130 1 Mehdi Abaakouk
131 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)
132 1 Mehdi Abaakouk
133 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) :
134 1 Mehdi Abaakouk
135 1 Mehdi Abaakouk
<pre>
136 1 Mehdi Abaakouk
$ dd if=/dev/urandom of=/etc/luks.key bs=1024 count=4
137 1 Mehdi Abaakouk
$ chmod 0400 /etc/luks.key
138 31 Mehdi Abaakouk
$ cryptsetup luksAddKey /dev/nbd0 /etc/luks.key
139 26 Mehdi Abaakouk
140 1 Mehdi Abaakouk
$ sudo blkid | grep -e rbd0 -e backup1
141 1 Mehdi Abaakouk
/dev/rbd0: UUID="1a268f70-6f6d-41f7-9216-43ba0bd0750b" TYPE="crypto_LUKS"
142 1 Mehdi Abaakouk
/dev/mapper/backup1: UUID="51db13d9-4ac4-4e47-bb7a-b111994cdefd" TYPE="ext4" 
143 1 Mehdi Abaakouk
144 1 Mehdi Abaakouk
145 24 Mehdi Abaakouk
$ echo "backup1 UUID=1a268f70-6f6d-41f7-9216-43ba0bd0750b /etc/luks.key luks,discard" >> /etc/crypttab 
146 2 Laurent GUERBY
$ echo "UUID=51db13d9-4ac4-4e47-bb7a-b111994cdefd  /backup ext4   defaults,discard,noatime,_netdev       0       2" >> /etc/fstab
147 2 Laurent GUERBY
</pre>