Projet

Général

Profil

Management Cluster Ceph » Historique » Version 23

Mehdi Abaakouk, 12/12/2016 10:38

1 10 Mehdi Abaakouk
{{>toc}}
2 1 Mehdi Abaakouk
3 10 Mehdi Abaakouk
h1. Management Cluster Ceph
4 9 Mehdi Abaakouk
5 8 Mehdi Abaakouk
h2. Liens
6 8 Mehdi Abaakouk
7 8 Mehdi Abaakouk
* [[Openstack Management TTNN]]
8 8 Mehdi Abaakouk
* [[Openstack Setup VM pas dans openstack]]
9 8 Mehdi Abaakouk
* [[Openstack Installation nouvelle node du cluster]]
10 8 Mehdi Abaakouk
* [[Openstack Installation TTNN]]
11 8 Mehdi Abaakouk
* "Openstack tools for ttnn":/projects/git-tetaneutral-net/repository/openstack-tools
12 8 Mehdi Abaakouk
13 2 Mehdi Abaakouk
h2. Ajout d'un OSD classique
14 2 Mehdi Abaakouk
15 22 Mehdi Abaakouk
*DEBUT WORKAROUND BUG PREPARE*
16 20 Mehdi Abaakouk
17 20 Mehdi Abaakouk
ID est le premier numero lib d'osd en partant de zero
18 20 Mehdi Abaakouk
19 20 Mehdi Abaakouk
<pre>
20 20 Mehdi Abaakouk
mkdir /var/lib/ceph/osd/ceph-<ID>
21 20 Mehdi Abaakouk
chmod ceph:ceph /var/lib/ceph/osd/ceph-<ID>
22 20 Mehdi Abaakouk
</pre>
23 1 Mehdi Abaakouk
24 22 Mehdi Abaakouk
*FIN WORKAROUND BUG PREPARE*
25 21 Mehdi Abaakouk
26 20 Mehdi Abaakouk
27 2 Mehdi Abaakouk
<pre>
28 11 Mehdi Abaakouk
$ ceph-disk prepare --zap-disk --cluster-uuid 1fe74663-8dfa-486c-bb80-3bd94c90c967 --fs-type=ext4 /dev/sdX
29 2 Mehdi Abaakouk
$ smartctl --smart=on /dev/sdX  # Pour le monitoring.
30 2 Mehdi Abaakouk
</pre>
31 2 Mehdi Abaakouk
32 17 Mehdi Abaakouk
Récuperer l'id avec (c'est celui tout en bas pas accroché à l'arbre):
33 17 Mehdi Abaakouk
34 17 Mehdi Abaakouk
<pre>
35 17 Mehdi Abaakouk
ceph osd tree
36 17 Mehdi Abaakouk
</pre>
37 17 Mehdi Abaakouk
38 2 Mehdi Abaakouk
Pour un HDD: 
39 1 Mehdi Abaakouk
<pre>
40 17 Mehdi Abaakouk
$ ceph osd crush add osd.<ID> 0 root=default host=<host>
41 2 Mehdi Abaakouk
</pre>
42 2 Mehdi Abaakouk
43 1 Mehdi Abaakouk
Pour un SSD:
44 2 Mehdi Abaakouk
<pre>
45 17 Mehdi Abaakouk
$ ceph osd crush add osd.<ID> 0 root=ssd host=<host>-ssd
46 2 Mehdi Abaakouk
</pre>
47 2 Mehdi Abaakouk
48 2 Mehdi Abaakouk
Ensuite, autoriser Ceph à mettre des data dessus:
49 2 Mehdi Abaakouk
50 2 Mehdi Abaakouk
<pre>
51 2 Mehdi Abaakouk
$ /root/tools/ceph-reweight-osds.sh osd.<ID>
52 2 Mehdi Abaakouk
</pre>
53 2 Mehdi Abaakouk
54 19 Mehdi Abaakouk
55 19 Mehdi Abaakouk
56 19 Mehdi Abaakouk
h2. Vider un OSD:
57 19 Mehdi Abaakouk
58 19 Mehdi Abaakouk
<pre>
59 19 Mehdi Abaakouk
vider_osp(){
60 19 Mehdi Abaakouk
  name="$1"
61 19 Mehdi Abaakouk
  ceph osd out ${name}
62 19 Mehdi Abaakouk
  ceph osd crush reweight ${name} 0
63 19 Mehdi Abaakouk
  ceph osd reweight ${name} 0
64 19 Mehdi Abaakouk
}
65 19 Mehdi Abaakouk
</pre>
66 19 Mehdi Abaakouk
67 19 Mehdi Abaakouk
h2. Suppression d'un OSD:
68 19 Mehdi Abaakouk
69 19 Mehdi Abaakouk
<pre>
70 19 Mehdi Abaakouk
remove_osd(){
71 19 Mehdi Abaakouk
 name="$1" 
72 19 Mehdi Abaakouk
 ceph osd out ${name}
73 19 Mehdi Abaakouk
 systemctl stop ceph-osd@${name#osd.}
74 19 Mehdi Abaakouk
 ceph osd crush remove ${name}
75 19 Mehdi Abaakouk
 ceph auth del ${name}
76 19 Mehdi Abaakouk
 ceph osd rm ${name}
77 19 Mehdi Abaakouk
 ceph osd tree
78 19 Mehdi Abaakouk
}
79 19 Mehdi Abaakouk
</pre>
80 19 Mehdi Abaakouk
81 19 Mehdi Abaakouk
h2. Arrêter les IO de recovery:
82 19 Mehdi Abaakouk
83 19 Mehdi Abaakouk
<pre>
84 19 Mehdi Abaakouk
ceph osd set nobackfill 
85 19 Mehdi Abaakouk
ceph osd set norebalance
86 19 Mehdi Abaakouk
ceph osd set norecover
87 19 Mehdi Abaakouk
</pre>
88 19 Mehdi Abaakouk
89 23 Mehdi Abaakouk
h2. Procédure d'upgrade
90 23 Mehdi Abaakouk
91 23 Mehdi Abaakouk
+
92 23 Mehdi Abaakouk
_*/!\Lire la release note (contient très très souvent des trucs à faire en plus) /!\*_+
93 23 Mehdi Abaakouk
94 23 Mehdi Abaakouk
95 23 Mehdi Abaakouk
h4. Upgrade des MONs:
96 23 Mehdi Abaakouk
97 23 Mehdi Abaakouk
Mettre le flags noout:
98 23 Mehdi Abaakouk
99 23 Mehdi Abaakouk
<pre>ceph osd set noout</pre>
100 23 Mehdi Abaakouk
101 23 Mehdi Abaakouk
Sur chaque MONs (g1/g2/g3)
102 23 Mehdi Abaakouk
<pre>
103 23 Mehdi Abaakouk
apt-get upgrade -y
104 23 Mehdi Abaakouk
systemctl restart ceph-mon@g*
105 23 Mehdi Abaakouk
ceph -s
106 23 Mehdi Abaakouk
</pre>
107 23 Mehdi Abaakouk
108 23 Mehdi Abaakouk
Note que seulement le node 'leader/master' va provoquer une micro/nano coupure, souvent c'est même invisible.
109 23 Mehdi Abaakouk
110 23 Mehdi Abaakouk
h4. Upgrade des OSDs:
111 23 Mehdi Abaakouk
112 23 Mehdi Abaakouk
Pour chaque machine
113 23 Mehdi Abaakouk
<pre>
114 23 Mehdi Abaakouk
apt-get upgrade -y
115 23 Mehdi Abaakouk
systemctl restart ceph-osd@*
116 23 Mehdi Abaakouk
</pre>
117 23 Mehdi Abaakouk
118 23 Mehdi Abaakouk
Puis attendre que le recovery termine avant de faire la suivante.
119 23 Mehdi Abaakouk
120 23 Mehdi Abaakouk
Une fois toutes les OSDs upgrader et relancer, faire:
121 23 Mehdi Abaakouk
122 23 Mehdi Abaakouk
<pre>ceph osd unset noout</pre>
123 23 Mehdi Abaakouk
124 19 Mehdi Abaakouk
h2. Remplacement à froid d'un tier cache:
125 19 Mehdi Abaakouk
126 19 Mehdi Abaakouk
upstream  doc: http://docs.ceph.com/docs/master/rados/operations/cache-tiering/
127 19 Mehdi Abaakouk
128 19 Mehdi Abaakouk
<pre>
129 19 Mehdi Abaakouk
ceph osd tier cache-mode ec8p2c forward
130 19 Mehdi Abaakouk
rados -p ec8p2c cache-flush-evict-all
131 19 Mehdi Abaakouk
ceph osd tier remove-overlay ec8p2
132 19 Mehdi Abaakouk
ceph osd tier remove ec8p2 ec8p2c
133 19 Mehdi Abaakouk
134 19 Mehdi Abaakouk
rados rmpool ec8p2c ec8p2c  --yes-i-really-really-mean-ita
135 19 Mehdi Abaakouk
ceph osd pool create ec8p2c 128 128 replicated
136 19 Mehdi Abaakouk
137 19 Mehdi Abaakouk
ceph osd tier add ec8p2 ec8p2c
138 19 Mehdi Abaakouk
ceph osd tier cache-mode ec8p2c writeback
139 19 Mehdi Abaakouk
ceph osd tier set-overlay ec8p2 ec8p2c
140 19 Mehdi Abaakouk
141 19 Mehdi Abaakouk
ceph osd pool set ec8p2c size 3
142 19 Mehdi Abaakouk
ceph osd pool set ec8p2c min_size 2
143 19 Mehdi Abaakouk
ceph osd pool set ec8p2c hit_set_type bloom
144 19 Mehdi Abaakouk
145 19 Mehdi Abaakouk
ceph osd pool set ec8p2c hit_set_count 1
146 19 Mehdi Abaakouk
ceph osd pool set ec8p2c hit_set_period 3600
147 19 Mehdi Abaakouk
ceph osd pool set ec8p2c target_max_bytes 200000000000
148 19 Mehdi Abaakouk
ceph osd pool set ec8p2c target_max_objects 10000000
149 19 Mehdi Abaakouk
ceph osd pool set ec8p2c cache_target_dirty_ratio 0.4
150 19 Mehdi Abaakouk
ceph osd pool set ec8p2c cache_target_full_ratio 0.8
151 19 Mehdi Abaakouk
</pre>
152 19 Mehdi Abaakouk
153 16 Mehdi Abaakouk
h2. Ajout d'un OSD qui partage le SSD avec l'OS (OBSOLETE PLUS COMPATIBLE AVEC LES FUTURES VERSION DE CEPH)
154 2 Mehdi Abaakouk
155 2 Mehdi Abaakouk
156 2 Mehdi Abaakouk
En général avec ceph, on donne un disque, ceph créé 2 partitions une pour le journal de l'OSD, l'autre pour les datas
157 2 Mehdi Abaakouk
mais pour le SSD de tetaneutral qui a aussi l'OS, voici la méthode
158 2 Mehdi Abaakouk
159 2 Mehdi Abaakouk
Création manuelle de la partition de data ceph /dev/sda2 ici
160 7 Mehdi Abaakouk
161 7 Mehdi Abaakouk
Debian (MBR format):
162 2 Mehdi Abaakouk
<pre>
163 5 Mehdi Abaakouk
apt-get install partprobe
164 5 Mehdi Abaakouk
fdisk /dev/sda
165 5 Mehdi Abaakouk
166 2 Mehdi Abaakouk
n
167 14 Mehdi Abaakouk
p
168 14 Mehdi Abaakouk
<enter>
169 14 Mehdi Abaakouk
<enter>
170 14 Mehdi Abaakouk
<enter>
171 14 Mehdi Abaakouk
<enter>
172 14 Mehdi Abaakouk
w
173 14 Mehdi Abaakouk
174 14 Mehdi Abaakouk
$ partprobe
175 14 Mehdi Abaakouk
</pre>
176 14 Mehdi Abaakouk
177 14 Mehdi Abaakouk
Ubuntu (GPT format):
178 2 Mehdi Abaakouk
<pre>
179 2 Mehdi Abaakouk
# parted /dev/sdb
180 2 Mehdi Abaakouk
GNU Parted 2.3
181 13 Mehdi Abaakouk
Using /dev/sdb
182 13 Mehdi Abaakouk
Welcome to GNU Parted! Type 'help' to view a list of commands.
183 13 Mehdi Abaakouk
(parted) print                                                            
184 18 Mehdi Abaakouk
Model: ATA SAMSUNG MZ7KM480 (scsi)
185 13 Mehdi Abaakouk
Disk /dev/sdb: 480GB
186 13 Mehdi Abaakouk
Sector size (logical/physical): 512B/512B
187 13 Mehdi Abaakouk
Partition Table: msdos
188 13 Mehdi Abaakouk
189 13 Mehdi Abaakouk
Number  Start   End     Size    Type     File system     Flags
190 2 Mehdi Abaakouk
 1      1049kB  20.0GB  20.0GB  primary  ext4            boot
191 2 Mehdi Abaakouk
 2      20.0GB  36.0GB  16.0GB  primary  linux-swap(v1)
192 15 Mehdi Abaakouk
193 15 Mehdi Abaakouk
(parted) mkpart                                                           
194 15 Mehdi Abaakouk
Partition type?  primary/extended?                                        
195 15 Mehdi Abaakouk
Partition type?  primary/extended? primary
196 15 Mehdi Abaakouk
File system type?  [ext2]? xfs                                            
197 15 Mehdi Abaakouk
Start?                                                                    
198 15 Mehdi Abaakouk
Start? 36.0GB                                                             
199 15 Mehdi Abaakouk
End? 100%                                                                 
200 1 Mehdi Abaakouk
(parted) print                                                            
201 1 Mehdi Abaakouk
Model: ATA SAMSUNG MZ7KM480 (scsi)
202 1 Mehdi Abaakouk
Disk /dev/sdb: 480GB
203 1 Mehdi Abaakouk
Sector size (logical/physical): 512B/512B
204 1 Mehdi Abaakouk
Partition Table: msdos
205 1 Mehdi Abaakouk
206 1 Mehdi Abaakouk
Number  Start   End     Size    Type     File system     Flags
207 1 Mehdi Abaakouk
 1      1049kB  20.0GB  20.0GB  primary  ext4            boot
208 1 Mehdi Abaakouk
 2      20.0GB  36.0GB  16.0GB  primary  linux-swap(v1)
209 1 Mehdi Abaakouk
 3      36.0GB  480GB   444GB   primary
210 1 Mehdi Abaakouk
211 1 Mehdi Abaakouk
(parted) quit                                                             
212 1 Mehdi Abaakouk
Information: You may need to update /etc/fstab.
213 1 Mehdi Abaakouk
</pre>
214 1 Mehdi Abaakouk
215 1 Mehdi Abaakouk
On prepare le disk comme normalement
216 1 Mehdi Abaakouk
217 1 Mehdi Abaakouk
<pre>
218 1 Mehdi Abaakouk
ceph-disk prepare --fs-type=ext4 --cluster-uuid 1fe74663-8dfa-486c-bb80-3bd94c90c967 /dev/sda2
219 1 Mehdi Abaakouk
ceph-disk activate /dev/sda2
220 1 Mehdi Abaakouk
ceph osd crush add osd.<ID> 0 root=ssd host=g3-ssd
221 1 Mehdi Abaakouk
</pre>
222 1 Mehdi Abaakouk
223 1 Mehdi Abaakouk
Ensuite, autoriser Ceph à mettre des data dessus:
224 1 Mehdi Abaakouk
225 1 Mehdi Abaakouk
<pre>
226 1 Mehdi Abaakouk
$ /root/tools/ceph-reweight-osds.sh osd.<ID>
227 1 Mehdi Abaakouk
</pre>