د iSCSI له لارې Ceph - یا سکیینګ پداسې حال کې چې په هاماک کې ولاړ وي

ایا زموږ په مینځ کې داسې کسان شتون لري (tsefovodov) چې "مسلکي انتها" نه خوښوي؟

دا امکان نلري - که نه نو موږ به د دې خورا په زړه پوري او مسخره محصول سره نږدې نه شو.

ډیری هغه کسان چې د Ceph په عملیاتو کې دخیل وو د یو چا سره ډیر ځله نه لیدل شوي (یا حتی ډیر کم) مګر ځینې وختونه د غوښتنې په حالت کې - د iSCSI یا FC له لارې Ceph سره وصل کول. د څه لپاره؟ ښه ، د مثال په توګه ، د سیف څخه یو عکس وینډوز یا سولاریس سرور ته وسپارئ چې لاهم د کوم دلیل لپاره مجازی شوی نه دی. یا یو مجازی شوی ، مګر د هایپروایزر کارول چې نشي کولی سیف - او لکه څنګه چې موږ پوهیږو ، د دوی ډیری شتون لري. د مثال په ډول؟ ښه، د بیلګې په توګه، HyperV یا ESXi، کوم چې په فعاله توګه کارول کیږي. او که چیرې دنده د سیف څخه میلمانه ماشین ته د عکس خدمت کولو رامینځته شي ، نو دا په خورا په زړه پوري دنده بدلیږي.

نو، ورکړل شوی:

  1. د سیف کلستر دمخه روان دی
  2. یو پخوانۍ موجود انځور چې باید د iSCSI له لارې وړاندې شي
  3. د حوض نوم mypoolد انځور نوم زما انځور

پيل كيدل؛ شروع كيدل: او چنېدل، راوتل؟

تر ټولو لومړی، کله چې موږ د FC یا iSCSI په اړه خبرې کوو، موږ داسې ادارې لرو لکه ابتکار او هدف. هدف په حقیقت کې یو سرور دی، نوښتګر یو مراجع دی. زموږ دنده دا ده چې د لږترلږه هڅې سره ابتکار ته د Ceph عکس وسپارو. دا پدې مانا ده چې موږ باید هدف پراخ کړو. مګر چیرته، په کوم کمپیوټر کې؟

خوشبختانه ، په Ceph کلستر کې موږ لږترلږه یوه برخه لرو چې IP پته یې ټاکل شوې او په کوم کې چې د Ceph ترټولو مهم اجزا تنظیم شوي ، او دا برخه مانیټر دی. په دې اساس، موږ په مانیټور کې د iSCSI هدف نصب کوو (او په ورته وخت کې یو پیل کونکی، لږترلږه د ازموینو لپاره). ما دا په CentOS کې کړی ، مګر حل د کوم بل توزیع لپاره هم مناسب دی - تاسو یوازې اړتیا لرئ کڅوړې په هغه ډول نصب کړئ چې ستاسو په توزیع کې د منلو وړ وي.

# yum -y install iscsi-initiator-utils targetcli

د نصب شوي کڅوړو هدف څه دی؟

  • targetcli — د SCSI هدف اداره کولو لپاره یو ګټور چې په لینکس کرنل کې جوړ شوی
  • iscsi-initiator-utils - یو بسته د اسانتیاو سره چې د لینکس کرنل کې جوړ شوي iSCSI نوښتګر اداره کولو لپاره کارول کیږي

نوښتګر ته د iSCSI له لارې د عکس سپارلو لپاره ، د پیښو پراختیا لپاره دوه اختیارونه شتون لري - د هدف لپاره د کارونکي ځای بیک انډ وکاروئ یا عکس د بلاک وسیلې په توګه وصل کړئ چې عملیاتي سیسټم ته څرګند وي او د iSCSI له لارې یې صادر کړئ. موږ به دویمې لارې ته ځو - د کاروونکي ځای پس منظر لاهم په "تجربه" حالت کې دی او یو څه د تولیدي کارونې لپاره چمتو ندي. برسېره پردې، د دې سره نیمګړتیاوې شتون لري، چې تاسو یې کولی شئ ډیرې خبرې وکړئ او (او وحشت!) بحث وکړئ.

