چکیده
oVirt یک پلتفرم مدیریت مجازی سازی متن باز و رایگان است که برای مدیریت ماشین های مجازی، شبکه ها، محاسبات، زیرساخت های سازمانی و منابع ذخیره سازی طراحی شده است. oVirt امکان مهاجرت زنده ماشین های مجازی و دیسک ها بین میزبان ها و ذخیره سازی را فراهم می کند. همچنین oVirt از ماشین مجازی مبتنی بر هسته (KVM) استفاده می کند و بر پایه پروژه های جامعه مانند Gluster، PattenFly، libvirt و Ansible ساخته شده است.
oVirt تحت مجوز GPLV2 است. رابط کاربری oVirt با استفاده از کتابخانه وب GWT توسعه یافته است و پشتیبانی آن به زبان جاوا نوشته شده است. oVirt از دو جزء اصلی oVirt node و oVirt engine تشکیل شده است. فرآیند نصب oVirt روی Ubuntu بسیار ساده است.
Agent مهمان oVirt اطلاعات، اقدامات و اعلان ها را بین رابط های کاربری وب oVirt و مهمان فراهم می کند. این agent نام ماشین، آدرس های IP، سیستم عامل، شبکه، برنامه های نصب شده و استفاده از RAM را به رابط وب ارائه می دهد. oVirt همچنین از ورود واحد پشتیبانی می کند، بنابراین کاربری که به رابط وب احراز هویت شده است، نیازی به احراز هویت مجدد هنگام اتصال به یک ماشین مجازی ندارد.
oVirt در نسخه ۳.۶.۱ پشتیبانی از ذخیره سازی Ceph را از طریق OpenStack Cinder اعلام کرد. چند سال بعد، این اعلامیه پس از معرفی پشتیبانی cinderlib در نسخه ۴.۳.۰ منسوخ شد. کاربران می توانند از آن به عنوان ذخیره سازی برای کل مرکز داده استفاده کنند. در این آموزش، مراحل استفاده از ذخیره سازی Ceph تنها برای مرکز داده oVirt را یاد خواهیم گرفت.
Self-Hosted Engine روی Ceph
برای استفاده از Ceph برای Self-Hosted Engine، کاربر باید یک تصویر ایجاد کند و آن را به عنوان iSCSI از سیستم Ceph در دسترس قرار دهد. برای این کار، فرآیند زیر را دنبال کنید:
پیش نیازها:
– یک نمونه Ceph که در حال اجرا است.
– استقرار یک نمونه Ceph Pacific با سه گره در محیط.
– اطمینان از اینکه سخت افزار حداقل نیازهای مورد نیاز را برآورده می کند.
– از ۳ میزبان با ۱۶ گیگابایت RAM و ۸ هسته استفاده کنید، اما این فقط یک محیط آزمایشی است.
– درگاه های دیوار آتش Ceph را با اجرای دستورات زیر باز کنید:
# firewall-cmd --zone=public --add-service=ceph-mon
# firewall-cmd --zone=public --add-service=ceph-mon --permanent
# firewall-cmd --zone=public --add-service=ceph
# firewall-cmd --zone=public --add-service=ceph --permanent
در پایان نصب، اگر Ceph موارد زیر را گزارش دهد:
health: HEALTH_WARN
mons are allowing insecure global_id reclaim
مشکل بالا را با اجرای دستور زیر حل کنید:
# ceph config set mon auth_allow_insecure_global_id_reclaim false
در نهایت، دستورات زیر را اجرا کنید تا داشبورد Ceph را نصب کنید:
# dnf install ceph-mgr-dashboard
# ceph mgr module enable dashboard
# firewall-cmd --zone=public --add-port=8080/tcp
# firewall-cmd --zone=public --add-port=8443/tcp
# firewall-cmd --zone=public --add-port=8443/tcp --permanent
# firewall-cmd --zone=public --add-port=8080/tcp --permanent
پشتیبانی iSCSI را فعال کنید:
برای فعال کردن پشتیبانی iSCSI در Ceph، مراحل زیر را دنبال کنید:
۱. ابتدا مخزن ceph-iscsi (https://download.ceph.com/ceph-iscsi/3/rpm/el8/ceph-iscsi.repo) را در دایرکتوری /etc/yum/repos.d ذخیره کنید.
۲. سپس، خطوط زیر را به فایل مخزنی که به تازگی دانلود کردهایم اضافه کنید:
تنظیمات tcmu-runner
[tcmu-runner]
gpgcheck=0
baseurl=https://4.chacra.ceph.com/r/tcmu-runner/master/06d64ab78c2898c032fe5be93f9ae6f64b199d5b/centos/8/flavors/default/x86_64/
enabled=1
name=tcmu-runner packages
باز کردن پورتهای لازم
برای باز کردن پورتهای مورد نیاز، دستورات زیر را اجرا کنید:
# firewall-cmd --zone=public --add-port=5000/tcp --permanent
# firewall-cmd --zone=public --add-port=5000/tcp
# firewall-cmd --zone=public --add-service=iscsi-target --permanent
# firewall-cmd --zone=public --add-service=iscsi-target
ایجاد فایل پیکربندی iSCSI
فایل پیکربندی iSCSI (/etc/ceph/iscsi-gateway.cfg) را ایجاد کرده و درگاه iSCSI را با افزودن محتوای نمونه از مخزن گیت زیر پیکربندی کنید:
[محتوای نمونه](https://github.com/ceph/ceph-iscsi/blob/master/iscsi-gateway.cfg_sample)
افشای هدف با استفاده از دستور gwcli
در نهایت، هدف را با استفاده از دستور gwcli افشا کنید. پس از آن، کاربران میتوانند یک موتور خود میزبانی شده را به این هدف iSCSI متصل کنند که به حجم افشا شده در آنجا متصل میشود.
اتصال یک استخر Ceph به عنوان دامنه ذخیرهسازی بلوک مدیریت شده
اکنون که موتور در حال اجرا است، کاربران میتوانند یک استخر Ceph را به عنوان دامنه ذخیرهسازی بلوک مدیریت شده متصل کنند. برای این کار، مراحل زیر را دنبال کنید:
۱. در سمت Ceph، یک استخر ایجاد کنید که توسط موتور oVirt استفاده شود و اطمینان حاصل کنید که برنامه به rbd تنظیم شده است.
Attaching a Ceph pool as Managed Block Storage Domain
۲. سپس، میزبان ها و موتور را با بسته های مورد نیاز آماده کنید. برای این کار، دستورالعمل های ذکر شده در مستندات oVirt برای تنظیم مستندات Cinderlib را دنبال کنید.
۳. دستور زیر را اجرا کنید تا موتور oVirt را در صورت عدم انجام قبلی، برای استفاده از cinderlib دوباره پیکربندی کنید:
# engine-setup --reconfigure-optional-components
۴. سپس، پشتیبانی از دامنه بلوک مدیریت شده را در صورتی که کاربر از سطح خوشه ای قدیمی تر از ۴.۶ استفاده می کند، با اجرای دستور زیر فعال کنید:
# engine-config -s ManagedBlockDomainSupported=true
> توجه: مرحله بالا در صورتی که کاربر از سطح خوشه ۴.۶ استفاده می کند، لازم نیست، زیرا پشتیبانی از دامنه بلوک مدیریت شده به طور پیش فرض از این نسخه به بعد فعال است.
۵. سپس، دایرکتوری /etc/ceph را از گره Ceph کاربر به میزبان موتور oVirt کپی کنید.
۶. دستور زیر را اجرا کنید تا مالکیت فایل ها در دایرکتوری /etc/ceph در میزبان موتور oVirt را تغییر دهید:
# chown ovirt /etc/ceph/*
۷. سپس، به طور دستی جفت کلید/مقدار زیر را در ایجاد دامنه ذخیره سازی برای پیکربندی دستگاه بلاگ مدیریت شده برای Ceph اضافه کنید:
rbd_ceph_conf: /etc/ceph/ceph.conf
rbd_pool:
rbd_user: admin
use_multipath_for_image_xfer: true
volume_driver: cinder.volume.drivers.rbd.RBDDriver
rbd_keyring_conf: /etc/ceph/ceph.client.admin.keyring
۸. اکنون، از بخش ذخیرهسازی موتور oVirt، حجمهایی برای ماشینهای مجازی ایجاد کنید، همانطور که در زیر نشان داده شده است:
۹. پس از آن، دیسک را به ماشین مجازی ایجاد شده در بالا متصل کنید با انتخاب برگه Managed Block و انتخاب دیسک از لیست.
۱۰. در نهایت، کاربران میتوانند جزئیات حجم را در بخش Block >> Images در سمت Ceph مشاهده کنند، همانطور که در زیر نشان داده شده است.
نتیجهگیری
این آموزش مراحل استفاده از ذخیرهسازی فقط Ceph برای مرکز داده oVirt را ارائه میدهد. امیدواریم این آموزش مفید بوده باشد و در صورت داشتن هرگونه سوال یا پیشنهاد، با ما در تماس باشید.