سرور مجازی آراز سرور مجازی آراز
همه

آموزش نحوه نصب Ceph در اوبونتو 18.04 LTS به صورت جامع

نصب Ceph چگونه انجام می‌شود؟ اجزای کلاستر یا خوشه‌های Ceph کدامند؟ شاید به نظر برسد که راه اندازی Ceph ، بسیار دشوار است و نمی‌توان به سادگی آن را انجام داد. اما به‌طورکلی، فعالسازی Ceph به زمان و دقت بسیار زیادی نیاز دارد. در این مقاله قصد داریم به نصب و پیکربندی یک کلاستر (خوشه) ذخیره سازی Ceph  کاربردی در سرور Ubuntu 18.04 LTS بپردازیم. به بیانی بسیار ساده Ceph یک راه حل ذخیره سازی open-source (منبع باز) است که کلاستر ذخیره سازی شیء توزیع شده را پیاده سازی کرده و رابط‌هایی برای یک شی، بلوک و ذخیره سازی در سطح فایل فراهم می‌کند.

سرورهای مجازی ابر آراز از تکنولوژی Ceph بهره‌برده‌اند و شما می‌توانید از آپتایم 99/9 که در اختیارتان می‌گذاریم،‌ استفاده نمایید. بدین طریق شما دیگر نگرانی بابت داون شدن سایت خود نخواهید داشت. اگر قصد خرید سرور با امکانات و امتیازات ویژه و متعدد دارید،‌ب وب سایت ما سرزده و از خدمات ما استفاده نمایید.

سرور مجازی آراز سرور مجازی آراز

اجزای کلاستر ذخیره Ceph 

در ادامه قصد داریم تا با هم اجزای کلاستر Ceph را بررسی کنیم. به یاد داشته باشید که آشنایی با این اجزا در زمان نصب Ceph از اهمیت بسیار بالایی برخوردار است.

مانیتورها

یک Ceph Monitor یا ceph-mon نقشه‌هایی از وضعیت خوشه، از جمله نقشه مانیتور، نقشه مدیر، نقشه OSD و نقشه CRUSH را حفظ می‌کند. بررسی این مورد در زمان نصب Ceph از اهمیت بسیار بالایی برخوردار است. 

OSD های Ceph

یک osd ceph کاربردهای بسیار زیادی دارد، برخی از این کاربردها عبارتند از:

  • ذخیره‌سازی داده‌ها
  • تکثیر داده‌ها
  • بازیابی داده‌ها
  • متعادل سازی توزیع داده‌ها
  • قرار دادن اطلاعات نظارتی در اختیار مانیتورها و مدیران Ceph

MDSs

یک سرور Ceph Metadata (MDS، ceph-mds) فراداده را به نمایندگی از Ceph Filesystem ذخیره می‌کند (یعنی دستگاه‌های Ceph Block و Ceph Object Storage از MDS استفاده نمی‌کنند). سرورهای Ceph Metadata به کاربران سیستم فایل POSIX اجازه می‌دهد تا دستورات اساسی مانند ، ls ، find و… را بدون بار سنگینی بر Ceph Storage اجرا کنند.

Ceph storage یک پروژه اُپن سورس است که راهکاری برای Software-define storage با کیفیت بالا و حذف single point of failure فراهم می‌نماید. به عبارتی Ceph storage یک راهکار واقعی و جامع در زمینه‌ی سرویس‌های یکپارچه ذخیره‌سازی است که دسترسی‌های استوریج در سطوح Block، Object و File را در اختیار ما می‌گذارد. اگر قصد آشنایی بیشتر با این مفهوم را دارید به وبلاگ ابرآراز مراجعه کرده و مقاله‌ی Ceph storage چیست را مطالعه نمایید.

اهمیت شناخت Managers در زمان نصب Ceph

