Projet

Général

Profil

Ceph-Sharing-Disk » Historique » Version 3

Laurent GUERBY, 15/10/2014 13:01

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