که موږ د اوږد ملاتړ دورې سره حتی یو څه باثباته توزیع وکاروو ، نو هغه دانه چې موږ یې لرو یو څه پخوانی ، لرغونی نسخه ده. د مثال په توګه، په CentOS7 کې دا 3.10.* دی، په CentOS8 کې دا 4.19 دی. او موږ لږترلږه د 5.3 (یا بلکه 5.4) او نوي دانه سره علاقه لرو. ولې؟ ځکه چې د ډیفالټ سیف عکسونه د اختیارونو سیټ لري چې فعال شوي چې د زړو دانا سره مطابقت نلري. دا پدې مانا ده چې موږ د خپل توزیع لپاره د نوي کرنل سره ذخیره وصل کوو (د مثال په توګه ، د CentOS لپاره دا elrepo دی) ، نوی کرنل نصب کړئ او سیسټم د نوي کرنل سره کار کولو لپاره ریبوټ کړئ:

  • د تجربې لپاره غوره شوي مانیټر سره وصل شئ
  • موږ د لارښوونو سره سم د ایلریپو ذخیره وصل کوو - elrepo.org/tiki/tiki-index.php
  • کرنل نصب کړئ: yum -y —enablerepo=elrepo-kernel kernel-ml نصب کړئ
  • سرور د مانیټر سره ریبوټ کړئ (موږ درې مانیټرونه لرو ، سمه ده؟)

عکس د بلاک وسیلې په توګه وصل کړئ

# rbd map mypool/myimage
/dev/rbd0

ټول هغه څه چې پاتې دي د هدف تنظیم کول دي. په دې مثال کې، زه به هدف په تش په نامه ترتیب کړم. د ډیمو حالت - پرته له تصدیق څخه ، د لیدو وړ او هرچا ته د لاسرسي وړ. د تولید په چاپیریال کې، تاسو احتمال لرئ چې تصدیق تنظیم کړئ - مګر دا د نن ورځې یوازې د ساتیرۍ تمرین لپاره یو څه د ساحې څخه بهر دی.

د فایل /dev/rbd/mypool/myimage سره تړلی د ډیسک 1 په نوم یو شالید جوړ کړئ. ټاکل شوې فایل یو سمبولیک لینک دی چې په اوتومات ډول د udev ډیمون لخوا /dev/rbd0 ته رامینځته شوی. موږ سمبولیک لینک کاروو ځکه چې د rbd وسیلې نوم کولی شي د هغه ترتیب پراساس بدل شي چې د سیف عکسونه کوربه سره وصل دي.

یو پس منظر جوړ کړئ:

# targetcli /backstores/block create disk1 /dev/rbd/mypool/myimage

د iSCSI هدف جوړ کړئ:

# targetcli /iscsi create iqn.2020-01.demo.ceph:mypool

موږ شاته د LUN په توګه هدف ته وصل کوو:

# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/luns create /backstores/block/disk1

راځئ چې د ډیمو حالت لپاره هدف تنظیم کړو:

# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute demo_mode_write_protect=0
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute generate_node_acls=1
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute cache_dynamic_acls=1

تشکیلات خوندي کړئ:

# targetcli saveconfig

د هدف شتون چک کول:

# iscsiadm -m discovery -t st -p 127.0.0.1:3260
127.0.0.1:3260,1 iqn.2020-01.demo.ceph:mypool

موږ هدف سره نښلوو:

# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] (multiple)
Login to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] successful.

که تاسو هرڅه په سمه توګه ترسره کړي، نو یو نوی ډیسک به په سرور کې ښکاره شي، کوم چې د SCSI وسیلې په څیر ښکاري، مګر په حقیقت کې د Ceph څخه یو انځور دی، د iSCSI هدف له لارې لاسرسی لري. د بوټو ستونزو څخه مخنیوي لپاره ، دا غوره ده چې د ځایی ابتکار څخه وصل شوي ډیسک او کشف شوي هدف لرې کړئ:

# iscsiadm -m node --logout
# iscsiadm -m discoverydb -o delete -t st -p 127.0.0.1:3260

ټول هغه څه چې پاتې دي د تشکیلاتو ته دوام ورکول دي ترڅو عکس په اوتومات ډول وصل شي او د پیوستون وروسته ، هدف سټراټیټ شوی. د هدف پیل کول دوه مرحلې لري - د RBD سره نښلول او په حقیقت کې د هدف پیل کول.

لومړی، راځئ چې کوربه ته د RBD عکسونو اتوماتیک پیوستون تنظیم کړو. دا د /etc/ceph/rbdmap فایل ته د لاندې لینونو په اضافه کولو سره ترسره کیږي:

# cat /etc/ceph/rbdmap
# RbdDevice Parameters
mypool/myimage id=admin
# systemctl enable rbdmap

د هدف ترتیب کول یو څه ډیر پیچلي دي - موږ اړتیا لرو د سیسټم لپاره یو واحد ولیکئ چې تنظیمات به بحال کړي:

# cat /usr/lib/systemd/system/scsi-target.service
[Unit] Description=Start iSCSI target

After=network-online.target rbdmap.service
Before=remote-fs-pre.target
Wants=network-online.target remote-fs-pre.target

[Service] Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/targetcli restoreconfig

[Install] WantedBy=multi-user.target

# systemctl daemon-reload
# systemctl enable scsi-target

وروستۍ ازموینه زموږ د مانیټر بیا پیل کول دي (دا اوس د iSCSI هدف دی). دا باید په یاد ولرئ چې که موږ د کمانډ سره د نوښت کونکي ډیټابیس پاک نه کړی وای iscsiadm -n discoverydb -o حذف ... تاسو کولی شئ د داسې سرور سره پای ته ورسیږئ چې بار نه کوي یا د بارولو لپاره ډیر وخت نیسي.

څه پاتې دي؟

نوښتګر په سرور کې تنظیم کړئ چیرې چې موږ غواړو هدف ولیږو.

څنګه کولای شو د خپل هدف د خطا زغم ډاډمن کړو؟

تاسو کولی شئ په ورته ډول په نورو مانیټرونو کې هدفونه تنظیم کړئ او ملټي پاټ تنظیم کړئ (vmware به پدې پوه شي او حتی کار وکړي ، Hyper-V به نه پوهیږي - دا د SCSI لاکونو ته اړتیا لري). څرنګه چې د کرنل څخه Ceph مراجع د کیشینګ نه کاروي، دا د کار وړ دی. یا بل انتخاب دا دی چې د دریو برخو کلستر سرچینې رامینځته کړئ - یو وقف شوی هدف IP پته او rbdmap او scsi-target خدمتونه ، او دا سرچینې د کلستر کولو وسیلو له لارې اداره کړئ (چا وویل پیس میکر؟)

د یوې بڼې په ځای

لکه څنګه چې روښانه ده، دا مقاله یو څه ټوکه ده - مګر پدې کې ما هڅه وکړه چې "چټک او د مثالونو سره" په ورته وخت کې ډیری خورا مشهور موضوعات په پام کې ونیسو - د iSCSI هدف، کوم چې ممکن د Ceph انځورونه صادر نه کړي - مګر د مثال په توګه، د LVM حجمونو صادرول، د iSCSI ابتکار سره د کار کولو اساسات (د هدف سکین کولو څرنګوالی، څنګه هدف سره نښلول، منحل کول، د ډیټابیس څخه د هدف ننوتل حذف کول)، د سیسټمډ لپاره خپل واحد لیکل او ځینې نور

زه امید لرم چې حتی که تاسو دا ټوله تجربه په بشپړ ډول تکرار نه کړئ، لږترلږه د دې مقالې څخه یو څه به ستاسو لپاره ګټور وي.

سرچینه: www.habr.com

Add a comment