یک Ceph Manager (ceph-mgr) مسئول پیگیری معیارهای زمان اجرا و وضعیت فعلی خوشه (کلاستر) Ceph ، از جمله استفاده از ذخیره سازی، معیارهای عملکرد فعلی و بار سیستم است.

Ceph Cluster در معماری اوبونتو 18.04

استقرار کلاستر Ceph بر اساس نمودار سیستم زیر است:

به یاد داشته باشید که نام میزبان هر سرور باید مطابق آن تنظیم شده و /etc /hosts فایل پیکربندی شود تا در تمامی گره‌های Ceph Cluster شبیه شکل زیر در دسترس باشند:

192.168.18.70 rgw.example.com   rgw
192.168.18.71 mon01.example.com mon01
192.168.18.72 mon02.example.com mon02
192.168.18.73 mon03.example.com mon03
192.168.18.75 osd01.example.com osd01
192.168.18.76 osd02.example.com osd02
192.168.18.77 osd03.example.com osd03

نام میزبان و آدرس IP را متناسب با تنظیمات خود تغییر دهید. به عنوان یک پیش نیاز برای راه اندازی Ceph ، اطمینان حاصل کنید که سیستم شما به روز شده است:

sudo apt update
sudo apt -y upgrade
sudo reboot

Node Ceph Admin Node را آماده کنید. پس از راه‌اندازی مجدد سیستم‌ها، می‌توانید استقرار و نصب Ceph را شروع کنید. توصیه می‌شود یک گره اضافی داشته باشید که کار آن استفاده از ceph در تمام گره‌های Ceph است. این گره را گره مدیریت می‌نامند.

192.168.18.74 ceph-admin.example.com ceph-admin

Node Ceph Admin Node را آماده کنید

شما باید مخازن Ceph را به گره مدیریت ceph اضافه کرده و سپس بسته ceph-install را نصب کنید. گره سرپرست ما در اینجا دارای IP 192.168.18.74 است.

وارد کردن کلید مخزن

wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -

مخزن Ceph را به سیستم خود اضافه کنید. این کار نصب Ceph nautilus را انجام می‌دهد.

echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

مخزن خود را به روز کرده و ceph-install را نصب کنید:

sudo apt update
sudo apt -y install ceph-deploy

آماده سازی Ceph Nodes برای نصب Ceph

گره سرپرست باید دسترسی SSH بدون رمز عبور به گره‌های Ceph داشته باشد. وقتی مدیر ceph به عنوان یک کاربر به یک گره Ceph وارد می‌شود ، آن کاربر خاص باید دارای امتیازات sudo بدون رمز عبور باشد.

کاربر SSH را در تمامی گره‌های Ceph اضافه کنید؛ rgw ، osd nodes و مانیتورها

export USER_NAME="ceph-admin"
export USER_PASS="StrOngP@ssw0rd"
sudo useradd --create-home -s /bin/bash ${USER_NAME}
echo "${USER_NAME}:${USER_PASS}"|sudo chpasswd
echo "${USER_NAME} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/${USER_NAME}
sudo chmod 0440 /etc/sudoers.d/${USER_NAME}

در این مرحله از نصب Ceph تأیید کنید که کاربر می‌تواند sudo را بدون درخواست رمز عبور اجرا کند

jmutai@osd01:~$ su - ceph-admin
Password:
ceph-admin@osd01:~$ sudo su -
root@ceph-admin:~#

کلیدهای SSH را در ceph-admin node ایجاد کنید، اما از sudo یا کاربر اصلی استفاده نکنید. عبارت عبور را خالی بگذارید:

# su - ceph-admin
$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ceph-admin/.ssh/id_rsa): 
Created directory '/home/ceph-admin/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ceph-admin/.ssh/id_rsa.
Your public key has been saved in /home/ceph-admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:DZZdfRS1Yo+unWAkDum7juShEF67pm7VdSkfWlsCpbA ceph-admin@ceph-admin
The key's randomart image is:
+---[RSA 2048]----+
|     .  ..  .. o=|
|      o..o .  . o|
|     E .= o  o o |
|       +.O .. +  |
| . .. .oS.*. . . |
|. o.....ooo .    |
| o.. o . . o .   |
| ...= o . . + .  |
|oooo o.+.  . o   |
+----[SHA256]-----+

