Projet

Général

Profil

Ceph-Sharing-Disk » Historique » Version 4

Laurent GUERBY, 15/10/2014 13:03

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 1 Mehdi Abaakouk
Création de l'utilisateur et du pool ceph pour cette 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 1 Mehdi Abaakouk
Sur le client rbd:
32 1 Mehdi Abaakouk
33 1 Mehdi Abaakouk
La machine machine doit être configuré avec une ip sur le vlan3199
34 1 Mehdi Abaakouk
35 1 Mehdi Abaakouk
<pre>
36 1 Mehdi Abaakouk
apt-get install ceph
37 1 Mehdi Abaakouk
</pre>
38 1 Mehdi Abaakouk
39 1 Mehdi Abaakouk
Le membre récupére sont  keyring (ceph.client.sileht.keyring ici) et le copie dans /etc/ceph/
40 1 Mehdi Abaakouk
41 1 Mehdi Abaakouk
Il peut ensuite créer le fichier /etc/ceph/ceph.conf
42 1 Mehdi Abaakouk
43 1 Mehdi Abaakouk
<pre>
44 1 Mehdi Abaakouk
[global]
45 1 Mehdi Abaakouk
fsid = 1fe74663-8dfa-486c-bb80-3bd94c90c967
46 1 Mehdi Abaakouk
auth_supported = cephx
47 1 Mehdi Abaakouk
auth_cluster_required = cephx
48 1 Mehdi Abaakouk
auth_service_required = cephx
49 1 Mehdi Abaakouk
auth_client_required = cephx
50 1 Mehdi Abaakouk
mon_host = 192.168.99.251,192.168.99.252,192.168.99.253
51 1 Mehdi Abaakouk
52 1 Mehdi Abaakouk
[client.sileht]
53 1 Mehdi Abaakouk
keyring = /etc/ceph/ceph.client.sileht.keyring
54 1 Mehdi Abaakouk
</pre>
55 1 Mehdi Abaakouk
56 3 Laurent GUERBY
On vérifie que cela marche:
57 1 Mehdi Abaakouk
58 1 Mehdi Abaakouk
<pre>
59 1 Mehdi Abaakouk
$ rbd --id sileht -p sileht-pool ls
60 1 Mehdi Abaakouk
</pre>
61 1 Mehdi Abaakouk
62 1 Mehdi Abaakouk
Si il n'y a pas d'erreur c'est bon, maintenant on créé un volume rbd
63 1 Mehdi Abaakouk
64 1 Mehdi Abaakouk
<pre>
65 1 Mehdi Abaakouk
$ rbd --id sileht --pool sileht-pool create --size 100000 backup
66 1 Mehdi Abaakouk
$ rbd --id sileht -p sileht-pool ls
67 1 Mehdi Abaakouk
backup
68 1 Mehdi Abaakouk
</pre>
69 1 Mehdi Abaakouk
70 1 Mehdi Abaakouk
On configure le mapping automatique du volume rbd
71 1 Mehdi Abaakouk
72 1 Mehdi Abaakouk
<pre>
73 1 Mehdi Abaakouk
$ echo sileht-pool/backup  id=sileht >> /etc/ceph/rbdmap
74 1 Mehdi Abaakouk
$ service rbdmap restart
75 1 Mehdi Abaakouk
RBD Mapping: 'sileht-pool/backup'...done.
76 1 Mehdi Abaakouk
</pre>
77 1 Mehdi Abaakouk
78 1 Mehdi Abaakouk
79 1 Mehdi Abaakouk
le disque est prêt, on peut soit le formater directement:
80 1 Mehdi Abaakouk
81 1 Mehdi Abaakouk
<pre>
82 1 Mehdi Abaakouk
$ mkfs.ext4 /dev/rbd/sileht-pool/backup 
83 1 Mehdi Abaakouk
$ mount /dev/rbd/sileht-pool/backup  /backup
84 1 Mehdi Abaakouk
</pre>
85 1 Mehdi Abaakouk
86 1 Mehdi Abaakouk
soit le chiffrer:
87 1 Mehdi Abaakouk
88 1 Mehdi Abaakouk
<pre>
89 1 Mehdi Abaakouk
$ sudo cryptsetup luksFormat /dev/rbd/sileht-pool/backup
90 1 Mehdi Abaakouk
91 1 Mehdi Abaakouk
WARNING!
92 1 Mehdi Abaakouk
========
93 1 Mehdi Abaakouk
This will overwrite data on /dev/rbd/sileht-pool/backup irrevocably.
94 1 Mehdi Abaakouk
95 1 Mehdi Abaakouk
Are you sure? (Type uppercase yes): YES
96 1 Mehdi Abaakouk
Enter passphrase:
97 1 Mehdi Abaakouk
Verify passphrase:
98 1 Mehdi Abaakouk
</pre>
99 1 Mehdi Abaakouk
100 1 Mehdi Abaakouk
<pre>
101 1 Mehdi Abaakouk
$ cryptsetup luksOpen /dev/rbd/sileht-pool/backup backup1
102 1 Mehdi Abaakouk
$ mkfs.ext4 /dev/mapper/backup1
103 1 Mehdi Abaakouk
$ mount /dev/mapper/backup1 /backup
104 1 Mehdi Abaakouk
</pre>
105 1 Mehdi Abaakouk
106 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)
107 2 Laurent GUERBY
108 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):
109 1 Mehdi Abaakouk
110 1 Mehdi Abaakouk
<pre>
111 1 Mehdi Abaakouk
$ dd if=/dev/urandom of=/etc/luks.key bs=1024 count=4
112 1 Mehdi Abaakouk
$ chmod 0400 /etc/luks.key
113 1 Mehdi Abaakouk
$ cryptsetup luksAddKey /dev/rbd/sileht-pool/backup /etc/luks.key
114 1 Mehdi Abaakouk
115 1 Mehdi Abaakouk
$ sudo blkid | grep -e rbd0 -e backup1
116 1 Mehdi Abaakouk
/dev/rbd0: UUID="1a268f70-6f6d-41f7-9216-43ba0bd0750b" TYPE="crypto_LUKS"
117 1 Mehdi Abaakouk
/dev/mapper/backup1: UUID="51db13d9-4ac4-4e47-bb7a-b111994cdefd" TYPE="ext4" 
118 1 Mehdi Abaakouk
119 1 Mehdi Abaakouk
120 1 Mehdi Abaakouk
$ echo "backup1 UUID=1a268f70-6f6d-41f7-9216-43ba0bd0750b /etc/luks.key luks" >> /etc/crypttab 
121 1 Mehdi Abaakouk
$ echo "UUID=51db13d9-4ac4-4e47-bb7a-b111994cdefd  /backup ext4   defaults,noatime       0       2" >> /etc/fstab
122 1 Mehdi Abaakouk
</pre>