Mengganti disk sambil mempertahankan penomoran yang tepat dalam CEPH

Diasumsikan bahwa sebagai hasil dari metode ini, kita menyimpan urutan di mana disk dikeluarkan oleh perintah ceph osd tree. Jika ada, agar lebih mudah dibaca dan dipertimbangkan, jika perlu.

Penyimpangan lirik pada topik. Metode resmi untuk mengganti disk di ceph melibatkan menghapus semua entitas logis yang terkait dengan disk ini dari cluster dengan pembuatan ulang lebih lanjut. Akibatnya, osd yang baru dibuat (dalam beberapa keadaan) dapat mengubah nomornya (nomor atas nama entitas, yang merupakan osd.Number) dan lokasi di peta crush dan secara alami akan ditampilkan di tempat lain di pohon ceph osd dan perintah lainnya. Nomor seri akan berubah.

Gagasan metode ini adalah bahwa kita tidak akan mengubah entitas logis apa pun, tetapi cukup memasukkan disk baru ke tempat "lama" di kluster. Untuk melakukan ini, pada disk baru ini, Anda harus (kembali) membuat struktur data yang benar: semua jenis id, symlink, kunci.

Mari kita tandai disk baru.

parted /dev/__ mklabel gpt 

Mari kita buat bagian baru di partisi kita

 parted /dev/sdaa mkpart primary ext2 0% 100% /sbin/sgdisk --change-name=1:'ceph data' -- /dev/sda1 

Dapatkan UUID dari almarhum osd

 ceph osd dump|grep 'osd.' 

Masukkan PARTUUID pada disk data

 /sbin/sgdisk --typecode=1:99886b14-7904-4396-acef-c031095d4b62 -- /dev/__ 

Temukan bagian dengan majalah

 ceph-disk list | grep for | sort 

Buat sistem file pada disk data

 /sbin/mkfs -t xfs -f -i size=2048 -- /dev/sdaa1 

Mount FS

 mount -o rw,noatime,attr2,inode64,noquota /dev/____ /var/lib/ceph/osd/ceph-_OSD 

Salin data dari OSD yang berdekatan

Bahkan, ini adalah bagian paling terkenal dari prosedur ini, Anda harus melakukan semuanya dengan hati-hati.

Saat menyalin, lewati direktori / var / lib / ceph / osd / ceph-NUMBER / current, ini adalah direktori data. Simlink di jurnal akan kita buat nanti

Menyalin

 for i in activate.monmap active ceph_fsid fsid journal_uuid keyring magic ready store_version superblock systemd type whoami; do cp /var/lib/ceph/osd/ceph-_/${i} /var/lib/ceph/osd/ceph-; done 

Kami mencari majalah

 ceph-disk list | grep for | sort 

sesuai, kami menemukan partisi, dan lakukan

 ls -l /dev/disk/by-partuuid | grep _ 

Membuat symlink ke UUID ini

 ln -s /dev/disk/by-partuuid/UUID /var/lib/ceph/osd/ceph-/journal 

Isi fsid dengan nilai yang benar

Fsid ini sebenarnya merupakan id unik, di mana kotak-osd muncul di cluster, ini penting, karena jika Anda tidak menebak dengan id, maka kotak-osd itu sendiri tidak akan melihat cluster dan ini akan saling menguntungkan.

Dan nilai harus diambil dari partisi partuuid pada log data.

 echo -n UUID >/var/lib/ceph/osd/ceph-/fsid 

Isi keyring

Dengan ini, kotak-osd diotorisasi dalam gugus.

 ceph auth list|grep --after-context=1 'osd.' 

Itu ditulis ke file dalam format

 [osd.] key = __ 

Isi whoami

Kami cukup menulis nomor OSD untuk file ini, yang ingin kami hidupkan kembali.

Memusatkan perhatian pada majalah

 dd bs=32M oflag=direct if=/dev/zero of=/var/lib/ceph/osd/ceph-/journal 

Buat jurnal metadata dan osd-shki

 ceph-osd --mkfs -i _OSD ceph-osd --mkjournal -i _OSD 

Ubah pemilik data

 chown -R ceph:ceph /var/lib/ceph/osd/ceph- 

Jalankan ceph-osd

Perhatian: Segera setelah memulai ceph-osd, membangun kembali akan dimulai jika ceph osd out NUMBER tidak dikeluarkan sebelum disk keluar dari cluster.

 systemctl start ceph-osd. 

Source: https://habr.com/ru/post/id436494/


All Articles