CEPH Sorunları Çözme

BulutWiki sitesinden
Admin (mesaj | katkılar) tarafından oluşturulmuş 13:12, 26 Haziran 2018 tarihli sürüm
(fark) ← Önceki hâli | En güncel hâli (fark) | Sonraki hâli → (fark)
Şuraya atla: kullan, ara

Pool üzerinde herhangi bir uygulamanın aktifleştirilmemesi

Özellikle yeni bir pool oluşturulduğunda bu pool üzerinde rbd, rgw ve benzeri hiçbir uygulama etkin hale getirilmediyse bu sorun ortaya çıkıyor. Hata mesajı aşağıda verilmiştir.

ceph -w
 cluster:
   id:     b49d69c7-e017-4f9f-b69b-57d3efe7987b
   health: HEALTH_WARN
           application not enabled on 1 pool(s)

ceph health detail komutu ile hatanın detayına bakılabilir.

HEALTH_WARN application not enabled on 1 pool(s)
POOL_APP_NOT_ENABLED application not enabled on 1 pool(s)
   application not enabled on pool 'rbdtest'
   use 'ceph osd pool application enable <pool-name> <app-name>', where <app-name> is 'cephfs', 'rbd', 'rgw', or freeform for custom applications.

aşağıdaki komut ile de sorun çözülür.

ceph osd pool application enable rbdtest rbd

Crash Tunable Hatası

Pool üzerinde bir image oluşturmak ve bu imaj ile rbd map ile linux cihazı olarak bağlamak için tunables legacy olarak ayarlanması gerekebiliyor. Bu durumda ceph kümesinin durumuna bakıldığında aşağıdaki hata gözlemlenir.

ceph -s
 cluster:
   id:     b49d69c7-e017-4f9f-b69b-57d3efe7987b
   health: HEALTH_WARN
           crush map has straw_calc_version=0

Sorunu çözmek için tekrar tunables set edilir.

ceph osd crush tunables optimal

MON Servisi ayakta ancak quourum olarak eklenemiyorsa

ceph -s komutu ile monitörlerin durumu izlenebilir, bu monitörlerin tamamı ayakta ve quorum statüsünde olması gerekir. Yeni bir monitör ceph kümesine eklendiğinde de sayı bir artırılarak gösterilmesi gerekmektedir. Ancak bazen aşağıdaki komut çalıştırıldığında hata alınabilir.

komut:

ceph-deploy mon create-initial

hata mesajı:

ceph_deploy.mon][WARNIN] mon.zula210 monitor is not yet in quorum, tries left: 5
[ceph_deploy.mon][WARNIN] waiting 5 seconds before retrying

ilgili sunucunun monitör servisinin log dosyasında:

2018-06-20 08:10:39.307 7fb71d1d4700  0 mon.zula210@0(probing) e0 ms_verify_authorizer bad authorizer from mon 192.168.56.212:6789/0
2018-06-20 08:10:39.307 7fb71d1d4700  0 -- 192.168.56.210:6789/0 >> 192.168.56.212:6789/0 conn(0x5580ac1f0a00 :6789 s=STATE_ACCEPTING_WAIT_CONNECT_MSG_AUTH pgs=0 cs=0 l=0).handle_connect_msg: got bad authorizer
2018-06-20 08:10:39.307 7fb71d1d4700  0 cephx: verify_authorizer could not decrypt ticket info: error: bad magic in decode_decrypt, 173658197698476996 != 18374858748799134293

bu durumda /var/lib/ceph/mon/ceph-zula210/keyring dosyasi kontrol edilir. Diger tum mon servisleri calisip bu calismiyorsa diger dosyalardan farkli key'e sahiptir. Digerleri ile ayni yapildiktan sonra artik komut calisabilir. Ayrica /etc/ceph/ceph.client.admin.keyring dosyasi da kontrol edilmelidir.

OSD Disk çıkartıp tekrar eklemek için

Hali hazırda ekli olan durumu (down) olması veya başka bir nedenle çıkarılması gereken osd diskler için aşağıda ki işlemler yapılır. Özellikle ceph-deploy komutu ile osd disk eklendiğinde ve süreçte sorunla karşılaşıldığında her ne kadar geriye sarım yapılmaya çalışılsa da maalesef bu işlem düzgün yapılamamaktadır. Neticesinde tekrar komutu çalıştırdığınızda farklı ancak hep aynı hata alınabilmektedir. disk silindikten sonra bile ona ait lvm volume oluşturulması veya dmsetup ta kaydın tutulması tekrar eklemeye mani olacak durumlardır. Detaylı bilgiler için aşağıdaki linklere göz gezdirilebilir.

Normalde takip edilmesi gereken komutlar:

ceph osd out 12
systemctl stop ceph-osd@12
ceph osd purge 12 --yes-i-really-mean-it
pvscan
vgremove ceph-e7f8edfa-f6bc-4dee-a93d-e18dbbb8d0dd
ceph osd tree

Toplu silmek için:

for i in `seq 12 23`; do ceph osd out $i; echo $i; done
for i in `seq 12 23`; do systemctl stop ceph-osd@$i; echo $i; done
for i in `seq 12 23`; do ceph osd purge $i --yes-i-really-mean-it; echo $i; done
for i in `pvscan |grep ceph|awk {'print $4'}`; do vgremove $i; echo $i; done
for i in `pvscan|grep dev|awk {'print $2'}`; do dd if=/dev/zero of=$i bs=1024 count=1; done

Tüm bu komutlara rağmen hala hata mesajı alınıyorsa bu durumda Mimic versiyonu öncesinde silmek için çalıştırılan komutlar takip edilebilir. Örnek osd.27'yi çıkarmak için:

ceph osd out 27
service ceph stop osd.27
ceph osd crush remove osd.27
ceph auth del osd.27
ceph osd rm 27
ceph-disk zap /dev/sde
dd if=/dev/zero of=/dev/sde bs=1024 count=1
umount /var/lib/ceph/osd/ceph-27
rm -rf /var/lib/ceph/osd/ceph-27/

Son olarak hala çıkartılamamışsa aşağıdaki komutlarla eski kayıt kalınmış mı bakılır.

dmsetup info -C
dmsetup remove ceph--12d0f05f--c185--42c2--9db7--ed28a6a0c926-osd--block--4c3fd1bf--7aec--4b44--8fbf--0da4b23e18b7

toplu silmek için:

for i in `dmsetup info -C|grep ceph|awk {'print $1'}`; do dmsetup remove $i; done

Böylece artık aşağıdaki komutla yeni bir osd disk eklenebilir.

ceph-deploy --overwrite-conf osd create zula211 --data /dev/sde