$ ls /home/ceph-admin/.ssh/
config  id_rsa  id_rsa.pub  known_hosts

~/.ssh/خود را پیکربندی کنید

$ cat /home/ceph-admin/.ssh/config 
Host osd01
  Hostname osd01
  User ceph-admin
Host osd02
  Hostname osd02
  User ceph-admin
Host osd03
  Hostname osd03
  User ceph-admin
Host osd01
  Hostname osd01
  User ceph-admin
Host mon01
  Hostname mon01
  User ceph-admin
Host mon02
  Hostname mon02
  User ceph-admin
Host mon03
  Hostname mon03
  User ceph-admin
Host rgw
  Hostname rgw
  User ceph-admin

کلید هر گره Ceph را کپی کنید. (این کار را از Ceph Admin Node به عنوان کاربر ceph-admin انجام دهید)

for i in rgw mon01 mon02 mon03 osd01 osd02 osd03; do
 ssh-copy-id $i
done

اگر کاربر از راه دور شما در همه Ceph Nodes نیست، ceph-admin را با نام کاربری مناسب جایگزین کنید.

استقرار و نصب Ceph

Ceph به Clock drift حساس است، بنابراین اطمینان حاصل کنید که NTP را در همه Ceph Nodes ، به ویژه مانیتورها، تنظیم کرده‌اید.

sudo apt install ntp

ما قصد داریم یک خوشه سه Ceph Node با یک Ceph Monitor و سه Ceph OSD Daemons ایجاد کنیم. هنگامی که خوشه به حالت فعال رسید، آن را با افزودن یک سرور متادیتا (فرا داده) و دو مانیتور Ceph دیگر گسترش دهید.

بیایید با ایجاد یک دایرکتوری در گره مدیریتی خود برای حفظ فایل‌های پیکربندی و کلیدهایی که ceph-splace برای خوشه ایجاد می‌کند، شروع کنیم.

mkdir ceph-deploy
cd ceph-deploy

ابزار ceph-استقرار فایل‌ها را به فهرست فعلی منتقل می‌کند. هنگام اجرا و نصب ceph -استقرار ، مطمئن شوید که در این فهرست هستید.

مرحله 1: ابتدا گره‌های مانیتور ceph را راه اندازی کنید

دستورات زیر را بر روی گره سرپرست خود از فهرست ceph-استقرار که برای نگهداری جزئیات پیکربندی خود ایجاد کرده‌اید اجرا کنید.

$ ceph-deploy new mon01 mon02 mon03

نمونه ی خروجی دستور بالا به شرح زیر می‌باشد:

