استبدال القرص مع الحفاظ على الترقيم المناسب في CEPH

من المفترض أنه نتيجة لهذه الطريقة ، فإننا نحفظ التسلسل الذي يتم به إخراج الأقراص بواسطة الأمر ceph osd tree. إذا كانوا هناك بالترتيب ، فهو أكثر قابلية للقراءة والنظر ، إذا لزم الأمر.

الانحدار الغنائي حول الموضوع. تتضمن الطريقة الرسمية لاستبدال قرص في ceph إزالة جميع الكيانات المنطقية المرتبطة بهذا القرص من الكتلة بمزيد من إعادة الإنشاء. نتيجة لذلك ، يمكن لـ osd الذي تم إنشاؤه حديثًا (في بعض الحالات) تغيير رقمه (الرقم في اسم الكيان ، وهو osd. Digit) والموقع في خريطة التكسير وسيتم عرضه بشكل طبيعي في مكان آخر في الأمر ceph osd tree وغيرها. سيتغير الرقم التسلسلي.

فكرة هذه الطريقة هي أننا لن نغير أي كيانات منطقية ، ولكن ببساطة انزلاق قرص جديد إلى المكان "القديم" في الكتلة. للقيام بذلك ، على هذا القرص الجديد ، يجب عليك (إعادة) إنشاء بنيات البيانات الصحيحة: كل أنواع المعرفات ، والروابط ، والمفاتيح.

دعونا نحتفل قرص جديد.

parted /dev/__ mklabel gpt 

لنقم بإنشاء قسم جديد في قسمنا

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

الحصول على UUID من OSD المتوفى

 ceph osd dump|grep 'osd.' 

ضع PARTUUID على قرص البيانات

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

العثور على القسم مع المجلة

 ceph-disk list | grep for | sort 

إنشاء نظام ملفات على قرص البيانات

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

جبل FS

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

نسخ البيانات من OSD المجاورة

في الواقع ، هذا هو الجزء الأكثر شهرة من الإجراء ، يجب أن يتم كل شيء بعناية.

عند النسخ ، تخطي الدليل / var / lib / ceph / osd / ceph-NUMBER / الحالي ، هذا هو دليل البيانات. Simlink في مجلة سننشئ في وقت لاحق

نسخ

 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 

نحن نبحث عن مجلة

 ceph-disk list | grep for | sort 

وفقا لذلك ، نجد القسم ، والقيام به

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

عمل رابط إلى UUID هذا

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

املأ fsid بالقيمة الصحيحة

هذا fsid هو في الواقع معرف فريد ، والذي بموجبه يظهر مربع osd في الكتلة ، من المهم ، لأنه إذا كنت لا تخمن مع المعرف ، فلن ترى مربع osd نفسه الكتلة وسيكون ذلك متبادلاً.

ويجب أن تؤخذ القيمة من قسم partuuid في سجل البيانات.

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

ملء كيرينغ

مع هذا ، فإن صندوق osd مخول في المجموعة.

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

هو مكتوب إلى ملف بالتنسيق

 [osd.] key = __ 

ملء whoami

نكتب ببساطة رقم OSD لهذا الملف ، الذي نريد إحياءه.

التصفير المجلة

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

إنشاء البيانات الأولية للمجلة و osd-shki

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

تغيير مالك البيانات

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

تشغيل ceph-osd

تنبيه: مباشرة بعد بدء تشغيل ceph-osd ، ستبدأ إعادة الإنشاء إذا لم يتم إصدار NUMBER من NUMBER قبل خروج القرص من الكتلة.

 systemctl start ceph-osd. 

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


All Articles