Projet

Général

Profil

Management Cluster Ceph » Historique » Version 26

Mehdi Abaakouk, 08/03/2017 10:30

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