ceph-admin@ceph-admin:~/ceph-deploy$ ceph-deploy new  mon01 mon02 mon03
[ceph_deploy.conf][DEBUG ] found configuration file at: /home/ceph-admin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.0.1): /usr/bin/ceph-deploy new mon01
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f4c0720a950>
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  ssh_copykey                   : True
[ceph_deploy.cli][INFO  ]  mon                           : ['mon01']
[ceph_deploy.cli][INFO  ]  func                          : <function new at 0x7f4c07456d70>
[ceph_deploy.cli][INFO  ]  public_network                : None
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster_network               : None
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  fsid                          : None
[ceph_deploy.new][DEBUG ] Creating new cluster named ceph
[ceph_deploy.new][INFO  ] making sure passwordless SSH succeeds
[mon01][DEBUG ] connected to host: ceph-admin 
[mon01][INFO  ] Running command: ssh -CT -o BatchMode=yes mon01
[mon01][DEBUG ] connection detected need for sudo
[mon01][DEBUG ] connected to host: mon01 
[mon01][DEBUG ] detect platform information from remote host
[mon01][DEBUG ] detect machine type
[mon01][DEBUG ] find the location of an executable
[mon01][INFO  ] Running command: sudo /bin/ip link show
[mon01][INFO  ] Running command: sudo /bin/ip addr show
[mon01][DEBUG ] IP addresses found: [u'192.168.18.71', u'192.168.19.71', u'192.168.121.23']
[ceph_deploy.new][DEBUG ] Resolving host mon01
[ceph_deploy.new][DEBUG ] Monitor mon01 at 192.168.18.71
[ceph_deploy.new][DEBUG ] Monitor initial members are ['mon01']
[ceph_deploy.new][DEBUG ] Monitor addrs are ['192.168.18.71']
[ceph_deploy.new][DEBUG ] Creating a random mon key...
[ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring...


[ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf..

مرحله 2: نصب بسته‌های Ceph

برای فعالسازی و نصب Ceph بسته‌های آن را روی تمامی گره‌ها نصب کنید:

ceph-deploy install mon01 mon02 mon03 osd01 osd02 osd03 rgw

ابزار ceph-استقرار Ceph را روی هر گره نصب می‌کند.

نمونه‌ی خروجی دستور بالا به شرح زیر است:

..........................
[osd03][DEBUG ] Setting up ceph-base (13.2.2-1bionic) ...
[osd03][DEBUG ] Setting up python-pecan (1.2.1-2) ...
[osd03][DEBUG ] update-alternatives: using /usr/bin/python2-pecan to provide /usr/bin/pecan (pecan) in auto mode
[osd03][DEBUG ] update-alternatives: using /usr/bin/python2-gunicorn_pecan to provide /usr/bin/gunicorn_pecan (gunicorn_pecan) in auto mode
[osd03][DEBUG ] Setting up ceph-osd (13.2.2-1bionic) ...
[osd03][DEBUG ] chown: cannot access '/var/lib/ceph/osd/*/block*': No such file or directory
[osd03][DEBUG ] Created symlink /etc/systemd/system/multi-user.target.wants/ceph-osd.target -> /lib/systemd/system/ceph-osd.target.
[osd03][DEBUG ] Created symlink /etc/systemd/system/ceph.target.wants/ceph-osd.target -> /lib/systemd/system/ceph-osd.target.
[osd03][DEBUG ] Setting up ceph-mds (13.2.2-1bionic) ...
[osd03][DEBUG ] Created symlink /etc/systemd/system/multi-user.target.wants/ceph-mds.target -> /lib/systemd/system/ceph-mds.target.
[osd03][DEBUG ] Created symlink /etc/systemd/system/ceph.target.wants/ceph-mds.target -> /lib/systemd/system/ceph-mds.target.
[osd03][DEBUG ] Setting up ceph-mon (13.2.2-1bionic) ...
[osd03][DEBUG ] Created symlink /etc/systemd/system/multi-user.target.wants/ceph-mon.target -> /lib/systemd/system/ceph-mon.target.
[osd03][DEBUG ] Created symlink /etc/systemd/system/ceph.target.wants/ceph-mon.target -> /lib/systemd/system/ceph-mon.target.
[osd03][DEBUG ] Setting up ceph-mgr (13.2.2-1bionic) ...
[osd03][DEBUG ] Created symlink /etc/systemd/system/multi-user.target.wants/ceph-mgr.target -> /lib/systemd/system/ceph-mgr.target.

[osd03][DEBUG ] Created symlink /etc/systemd/system/ceph.target.wants/ceph-mgr.target -> /lib/systemd/system/ceph-mgr.target.
[osd03][DEBUG ] Setting up ceph (13.2.2-1bionic) ...
[osd03][DEBUG ] Processing triggers for libc-bin (2.27-3ubuntu1) ...
[osd03][DEBUG ] Processing triggers for ureadahead (0.100.0-20) ...
[osd03][DEBUG ] Processing triggers for systemd (237-3ubuntu10) ...
[osd03][INFO  ] Running command: sudo ceph --version
[osd03][DEBUG ] ceph version 13.2.2 (02899bfda814146b021136e9d8e80eba494e1126) mimic (stable)

مرحله 3: استقرار مانیتورهای اولیه و جمع‌آری کلیدها

با اجرای دستور، مانیتورهای اولیه را ایجاد کنید:

ceph-deploy mon create-initial

با این کار،‌ تعدادی کلید در دایرکتوری کاری شما قرار داده می‌شود.

اجرای manager daemon برای نصب Ceph

ceph-deploy mgr create mon01 mon02 mon03

اضافه کردن سرورهای فراداده:

ceph-deploy mds create mon01 mon02 mon03

مرحله 4: کپی کردن کلید مدیریت Ceph

فایل پیکربندی و کلید مدیریت را در گره سرپرست و Ceph Nodes خود کپی کنید:

ceph-deploy admin mon01 mon02 mon03 osd01 osd02 osd03

مرحله 5: اضافه کردن سه OSD

فرض می‌کنیم شما در هر گره، دیسک بلااستفاده‌ای دارید به نام /dev /device. شکل من شبیه شکل زیر است:

root@osd01:~# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   32G  0 disk 
|-sda1   8:1    0  487M  0 part /boot
|-sda2   8:2    0  1.9G  0 part [SWAP]
`-sda3   8:3    0 29.6G  0 part /
vdb    252:0    0    5G  0 disk 
vdc    252:16   0    5G  0 disk 
vdd    252:32   0    5G  0 disk

من سه دستگاه برای استفاده دارم:

  • dev/vda
  • dev/vdb
  •  dev/vdc 

اطمینان حاصل کنید که دستگاه در حال حاضر استفاده نمی‌شود و اطلاعات مهمی در آن وجود ندارد. نحو استفاده به شرح زیر است:

ceph-deploy osd create --data {device} {ceph-node}

ما در این قسمت از نصب Ceph دستورات زیر را  اجرا می‌کنیم:

for i in vdb vdc vdd; do
  for j in osd01 osd02 osd03; do
    ceph-deploy osd create --data /dev/$i $j
done
done

توجه: اگر در حال ایجاد OSD روی حجم LVM هستید ، آرگومان –data باید به جای مسیر به دستگاه بلوک حجم ، volume_group/lv_name باشد.

خروجی دستور lsblkcomm باید تغییر کند

# lsblk
NAME                                                                                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                                                     8:0    0   32G  0 disk
|-sda1                                                                                                  8:1    0  487M  0 part /boot
|-sda2                                                                                                  8:2    0  1.9G  0 part [SWAP]
`-sda3                                                                                                  8:3    0 29.6G  0 part /
vdb                                                                                                   252:0    0    5G  0 disk
`-ceph--908c8792--04e8--414f--8430--faa78e9b18eb-osd--block--275c9d8b--3825--4898--9b3b--5ea080fd7137 253:0    0    5G  0 lvm  
vdc                                                                                                   252:16   0    5G  0 disk
`-ceph--c79a5159--3980--47e8--b649--ed0c44d32d51-osd--block--a50c2ebc--8d65--4d16--9196--6f741606b3a2 253:1    0    5G  0 lvm  
vdd                                                                                                   252:32   0    5G  0 disk
`-ceph--594ff477--943e--49d8--8e08--addf5dbccca3-osd--block--5b71bad9--7fa8--41af--a3af--48af1219aafd 253:2    0    5G  0 lvm

مرحله 6: سلامت خوشه خود را بررسی کنید.

وضعیت خوشه Ceph را بررسی کنید
root@osd02:~# sudo ceph health
HEALTH_OK

root@osd02:~# sudo ceph status
  cluster:
    id:     5594514c-4d70-4ec8-a74e-e54ac2c1994f
    health: HEALTH_OK

  services:
    mon: 1 daemons, quorum mon01
    mgr: osd01(active)
    osd: 9 osds: 9 up, 9 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0  objects, 0 B
    usage:   9.0 GiB used, 36 GiB / 45 GiB avail
    pgs:

هنگامی که مانیتورهای جدید Ceph خود را اضافه کردید ، Ceph همگام سازی مانیتورها را آغاز کرده و حد نصاب را تشکیل می دهد. با انجام موارد زیر می توانید وضعیت حد نصاب را بررسی کنید:

ceph quorum_status --format json-pretty

مرحله 7: داشبورد Ceph را فعال کنید

ماژول Ceph Dashboard را فعال کنید:

sudo ceph mgr module enable dashboard
sudo ceph mgr module ls

تولید گواهینامه های امضا شده برای داشبورد:

sudo ceph dashboard create-self-signed-cert

ایجاد کاربر برای داشبورد:

sudo ceph dashboard ac-user-create admin 'Str0ngP@sswOrd' administrator

فعال کردن Frontend مدیریت Object Gateway:

$ sudo radosgw-admin user create --uid=admin --display-name='Ceph Admin' --system

در نهایت ، اطلاعات کاربری را به داشبورد ارائه دهید:

sudo ceph dashboard set-rgw-api-access-key <api-access-key>
sudo ceph dashboard set-rgw-api-secret-key <api-secret-key>

اگر در راه اندازی Object Gateway از گواهی خود امضا استفاده می کنید ، باید تأیید گواهی را غیرفعال کنید:

sudo ceph dashboard set-rgw-api-ssl-verify False

مرحله 8: Rados Gateway را اضافه کنید

برای استفاده از جزء Ceph Object Gateway Ceph ، باید یک نمونه از RGW را مستقر کنید. موارد زیر را برای ایجاد یک نمونه جدید از Rados Gateway انجام دهید:

$ ceph-deploy rgw create {gateway-node}

مثال:

$ ceph-deploy rgw create rgw

به طور پیش فرض ، نمونه RGW روی پورت 7480 گوش می دهد. این را می توان با ویرایش ceph.conf در گره ای که RGW را اجرا می کند تغییر داد:

[client]
rgw frontends = civetweb port=80

تنظیم مجدد خوشه(کلاستر) Ceph شما

اگر در هر مرحله با مشکل روبرو شدید و می خواهید از نو شروع کنید ، موارد زیر را برای پاک کردن بسته های Ceph انجام داده و همه داده ها و تنظیمات آن را پاک کنید:

ceph-deploy purge {ceph-node} [{ceph-node}]
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys
rm ceph.*

اگر پاکسازی را اجرا می کنید ، باید Ceph را دوباره نصب کنید. آخرین دستور rm فایلهایی را که توسط ceph-spyqually local در حین نصب قبلی نوشته شده است حذف می کند.

امیدواریم که مقاله‌ی نصب Ceph ، پاسخگوی نیازهای شما باشد. اما اگر در این خصوص به مشکلی برخوردید، تیم پشتیبانی ابر آراز در خدمت شما عزیزان خواهد بود تا به سوالات احتمالی شما پاسخ بدهد. علاه بر آن ما در پیج اینستاگرامی خود، پیرامون جدیدترین و تازه‌ترین اخبار حوزه‌ی تکنولوژی و فناوری صحبت خواهیم کرد. ما را در شبکه‌های اجتماعی دنبال کنید.

سرور مجازی آراز سرور مجازی آراز

ادمین

نویسنده ابرآراز متخصص فناوری اطلاعات و علاقه‌مند به رایانش ابری است که تلاش می‌کند با ارائه مقالات آموزشی و کاربردی، مفاهیم پیچیده فناوری را به زبانی ساده و قابل فهم برای همه کاربران ارائه دهد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا