نو: د سیف کارولو پرمهال یو له عامو ستونزو څخه په سیف کې د حوضونو ترمینځ د OSD او PG غیر متوازن شمیر دی.
لومړی، د دې له امله، یو حالت رامینځته کیدی شي کله چې ډیری PGs په کوچني حوض کې مشخص شوي وي، کوم چې په کلستر کې د ډیسک ځای غیر منطقي کارول دي. دوهم، په عمل کې یو ډیر جدي ستونزه شتون لري: په یوه OSDs کې د معلوماتو ډیروالی. دا د کلستر لومړی لیږد ته اړتیا لري دولت ته HEALTH_WARN، او بیا HEALTH_ERR. د دې دلیل دا دی چې Ceph ، کله چې د موجود معلوماتو مقدار محاسبه کوي (تاسو کولی شئ دا له لارې ومومئ MAX AVAIL د کمانډ محصول کې ceph df د هر حوض لپاره په جلا توګه) په OSD کې د موجود معلوماتو مقدار پورې اړه لري. که چیرې لږترلږه په یوه OSD کې کافي ځای شتون ونلري، نور معلومات نشي لیکل کیدی تر هغه چې ډاټا په سمه توګه د ټولو OSDs ترمنځ ویشل شوي نه وي.
دا د روښانه کولو وړ ده چې دا ستونزې په لویه کچه د Ceph کلستر ترتیب کولو مرحله کې پریکړه کیږي. یو له هغو وسایلو څخه چې تاسو یې کارولی شئ Ceph PGCalc. د دې په مرسته، د PG اړین مقدار په روښانه توګه محاسبه کیږي. په هرصورت ، تاسو کولی شئ دا په داسې حالت کې هم وکاروئ چیرې چې د سیف کلستر لا د په غلطه توګه ترتیب شوی. دلته د روښانه کولو ارزښت لري چې د فکس کار د یوې برخې په توګه تاسو به ډیری احتمال د PGs شمیر کمولو ته اړتیا ولرئ ، او دا خصوصیت د Ceph په زړو نسخو کې شتون نلري (دا یوازې په نسخه کې څرګند شوی. نوټیلس).
نو، راځئ چې لاندې انځور تصور کړو: کلستر یو حالت لري HEALTH_WARN د یو OSD د ځای د ختمیدو له امله. دا به د یوې تېروتنې لخوا په ګوته شي HEALTH_WARN: 1 near full osd. لاندې د دې وضعیت څخه د وتلو لپاره الګوریتم دی.
تر ټولو لومړی، تاسو اړتیا لرئ چې د پاتې OSDs ترمنځ موجود معلومات وویشئ. موږ لا دمخه په لومړي قضیه کې ورته عملیات ترسره کړي، کله چې موږ نوډ "خراب کړل" - د یوازینۍ توپیر سره چې اوس به موږ یو څه کمولو ته اړتیا ولرو. reweight. د مثال په توګه، تر 0.95 پورې:
ceph osd reweight osd.${ID} 0.95
دا په OSD کې د ډیسک ځای خلاصوي او د سیف روغتیا کې غلطي حل کوي. په هرصورت، لکه څنګه چې مخکې یادونه وشوه، دا ستونزه په عمده توګه په لومړیو مرحلو کې د سیف د غلط ترتیب له امله رامنځ ته کیږي: دا خورا مهم دی چې بیا تنظیم شي ترڅو په راتلونکي کې څرګند نشي.
زموږ په ځانګړې قضیه کې، دا ټول لاندې راغلل:
ارزښت ډیر لوړ دی replication_count په یوه حوض کې،
په یوه حوض کې ډیر PG او په بل کې ډیر لږ.
راځئ چې مخکې ذکر شوي کیلکولیټر وکاروو. دا په روښانه توګه ښیي چې څه ته اړتیا ده چې داخل شي او په اصولو کې هیڅ پیچلي شتون نلري. د اړینو پیرامیټونو په ټاکلو سره، موږ لاندې سپارښتنې ترلاسه کوو:
تبصره: که تاسو د سکریچ څخه د Ceph کلستر ترتیب کوئ، د کیلکولیټر بل ګټور فعالیت د کمانډونو تولید دی چې په جدول کې مشخص شوي پیرامیټرو سره به له سکریچ څخه حوضونه رامینځته کړي.
نو، لومړی تاسو اړتیا لرئ چې د نقل کولو پیرامیټونه بدل کړئ - دا لومړی د ترسره کولو ارزښت لري، ځکه چې د ضرب کمولو سره، موږ به د ډیسک ځای خالي کړو. لکه څنګه چې کمانډ اجرا کیږي، تاسو به وګورئ چې د ډیسک موجود ځای به زیات شي:
ceph osd pool $pool_name set $replication_size
او د بشپړیدو وروسته، موږ د پیرامیټر ارزښتونه بدلوو pg_num и pgp_num په لاندې ډول:
ceph osd pool set $pool_name pg_num $pg_number
ceph osd pool set $pool_name pgp_num $pg_number
مهم: موږ باید په هر حوض کې په ترتیب سره د PGs شمیر بدل کړو او په نورو حوضونو کې ارزښتونه بدل نه کړو تر هغه چې خبرداری ورک نشي "خراب شوي ډیټا بې ځایه کول" и "د مخونو شمیر کم شوی".
تاسو کولی شئ دا هم وګورئ چې هرڅه د کمانډ محصولاتو په کارولو سره ښه شوي ceph health detail и ceph -s.
ستونزه په مختلفو لارو حل کیدی شي - د بیلګې په توګه، بل سرور ته مهاجرت (که چیرې یو وي) یا سرور ته نوي ډیسکونه اضافه کړي. مګر دا تل ممکنه نه ده چې دا کار وکړي، نو د LVM څخه Ceph ته مهاجرت د دې ستونزې لپاره غوره حل کیدی شي. د دې اختیار په غوره کولو سره، موږ د سرورونو تر مینځ د مهاجرت نور بهیر هم ساده کوو، ځکه چې د محلي ذخیره کولو لپاره د یو هایپروایزر څخه بل ته اړتیا نشته. یوازینی کیچ دا دی چې تاسو باید VM ودروئ پداسې حال کې چې کار ترسره کیږي.
لاندې ترکیب له دې څخه اخیستل شوی د دې بلاګ څخه مقاله، چې لارښوونې په عمل کې ازمول شوي دي. په ضمن کې، د بې تکلیفه مهاجرت طریقه هم دلته بیان شوې دهکه څه هم، زموږ په قضیه کې دا په ساده ډول اړتیا نه وه، نو موږ یې ونه کتل. که دا ستاسو د پروژې لپاره مهم وي، موږ به خوښ یو چې په نظرونو کې د پایلو په اړه واورئ.
راځئ چې عملي برخې ته لاړ شو. په مثال کې موږ virsh کاروو او په وینا، libvirt. لومړی، ډاډ ترلاسه کړئ چې د Ceph حوض چې ډاټا به لیږدول کیږي د libvirt سره وصل دی:
virsh pool-dumpxml $ceph_pool
د حوض توضیحات باید د واک کولو ډیټا سره Ceph سره د پیوستون ډیټا ولري.
بل ګام دا دی چې د LVM عکس Ceph RBD ته بدل شوی. د اجرا کولو وخت اساسا د عکس په اندازې پورې اړه لري: