Management Cluster Ceph » Historique » Version 45
Mehdi Abaakouk, 05/06/2020 10:54
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 | 45 | Mehdi Abaakouk | * [[Cluster with libvirt]] |
8 | 44 | Mehdi Abaakouk | * [[HOWTO add a VM]] |
9 | 44 | Mehdi Abaakouk | * [[Management_Cluster_Ceph]] |
10 | 44 | Mehdi Abaakouk | * [[Ceph]] |
11 | 8 | Mehdi Abaakouk | * [[Ceph-Sharing-Disk]] |
12 | 44 | Mehdi Abaakouk | * [[Openstack Setup VM pas dans openstack]] (obsolete) |
13 | 44 | Mehdi Abaakouk | * [[Openstack Installation TTNN]] (obsolete) |
14 | 44 | Mehdi Abaakouk | * [[Openstack Installation nouvelle node du cluster]] (obsolete) |
15 | 44 | Mehdi Abaakouk | * "Openstack tools for ttnn":/projects/git-tetaneutral-net/repository/openstack-tools |
16 | 8 | Mehdi Abaakouk | |
17 | 2 | Mehdi Abaakouk | h2. Ajout d'un OSD classique |
18 | 2 | Mehdi Abaakouk | |
19 | 20 | Mehdi Abaakouk | |
20 | 20 | Mehdi Abaakouk | |
21 | 20 | Mehdi Abaakouk | <pre> |
22 | 1 | Mehdi Abaakouk | $ ceph-disk prepare --zap-disk --cluster-uuid 1fe74663-8dfa-486c-bb80-3bd94c90c967 --fs-type=ext4 /dev/sdX |
23 | 34 | Laurent GUERBY | $ tune2fs -c 0 -i 0 -m 0 /dev/sdX1 |
24 | 1 | Mehdi Abaakouk | $ smartctl --smart=on /dev/sdX # Pour le monitoring. |
25 | 1 | Mehdi Abaakouk | </pre> |
26 | 1 | Mehdi Abaakouk | |
27 | 1 | Mehdi Abaakouk | Récuperer l'id avec (c'est celui tout en bas pas accroché à l'arbre): |
28 | 1 | Mehdi Abaakouk | |
29 | 1 | Mehdi Abaakouk | <pre> |
30 | 1 | Mehdi Abaakouk | ceph osd tree |
31 | 1 | Mehdi Abaakouk | </pre> |
32 | 1 | Mehdi Abaakouk | |
33 | 26 | Mehdi Abaakouk | *DEBUT WORKAROUND BUG PREPARE* |
34 | 26 | Mehdi Abaakouk | |
35 | 26 | Mehdi Abaakouk | Dans le cas ou l'osd est DOWN après le prepare c'est surement ce bug |
36 | 26 | Mehdi Abaakouk | |
37 | 26 | Mehdi Abaakouk | ID est le premier numero libre d'osd en partant de zero (en bas du ceph osd tree) |
38 | 26 | Mehdi Abaakouk | |
39 | 26 | Mehdi Abaakouk | <pre> |
40 | 26 | Mehdi Abaakouk | mkdir /var/lib/ceph/osd/ceph-<ID> |
41 | 26 | Mehdi Abaakouk | chown ceph:ceph /var/lib/ceph/osd/ceph-<ID> |
42 | 26 | Mehdi Abaakouk | ceph-disk activate /dev/sd<X>1 |
43 | 26 | Mehdi Abaakouk | systemctl status ceph-osd@<ID> |
44 | 26 | Mehdi Abaakouk | </pre> |
45 | 26 | Mehdi Abaakouk | |
46 | 26 | Mehdi Abaakouk | *FIN WORKAROUND BUG PREPARE* |
47 | 26 | Mehdi Abaakouk | |
48 | 17 | Mehdi Abaakouk | Pour un HDD: |
49 | 2 | Mehdi Abaakouk | <pre> |
50 | 2 | Mehdi Abaakouk | $ ceph osd crush add osd.<ID> 0 root=default host=<host> |
51 | 1 | Mehdi Abaakouk | </pre> |
52 | 2 | Mehdi Abaakouk | |
53 | 17 | Mehdi Abaakouk | Pour un SSD: |
54 | 2 | Mehdi Abaakouk | <pre> |
55 | 2 | Mehdi Abaakouk | $ ceph osd crush add osd.<ID> 0 root=ssd host=<host>-ssd |
56 | 2 | Mehdi Abaakouk | </pre> |
57 | 2 | Mehdi Abaakouk | |
58 | 42 | Mehdi Abaakouk | Ensuite, autoriser Ceph à mettre des data dessus WEIGHT == 1 par 1To (ie: 4To -> 4) |
59 | 2 | Mehdi Abaakouk | |
60 | 2 | Mehdi Abaakouk | <pre> |
61 | 42 | Mehdi Abaakouk | $ ceph osd crush reweight osd.<ID> <WEIGHT> |
62 | 19 | Mehdi Abaakouk | </pre> |
63 | 19 | Mehdi Abaakouk | |
64 | 35 | Mehdi Abaakouk | h3. helper |
65 | 35 | Mehdi Abaakouk | |
66 | 36 | Mehdi Abaakouk | <pre> |
67 | 35 | Mehdi Abaakouk | add_osd(){ |
68 | 35 | Mehdi Abaakouk | dev="$1" |
69 | 35 | Mehdi Abaakouk | type="$2" |
70 | 35 | Mehdi Abaakouk | host=$(hostname -s) |
71 | 35 | Mehdi Abaakouk | [ "$type" == "ssd" ] && host="${host}-ssd" |
72 | 39 | Mehdi Abaakouk | |
73 | 39 | Mehdi Abaakouk | found=0 ; next=-1 ; for i in $(ceph osd ls); do next=$((next+1)) ; [ $(($i - $next)) -gt 0 ] && found=1 && break; done ; [ $found -eq 0 ] && next=$((next+1)) |
74 | 39 | Mehdi Abaakouk | |
75 | 35 | Mehdi Abaakouk | mkdir /var/lib/ceph/osd/ceph-$next |
76 | 35 | Mehdi Abaakouk | chown ceph:ceph /var/lib/ceph/osd/ceph-$next |
77 | 35 | Mehdi Abaakouk | |
78 | 41 | Mehdi Abaakouk | ceph-disk prepare --zap-disk --cluster-uuid 1fe74663-8dfa-486c-bb80-3bd94c90c967 --fs-type=ext4 $dev |
79 | 37 | Mehdi Abaakouk | tune2fs -c 0 -i 0 -m 0 ${dev}1 |
80 | 1 | Mehdi Abaakouk | smartctl --smart=on $dev |
81 | 37 | Mehdi Abaakouk | |
82 | 37 | Mehdi Abaakouk | systemctl start ceph-osd@$next |
83 | 35 | Mehdi Abaakouk | systemctl status ceph-osd@$next |
84 | 35 | Mehdi Abaakouk | |
85 | 38 | Mehdi Abaakouk | sleep 1 |
86 | 35 | Mehdi Abaakouk | ceph osd crush add osd.$next 0 root=${type} host=${host} |
87 | 35 | Mehdi Abaakouk | } |
88 | 36 | Mehdi Abaakouk | </pre> |
89 | 35 | Mehdi Abaakouk | |
90 | 19 | Mehdi Abaakouk | h2. Vider un OSD: |
91 | 19 | Mehdi Abaakouk | |
92 | 1 | Mehdi Abaakouk | <pre> |
93 | 35 | Mehdi Abaakouk | vider_osd(){ |
94 | 19 | Mehdi Abaakouk | name="$1" |
95 | 19 | Mehdi Abaakouk | ceph osd out ${name} |
96 | 19 | Mehdi Abaakouk | ceph osd crush reweight ${name} 0 |
97 | 19 | Mehdi Abaakouk | ceph osd reweight ${name} 0 |
98 | 19 | Mehdi Abaakouk | } |
99 | 19 | Mehdi Abaakouk | </pre> |
100 | 19 | Mehdi Abaakouk | |
101 | 19 | Mehdi Abaakouk | h2. Suppression d'un OSD: |
102 | 19 | Mehdi Abaakouk | |
103 | 19 | Mehdi Abaakouk | <pre> |
104 | 19 | Mehdi Abaakouk | remove_osd(){ |
105 | 19 | Mehdi Abaakouk | name="$1" |
106 | 19 | Mehdi Abaakouk | ceph osd out ${name} |
107 | 19 | Mehdi Abaakouk | systemctl stop ceph-osd@${name#osd.} |
108 | 19 | Mehdi Abaakouk | ceph osd crush remove ${name} |
109 | 19 | Mehdi Abaakouk | ceph auth del ${name} |
110 | 19 | Mehdi Abaakouk | ceph osd rm ${name} |
111 | 19 | Mehdi Abaakouk | ceph osd tree |
112 | 19 | Mehdi Abaakouk | } |
113 | 19 | Mehdi Abaakouk | </pre> |
114 | 19 | Mehdi Abaakouk | |
115 | 19 | Mehdi Abaakouk | h2. Arrêter les IO de recovery: |
116 | 19 | Mehdi Abaakouk | |
117 | 19 | Mehdi Abaakouk | <pre> |
118 | 19 | Mehdi Abaakouk | ceph osd set nobackfill |
119 | 19 | Mehdi Abaakouk | ceph osd set norebalance |
120 | 19 | Mehdi Abaakouk | ceph osd set norecover |
121 | 19 | Mehdi Abaakouk | </pre> |
122 | 19 | Mehdi Abaakouk | |
123 | 23 | Mehdi Abaakouk | h2. Procédure d'upgrade |
124 | 23 | Mehdi Abaakouk | |
125 | 23 | Mehdi Abaakouk | + |
126 | 23 | Mehdi Abaakouk | _*/!\Lire la release note (contient très très souvent des trucs à faire en plus) /!\*_+ |
127 | 23 | Mehdi Abaakouk | |
128 | 23 | Mehdi Abaakouk | |
129 | 23 | Mehdi Abaakouk | h4. Upgrade des MONs: |
130 | 23 | Mehdi Abaakouk | |
131 | 23 | Mehdi Abaakouk | Mettre le flags noout: |
132 | 23 | Mehdi Abaakouk | |
133 | 23 | Mehdi Abaakouk | <pre>ceph osd set noout</pre> |
134 | 23 | Mehdi Abaakouk | |
135 | 23 | Mehdi Abaakouk | Sur chaque MONs (g1/g2/g3) |
136 | 23 | Mehdi Abaakouk | <pre> |
137 | 23 | Mehdi Abaakouk | apt-get upgrade -y |
138 | 23 | Mehdi Abaakouk | systemctl restart ceph-mon@g* |
139 | 23 | Mehdi Abaakouk | ceph -s |
140 | 23 | Mehdi Abaakouk | </pre> |
141 | 23 | Mehdi Abaakouk | |
142 | 23 | Mehdi Abaakouk | Note que seulement le node 'leader/master' va provoquer une micro/nano coupure, souvent c'est même invisible. |
143 | 23 | Mehdi Abaakouk | |
144 | 23 | Mehdi Abaakouk | h4. Upgrade des OSDs: |
145 | 23 | Mehdi Abaakouk | |
146 | 23 | Mehdi Abaakouk | Pour chaque machine |
147 | 23 | Mehdi Abaakouk | <pre> |
148 | 23 | Mehdi Abaakouk | apt-get upgrade -y |
149 | 23 | Mehdi Abaakouk | systemctl restart ceph-osd@* |
150 | 23 | Mehdi Abaakouk | </pre> |
151 | 23 | Mehdi Abaakouk | |
152 | 23 | Mehdi Abaakouk | Puis attendre que le recovery termine avant de faire la suivante. |
153 | 23 | Mehdi Abaakouk | |
154 | 23 | Mehdi Abaakouk | Une fois toutes les OSDs upgrader et relancer, faire: |
155 | 23 | Mehdi Abaakouk | |
156 | 23 | Mehdi Abaakouk | <pre>ceph osd unset noout</pre> |
157 | 23 | Mehdi Abaakouk | |
158 | 19 | Mehdi Abaakouk | h2. Remplacement à froid d'un tier cache: |
159 | 19 | Mehdi Abaakouk | |
160 | 19 | Mehdi Abaakouk | upstream doc: http://docs.ceph.com/docs/master/rados/operations/cache-tiering/ |
161 | 19 | Mehdi Abaakouk | |
162 | 19 | Mehdi Abaakouk | <pre> |
163 | 19 | Mehdi Abaakouk | ceph osd tier cache-mode ec8p2c forward |
164 | 19 | Mehdi Abaakouk | rados -p ec8p2c cache-flush-evict-all |
165 | 19 | Mehdi Abaakouk | ceph osd tier remove-overlay ec8p2 |
166 | 19 | Mehdi Abaakouk | ceph osd tier remove ec8p2 ec8p2c |
167 | 19 | Mehdi Abaakouk | |
168 | 19 | Mehdi Abaakouk | rados rmpool ec8p2c ec8p2c --yes-i-really-really-mean-ita |
169 | 19 | Mehdi Abaakouk | ceph osd pool create ec8p2c 128 128 replicated |
170 | 19 | Mehdi Abaakouk | |
171 | 19 | Mehdi Abaakouk | ceph osd tier add ec8p2 ec8p2c |
172 | 19 | Mehdi Abaakouk | ceph osd tier cache-mode ec8p2c writeback |
173 | 19 | Mehdi Abaakouk | ceph osd tier set-overlay ec8p2 ec8p2c |
174 | 19 | Mehdi Abaakouk | |
175 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c size 3 |
176 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c min_size 2 |
177 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c hit_set_type bloom |
178 | 19 | Mehdi Abaakouk | |
179 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c hit_set_count 1 |
180 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c hit_set_period 3600 |
181 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c target_max_bytes 200000000000 |
182 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c target_max_objects 10000000 |
183 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c cache_target_dirty_ratio 0.4 |
184 | 19 | Mehdi Abaakouk | ceph osd pool set ec8p2c cache_target_full_ratio 0.8 |
185 | 19 | Mehdi Abaakouk | </pre> |
186 | 19 | Mehdi Abaakouk | |
187 | 16 | Mehdi Abaakouk | h2. Ajout d'un OSD qui partage le SSD avec l'OS (OBSOLETE PLUS COMPATIBLE AVEC LES FUTURES VERSION DE CEPH) |
188 | 2 | Mehdi Abaakouk | |
189 | 2 | Mehdi Abaakouk | |
190 | 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 |
191 | 2 | Mehdi Abaakouk | mais pour le SSD de tetaneutral qui a aussi l'OS, voici la méthode |
192 | 2 | Mehdi Abaakouk | |
193 | 2 | Mehdi Abaakouk | Création manuelle de la partition de data ceph /dev/sda2 ici |
194 | 7 | Mehdi Abaakouk | |
195 | 7 | Mehdi Abaakouk | Debian (MBR format): |
196 | 2 | Mehdi Abaakouk | <pre> |
197 | 5 | Mehdi Abaakouk | apt-get install partprobe |
198 | 5 | Mehdi Abaakouk | fdisk /dev/sda |
199 | 5 | Mehdi Abaakouk | |
200 | 2 | Mehdi Abaakouk | n |
201 | 14 | Mehdi Abaakouk | p |
202 | 14 | Mehdi Abaakouk | <enter> |
203 | 14 | Mehdi Abaakouk | <enter> |
204 | 14 | Mehdi Abaakouk | <enter> |
205 | 14 | Mehdi Abaakouk | <enter> |
206 | 14 | Mehdi Abaakouk | w |
207 | 14 | Mehdi Abaakouk | |
208 | 14 | Mehdi Abaakouk | $ partprobe |
209 | 14 | Mehdi Abaakouk | </pre> |
210 | 14 | Mehdi Abaakouk | |
211 | 14 | Mehdi Abaakouk | Ubuntu (GPT format): |
212 | 2 | Mehdi Abaakouk | <pre> |
213 | 2 | Mehdi Abaakouk | # parted /dev/sdb |
214 | 2 | Mehdi Abaakouk | GNU Parted 2.3 |
215 | 13 | Mehdi Abaakouk | Using /dev/sdb |
216 | 13 | Mehdi Abaakouk | Welcome to GNU Parted! Type 'help' to view a list of commands. |
217 | 13 | Mehdi Abaakouk | (parted) print |
218 | 18 | Mehdi Abaakouk | Model: ATA SAMSUNG MZ7KM480 (scsi) |
219 | 13 | Mehdi Abaakouk | Disk /dev/sdb: 480GB |
220 | 13 | Mehdi Abaakouk | Sector size (logical/physical): 512B/512B |
221 | 13 | Mehdi Abaakouk | Partition Table: msdos |
222 | 13 | Mehdi Abaakouk | |
223 | 13 | Mehdi Abaakouk | Number Start End Size Type File system Flags |
224 | 2 | Mehdi Abaakouk | 1 1049kB 20.0GB 20.0GB primary ext4 boot |
225 | 2 | Mehdi Abaakouk | 2 20.0GB 36.0GB 16.0GB primary linux-swap(v1) |
226 | 15 | Mehdi Abaakouk | |
227 | 15 | Mehdi Abaakouk | (parted) mkpart |
228 | 15 | Mehdi Abaakouk | Partition type? primary/extended? |
229 | 15 | Mehdi Abaakouk | Partition type? primary/extended? primary |
230 | 15 | Mehdi Abaakouk | File system type? [ext2]? xfs |
231 | 15 | Mehdi Abaakouk | Start? |
232 | 15 | Mehdi Abaakouk | Start? 36.0GB |
233 | 15 | Mehdi Abaakouk | End? 100% |
234 | 1 | Mehdi Abaakouk | (parted) print |
235 | 1 | Mehdi Abaakouk | Model: ATA SAMSUNG MZ7KM480 (scsi) |
236 | 1 | Mehdi Abaakouk | Disk /dev/sdb: 480GB |
237 | 1 | Mehdi Abaakouk | Sector size (logical/physical): 512B/512B |
238 | 1 | Mehdi Abaakouk | Partition Table: msdos |
239 | 1 | Mehdi Abaakouk | |
240 | 1 | Mehdi Abaakouk | Number Start End Size Type File system Flags |
241 | 1 | Mehdi Abaakouk | 1 1049kB 20.0GB 20.0GB primary ext4 boot |
242 | 1 | Mehdi Abaakouk | 2 20.0GB 36.0GB 16.0GB primary linux-swap(v1) |
243 | 1 | Mehdi Abaakouk | 3 36.0GB 480GB 444GB primary |
244 | 1 | Mehdi Abaakouk | |
245 | 1 | Mehdi Abaakouk | (parted) quit |
246 | 1 | Mehdi Abaakouk | Information: You may need to update /etc/fstab. |
247 | 1 | Mehdi Abaakouk | </pre> |
248 | 1 | Mehdi Abaakouk | |
249 | 1 | Mehdi Abaakouk | On prepare le disk comme normalement |
250 | 1 | Mehdi Abaakouk | |
251 | 1 | Mehdi Abaakouk | <pre> |
252 | 1 | Mehdi Abaakouk | ceph-disk prepare --fs-type=ext4 --cluster-uuid 1fe74663-8dfa-486c-bb80-3bd94c90c967 /dev/sda2 |
253 | 1 | Mehdi Abaakouk | ceph-disk activate /dev/sda2 |
254 | 1 | Mehdi Abaakouk | ceph osd crush add osd.<ID> 0 root=ssd host=g3-ssd |
255 | 1 | Mehdi Abaakouk | </pre> |
256 | 1 | Mehdi Abaakouk | |
257 | 1 | Mehdi Abaakouk | Ensuite, autoriser Ceph à mettre des data dessus: |
258 | 1 | Mehdi Abaakouk | |
259 | 1 | Mehdi Abaakouk | <pre> |
260 | 1 | Mehdi Abaakouk | $ /root/tools/ceph-reweight-osds.sh osd.<ID> |
261 | 1 | Mehdi Abaakouk | </pre> |
262 | 28 | Laurent GUERBY | |
263 | 28 | Laurent GUERBY | h2. inconsistent pg |
264 | 28 | Laurent GUERBY | |
265 | 32 | Laurent GUERBY | * Analyse d'une erreur de coherence detectee par ceph |
266 | 32 | Laurent GUERBY | ** https://lists.tetaneutral.net/pipermail/technique/2017-August/002859.html |
267 | 32 | Laurent GUERBY | |
268 | 28 | Laurent GUERBY | <pre> |
269 | 28 | Laurent GUERBY | root@g1:~# ceph health detail |
270 | 28 | Laurent GUERBY | HEALTH_ERR 1 pgs inconsistent; 2 scrub errors |
271 | 28 | Laurent GUERBY | pg 58.22d is active+clean+inconsistent, acting [9,47,37] |
272 | 28 | Laurent GUERBY | 2 scrub errors |
273 | 28 | Laurent GUERBY | root@g1:~# rados list-inconsistent-obj 58.22d --format=json-pretty |
274 | 28 | Laurent GUERBY | { |
275 | 28 | Laurent GUERBY | "epoch": 269000, |
276 | 28 | Laurent GUERBY | "inconsistents": [ |
277 | 28 | Laurent GUERBY | { |
278 | 28 | Laurent GUERBY | "object": { |
279 | 28 | Laurent GUERBY | "name": "rbd_data.11f20f75aac8266.00000000000f79f9", |
280 | 28 | Laurent GUERBY | "nspace": "", |
281 | 28 | Laurent GUERBY | "locator": "", |
282 | 28 | Laurent GUERBY | "snap": "head", |
283 | 28 | Laurent GUERBY | "version": 9894452 |
284 | 28 | Laurent GUERBY | }, |
285 | 28 | Laurent GUERBY | "errors": [ |
286 | 28 | Laurent GUERBY | "data_digest_mismatch" |
287 | 28 | Laurent GUERBY | ], |
288 | 28 | Laurent GUERBY | "union_shard_errors": [ |
289 | 28 | Laurent GUERBY | "data_digest_mismatch_oi" |
290 | 28 | Laurent GUERBY | ], |
291 | 31 | Laurent GUERBY | "selected_object_info": |
292 | 31 | Laurent GUERBY | "58:b453643a:::rbd_data.11f20f75aac8266.00000000000f79f9:head(261163'9281748 osd.9.0:6221608 dirty|data_digest|omap_digest s 4194304 uv 9894452 dd 2193d055 od ffffffff alloc_hint [0 0])", |
293 | 28 | Laurent GUERBY | "shards": [ |
294 | 28 | Laurent GUERBY | { |
295 | 28 | Laurent GUERBY | "osd": 9, |
296 | 28 | Laurent GUERBY | "errors": [], |
297 | 28 | Laurent GUERBY | "size": 4194304, |
298 | 28 | Laurent GUERBY | "omap_digest": "0xffffffff", |
299 | 28 | Laurent GUERBY | "data_digest": "0x2193d055" |
300 | 28 | Laurent GUERBY | }, |
301 | 28 | Laurent GUERBY | { |
302 | 28 | Laurent GUERBY | "osd": 37, |
303 | 28 | Laurent GUERBY | "errors": [ |
304 | 28 | Laurent GUERBY | "data_digest_mismatch_oi" |
305 | 28 | Laurent GUERBY | ], |
306 | 28 | Laurent GUERBY | "size": 4194304, |
307 | 28 | Laurent GUERBY | "omap_digest": "0xffffffff", |
308 | 28 | Laurent GUERBY | "data_digest": "0x05891fb4" |
309 | 28 | Laurent GUERBY | }, |
310 | 28 | Laurent GUERBY | { |
311 | 28 | Laurent GUERBY | "osd": 47, |
312 | 28 | Laurent GUERBY | "errors": [], |
313 | 28 | Laurent GUERBY | "size": 4194304, |
314 | 28 | Laurent GUERBY | "omap_digest": "0xffffffff", |
315 | 28 | Laurent GUERBY | "data_digest": "0x2193d055" |
316 | 28 | Laurent GUERBY | } |
317 | 28 | Laurent GUERBY | ] |
318 | 28 | Laurent GUERBY | } |
319 | 28 | Laurent GUERBY | ] |
320 | 28 | Laurent GUERBY | } |
321 | 29 | Laurent GUERBY | root@g1:~# ceph osd map disks rbd_data.11f20f75aac8266.00000000000f79f9 |
322 | 29 | Laurent GUERBY | osdmap e269110 pool 'disks' (58) object 'rbd_data.11f20f75aac8266.00000000000f79f9' -> pg 58.5c26ca2d (58.22d) -> up ([9,47,37], p9) acting ([9,47,37], p9) |
323 | 29 | Laurent GUERBY | |
324 | 30 | Laurent GUERBY | |
325 | 30 | Laurent GUERBY | root@g8:/var/lib/ceph/osd/ceph-9/current/58.22d_head# find . -name '*11f20f75aac8266.00000000000f79f9*' |
326 | 30 | Laurent GUERBY | ./DIR_D/DIR_2/DIR_A/DIR_C/rbd\udata.11f20f75aac8266.00000000000f79f9__head_5C26CA2D__3a |
327 | 30 | Laurent GUERBY | |
328 | 30 | Laurent GUERBY | root@g10:/var/lib/ceph/osd/ceph-37/current/58.22d_head# find . -name '*11f20f75aac8266.00000000000f79f9*' |
329 | 30 | Laurent GUERBY | ./DIR_D/DIR_2/DIR_A/DIR_C/rbd\udata.11f20f75aac8266.00000000000f79f9__head_5C26CA2D__3a |
330 | 30 | Laurent GUERBY | |
331 | 30 | Laurent GUERBY | $ scp g8:/var/lib/ceph/osd/ceph-9/current/58.22d_head/DIR_D/DIR_2/DIR_A/DIR_C/rbd*data.11f20f75aac8266.00000000000f79f9__head_5C26CA2D__3a g8data |
332 | 30 | Laurent GUERBY | $ scp g10:/var/lib/ceph/osd/ceph-37/current/58.22d_head/DIR_D/DIR_2/DIR_A/DIR_C/rbd*data.11f20f75aac8266.00000000000f79f9__head_5C26CA2D__3a g10data |
333 | 30 | Laurent GUERBY | |
334 | 30 | Laurent GUERBY | $ md5sum * |
335 | 30 | Laurent GUERBY | bd85c0ef1f30829ce07e5f9152ac2d2f g10data |
336 | 30 | Laurent GUERBY | 4297d0bc373e6603e0ad842702e0ecaa g8data |
337 | 30 | Laurent GUERBY | $ $ diff -u <(od -x g10data) <(od -x g8data) |
338 | 30 | Laurent GUERBY | --- /dev/fd/63 2017-08-13 10:43:52.837097740 +0200 |
339 | 30 | Laurent GUERBY | +++ /dev/fd/62 2017-08-13 10:43:52.833097808 +0200 |
340 | 30 | Laurent GUERBY | @@ -2617,7 +2617,7 @@ |
341 | 30 | Laurent GUERBY | 0121600 439b 14f4 bb4c 5f14 6ff7 4393 9ff8 a9a9 |
342 | 30 | Laurent GUERBY | 0121620 29a8 56a4 1133 b6a8 2206 4821 2f42 4b2c |
343 | 30 | Laurent GUERBY | 0121640 3d86 41a2 785f 9785 8b48 4243 e7b9 f0aa |
344 | 30 | Laurent GUERBY | -0121660 29b6 be0c 0455 bf97 1c0d 49e5 75dd e1ed |
345 | 30 | Laurent GUERBY | +0121660 29a6 be0c 0455 bf97 1c0d 49e5 75dd e1ed |
346 | 30 | Laurent GUERBY | 0121700 2519 d6ac 1047 1111 0344 38be 27a1 db07 |
347 | 30 | Laurent GUERBY | 0121720 dff6 c002 75d8 4396 6154 eba9 3abd 5d20 |
348 | 30 | Laurent GUERBY | 0121740 8ae4 e63a 298b d754 0208 9705 1bb8 3685 |
349 | 30 | Laurent GUERBY | </pre> |
350 | 30 | Laurent GUERBY | |
351 | 30 | Laurent GUERBY | Donc un seul bit flip 29b6 vs 29a6 |
352 | 30 | Laurent GUERBY | |
353 | 30 | Laurent GUERBY | <pre> |
354 | 30 | Laurent GUERBY | >>> bin(0xa) |
355 | 30 | Laurent GUERBY | '0b1010' |
356 | 30 | Laurent GUERBY | >>> bin(0xb) |
357 | 30 | Laurent GUERBY | '0b1011' |
358 | 28 | Laurent GUERBY | </pre> |
359 | 29 | Laurent GUERBY | |
360 | 29 | Laurent GUERBY | * http://cephnotes.ksperis.com/blog/2013/08/20/ceph-osd-where-is-my-data |
361 | 33 | Laurent GUERBY | * https://superuser.com/questions/969889/what-is-the-granularity-of-a-hard-disk-ure-unrecoverable-read-error |