Projet

Général

Profil

Ceph-Sharing-Disk » Historique » Version 7

Mehdi Abaakouk, 16/10/2014 09: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 6 Laurent GUERBY
Création de l'utilisateur et du pool ceph pour cet utilisateur
14 1 Mehdi Abaakouk
15 1 Mehdi Abaakouk
http://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/openstack-tools/revisions/master/entry/ceph-create-ext-pool.sh
16 1 Mehdi Abaakouk
17 1 Mehdi Abaakouk
<pre>
18 1 Mehdi Abaakouk
$ # ./ceph-create-ext-pool.sh <username> <auid> <size en giga> 
19 1 Mehdi Abaakouk
$ ./ceph-create-ext-pool.sh sileht 100 100 
20 1 Mehdi Abaakouk
creating ceph.client.sileht.keyring
21 1 Mehdi Abaakouk
imported keyring
22 1 Mehdi Abaakouk
pool 'sileht-pool' created
23 1 Mehdi Abaakouk
set pool 70 size to 2
24 1 Mehdi Abaakouk
set pool 70 min_size to 2
25 1 Mehdi Abaakouk
set pool 70 auid to 100
26 1 Mehdi Abaakouk
set-quota max_bytes = 107374182400 for pool sileht-pool
27 1 Mehdi Abaakouk
</pre>
28 1 Mehdi Abaakouk
29 3 Laurent GUERBY
h2. Client
30 1 Mehdi Abaakouk
31 7 Mehdi Abaakouk
h3. Installation de ceph
32 7 Mehdi Abaakouk
33 7 Mehdi Abaakouk
h4. Debian jessie
34 7 Mehdi Abaakouk
35 7 Mehdi Abaakouk
<pre>
36 7 Mehdi Abaakouk
apt-get install ceph
37 7 Mehdi Abaakouk
</pre>
38 7 Mehdi Abaakouk
39 7 Mehdi Abaakouk
h4. Debian wheezy/squeeze, Ubuntu precise/quantal/raring/saucy/trusty
40 7 Mehdi Abaakouk
41 7 Mehdi Abaakouk
<pre>
42 7 Mehdi Abaakouk
apt-get install lsb-release
43 7 Mehdi Abaakouk
wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
44 7 Mehdi Abaakouk
echo deb http://ceph.com/debian-firefly/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
45 7 Mehdi Abaakouk
apt-get update
46 7 Mehdi Abaakouk
apt-get install ceph
47 7 Mehdi Abaakouk
</pre>
48 7 Mehdi Abaakouk
49 7 Mehdi Abaakouk
h3. Configuration de ceph
50 6 Laurent GUERBY
Sur le client rbd :
51 1 Mehdi Abaakouk
52 1 Mehdi Abaakouk
La machine machine doit être configuré avec une ip sur le vlan3199
53 1 Mehdi Abaakouk
54 1 Mehdi Abaakouk
<pre>
55 1 Mehdi Abaakouk
apt-get install ceph
56 1 Mehdi Abaakouk
</pre>
57 1 Mehdi Abaakouk
58 5 Laurent GUERBY
Le membre récupére son  keyring (ceph.client.sileht.keyring ici) et le copie dans /etc/ceph/
59 1 Mehdi Abaakouk
60 1 Mehdi Abaakouk
Il peut ensuite créer le fichier /etc/ceph/ceph.conf
61 1 Mehdi Abaakouk
62 1 Mehdi Abaakouk
<pre>
63 1 Mehdi Abaakouk
[global]
64 1 Mehdi Abaakouk
fsid = 1fe74663-8dfa-486c-bb80-3bd94c90c967
65 1 Mehdi Abaakouk
auth_supported = cephx
66 1 Mehdi Abaakouk
auth_cluster_required = cephx
67 1 Mehdi Abaakouk
auth_service_required = cephx
68 1 Mehdi Abaakouk
auth_client_required = cephx
69 1 Mehdi Abaakouk
mon_host = 192.168.99.251,192.168.99.252,192.168.99.253
70 1 Mehdi Abaakouk
71 1 Mehdi Abaakouk
[client.sileht]
72 1 Mehdi Abaakouk
keyring = /etc/ceph/ceph.client.sileht.keyring
73 1 Mehdi Abaakouk
</pre>
74 1 Mehdi Abaakouk
75 5 Laurent GUERBY
On vérifie que cela marche :
76 1 Mehdi Abaakouk
77 1 Mehdi Abaakouk
<pre>
78 1 Mehdi Abaakouk
$ rbd --id sileht -p sileht-pool ls
79 1 Mehdi Abaakouk
</pre>
80 1 Mehdi Abaakouk
81 5 Laurent GUERBY
Si il n'y a pas d'erreur c'est bon, maintenant on créée un volume rbd :
82 1 Mehdi Abaakouk
83 1 Mehdi Abaakouk
<pre>
84 1 Mehdi Abaakouk
$ rbd --id sileht --pool sileht-pool create --size 100000 backup
85 1 Mehdi Abaakouk
$ rbd --id sileht -p sileht-pool ls
86 1 Mehdi Abaakouk
backup
87 1 Mehdi Abaakouk
</pre>
88 1 Mehdi Abaakouk
89 5 Laurent GUERBY
On configure le mapping automatique du volume rbd :
90 1 Mehdi Abaakouk
91 1 Mehdi Abaakouk
<pre>
92 1 Mehdi Abaakouk
$ echo sileht-pool/backup  id=sileht >> /etc/ceph/rbdmap
93 1 Mehdi Abaakouk
$ service rbdmap restart
94 1 Mehdi Abaakouk
RBD Mapping: 'sileht-pool/backup'...done.
95 1 Mehdi Abaakouk
</pre>
96 1 Mehdi Abaakouk
97 1 Mehdi Abaakouk
98 5 Laurent GUERBY
le disque est prêt, on peut soit le formater directement :
99 1 Mehdi Abaakouk
100 1 Mehdi Abaakouk
<pre>
101 1 Mehdi Abaakouk
$ mkfs.ext4 /dev/rbd/sileht-pool/backup 
102 1 Mehdi Abaakouk
$ mount /dev/rbd/sileht-pool/backup  /backup
103 1 Mehdi Abaakouk
</pre>
104 1 Mehdi Abaakouk
105 1 Mehdi Abaakouk
soit le chiffrer:
106 1 Mehdi Abaakouk
107 1 Mehdi Abaakouk
<pre>
108 1 Mehdi Abaakouk
$ sudo cryptsetup luksFormat /dev/rbd/sileht-pool/backup
109 1 Mehdi Abaakouk
110 1 Mehdi Abaakouk
WARNING!
111 1 Mehdi Abaakouk
========
112 1 Mehdi Abaakouk
This will overwrite data on /dev/rbd/sileht-pool/backup irrevocably.
113 1 Mehdi Abaakouk
114 1 Mehdi Abaakouk
Are you sure? (Type uppercase yes): YES
115 1 Mehdi Abaakouk
Enter passphrase:
116 1 Mehdi Abaakouk
Verify passphrase:
117 1 Mehdi Abaakouk
</pre>
118 1 Mehdi Abaakouk
119 1 Mehdi Abaakouk
<pre>
120 1 Mehdi Abaakouk
$ cryptsetup luksOpen /dev/rbd/sileht-pool/backup backup1
121 1 Mehdi Abaakouk
$ mkfs.ext4 /dev/mapper/backup1
122 1 Mehdi Abaakouk
$ mount /dev/mapper/backup1 /backup
123 1 Mehdi Abaakouk
</pre>
124 1 Mehdi Abaakouk
125 2 Laurent GUERBY
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)
126 2 Laurent GUERBY
127 5 Laurent GUERBY
Ajout de la configuration persistante via un keyfile (attention : c'est une clé privée qui permet d'ouvrir le volume cryptfs sans passphrase) :
128 1 Mehdi Abaakouk
129 1 Mehdi Abaakouk
<pre>
130 1 Mehdi Abaakouk
$ dd if=/dev/urandom of=/etc/luks.key bs=1024 count=4
131 1 Mehdi Abaakouk
$ chmod 0400 /etc/luks.key
132 1 Mehdi Abaakouk
$ cryptsetup luksAddKey /dev/rbd/sileht-pool/backup /etc/luks.key
133 1 Mehdi Abaakouk
134 1 Mehdi Abaakouk
$ sudo blkid | grep -e rbd0 -e backup1
135 1 Mehdi Abaakouk
/dev/rbd0: UUID="1a268f70-6f6d-41f7-9216-43ba0bd0750b" TYPE="crypto_LUKS"
136 1 Mehdi Abaakouk
/dev/mapper/backup1: UUID="51db13d9-4ac4-4e47-bb7a-b111994cdefd" TYPE="ext4" 
137 1 Mehdi Abaakouk
138 1 Mehdi Abaakouk
139 1 Mehdi Abaakouk
$ echo "backup1 UUID=1a268f70-6f6d-41f7-9216-43ba0bd0750b /etc/luks.key luks" >> /etc/crypttab 
140 1 Mehdi Abaakouk
$ echo "UUID=51db13d9-4ac4-4e47-bb7a-b111994cdefd  /backup ext4   defaults,noatime       0       2" >> /etc/fstab
141 1 Mehdi Abaakouk
</pre>