هنگام ذخیره هرگونه اطلاعات مهم ، داشتن یک نقطه خرابی بسیار خطرناک است. در حالی که بسیاری از پایگاه داده ها و نرم افزارهای دیگر به شما امکان می دهند داده ها را در زمینه یک برنامه واحد پخش کنید ، سایر سیستم ها می توانند در سطح سیستم فایلها کار کنند تا اطمینان حاصل شود که داده ها هر زمان که در دیسک نوشته شده باشند ، به جای دیگری کپی می شوند.
GlusterFS یک سیستم فایل ذخیره سازی متصل به شبکه است که به شما امکان می دهد منابع ذخیره سازی چندین ماشین را جمع کنید. به نوبه خود ، این ویژگی به شما اجازه می دهد تا دستگاه های ذخیره سازی متعددی را که در بین بسیاری از رایانه ها توزیع می شود ، به عنوان یک واحد تکی قدرتمند استفاده کنید. GlusterFS همچنین به شما امکان می دهد انواع مختلفی از تنظیمات ذخیره سازی را ایجاد کنید ، بسیاری از آنها از نظر عملکردی مشابه سطوح RAID هستند. به عنوان مثال ، می توانید داده ها را در گره های مختلف در خوشه نواری کنید ، یا می توانید افزونگی را برای دسترسی بهتر به اطلاعات پیاده سازی کنید.
اهداف
در این راهنما ، یک مجموعه ذخیره سازی خوشه ای اضافی ایجاد خواهید کرد ، که به یک سیستم فایل توزیع شده نیز شناخته می شود یا همانطور که در اسناد GlusterFS به آن اشاره شده است ، یک استخر ذخیره سازی قابل اعتماد ایجاد میکنید. این استخر عملکردی شبیه به پیکربندی RAID آینه ای بر روی شبکه فراهم می کند: هر سرور مجازی مستقل شامل کپی داده های خود است و به برنامه های شما امکان دسترسی به هر کپی را می دهد و از این طریق به توزیع بار قابل خواندن شما کمک می کند.
این خوشه GundterFS اضافی از دو سرور مجازی Ubuntu 20.04 تشکیل شده است. مشابه سرور مجازی NAS با RAID آینه ای عمل می کند. سپس به یک سرور سوم Ubuntu 20.04 پیکربندی شده برای عملکرد به عنوان یک کلاینت GlusterFS دسترسی پیدا خواهید کرد.
نکته ای در مورد اجرای ایمن GlusterFS
وقتی داده ها را به یک والیوم GlusterFS اضافه می کنید ، آن داده ها با هر دستگاه موجود در استخر ذخیره سازی که در آن والیوم هاست است همگام سازی می شود. این ترافیک بین گره ها به طور پیش فرض رمزگذاری نشده است ، به این معنی که خطری وجود دارد که بتواند توسط سو استفاده گران ردیابی شود.
به همین دلیل ، اگر می خواهید از GlusterFS در تولید استفاده کنید ، توصیه می شود که آن را در یک شبکه جداگانه اجرا کنید. به عنوان مثال ، می توانید آن را به گونه ای تنظیم کنید تا در یک Virtual Private Cloud (VPC) یا با یک VPN بین هر یک از گره ها اجرا شود.
پیش نیازها
برای دنبال کردن این آموزش ، به سه سرور مجازی اوبونتو 20.04 در حال اجرا نیاز دارید. هر سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات ادمین و فایروال تنظیم شده با UFW باشد. برای انجام این کار ، راهنمای تنظیم اولیه سرور مجازی ما برای اوبونتو 20.04 را دنبال کنید.
توجه: همانطور که در بخش اهداف گفته شد ، این آموزش پیکربندی دو سرور مجازی Ubuntu را انجام می دهد تا به عنوان سرور مجازی در استخر ذخیره سازی شما عمل کنند و مابقی نیز به عنوان کلاینت باشند که برای دسترسی به این گره ها استفاده خواهید کرد.
برای شفاف سازی ، این آموزش با نام های هاست زیر به این دستگاه ها اشاره می کند:
نام هاست نقش آن در استخر
gluster0 سرور مجازی
gluster1 سرور مجازی
gluster2 کلاینت

دستوراتی که باید بر روی gluster0 یا gluster1 اجرا شوند ، به ترتیب رنگهای آبی و قرمز دارند:
Sammy@gluster0:~$
Sammy@gluster1:~$

دستوراتی که فقط باید روی کلاینت اجرا شوند (gluster2) رنگ سبز دارند:
Sammy@gluster2:~$
دستوراتی که می توانند یا باید روی بیش از یک دستگاه اجرا شوند ، رنگ خاکستری دارند:
$
مرحله 1 – پیکربندی رزولوشن DNS در هر دستگاه
تنظیم نوعی رزولوشن نام هاست بین هر رایانه می تواند در مدیریت استخر ذخیره سازی Gluster شما کمک کننده باشد. به این ترتیب ، هر وقت در این آموزش مجبور به مراجعه به یکی از دستگاه های خود در یک دستور gluster هستید ، می توانید به جای آدرس IP مربوطه ، آنها را با یک نام دامنه یا حتی یک نام مستعار به خاطر بسپارید.
اگر نام دامنه اضافی ندارید ، یا اگر می خواهید چیزی را سریع تنظیم کنید ، می توانید به جای آن فایل / etc / hosts را در هر رایانه ویرایش کنید. این یک فایل ویژه در دستگاه های لینوکس است که در آن می توانید سیستم را پیکربندی کنید تا نامهای هاست موجود در فایل را در آدرسهای IP ثابت مشخص کنید.
توجه: اگر می خواهید سرور مجازی های خود را برای تأیید هویت با دامنه ای که در اختیار دارید پیکربندی کنید ، ابتدا لازم است یک نام دامنه از یک ثبت دامنه – مانند Namecheap یا Enom – دریافت کنید و رکوردهای DNS مناسب را پیکربندی کنید.
پس از پیکربندی یک رکورد برای هر سرور مجازی ، می توانید به مرحله دوم بروید. از آنجا که این راهنما را دنبال می کنید ، مطمئن شوید که glusterN.example.com و glusterN را با نام دامنه ای جایگزین می کنید که به سرور مجازی مربوطه در دستور نمونه ارجاع می شود.

با استفاده از ویرایشگر متن مورد نظر خود ، این فایل را با امتیازات اصلی در هر یک از دستگاه های خود باز کنید. در اینجا ، ما از nano استفاده خواهیم کرد:
$ sudo nano /etc/hosts

به طور پیش فرض ، با حذف کامنت ها فایل چیزی شبیه به این خواهد بود:
/etc/hosts
127.0.1.1 hostname hostname
127.0.0.1 localhost

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

در یکی از سرور مجازی های اوبونتو ، آدرس IP سرور مجازی را به همراه هر نامی که مایل به استفاده برای ارجاع آنها در دستورات زیر تعریف هاست محلی هستید اضافه کنید.
در مثال زیر ، هر سرور مجازی با یک نام هاست طولانی که با glusterN.example.com مطابقت دارد و یک نام کوتاه که به صورت glusterN است ، ارائه می شود. می توانید قسمتهای glusterN.example.com و glusterN هر خط را با هر اسمی – یا نامهای جدا شده با اسپیس – که می خواهید برای دسترسی به هر سرور مجازی از آنها استفاده کنید ، تغییر دهید. البته توجه داشته باشید که در کل این آموزش از این مثالها استفاده خواهد شد:
توجه: اگر سرور مجازی های شما بخشی از استخر زیرساختی Virtual Private Cloud هستند ، باید از آدرس IP خصوصی سرور مجازی ها در فایل / etc / host ها به جای IP های عمومی آنها استفاده کنید.
/etc/hosts
. . .
127.0.0.1 localhost
first_ip_address gluster0.example.com gluster0
second_ip_address gluster1.example.com gluster1
third_ip_address gluster2.example.com gluster2

. . .

پس از پایان افزودن این خطوط جدید به فایل / etc / host های یک دستگاه ، آنها را در فایل های / etc / hosts در دستگاه های دیگر خود کپی کرده و اضافه کنید. هر فایل /etc/hosts باید همان خطوط را داشته باشد ، آدرسهای IP سرور مجازی های شما را به نامهایی که انتخاب کرده اید پیوند دهد.
پس از اتمام ، هر فایل را ذخیره کنید و ببندید. اگر از nano استفاده کرده اید ، این کار را با فشار دادن CTRL + X ، Y ، و سپس ENTER انجام دهید.
اکنون که تنظیمات نام هاست را بین هر یک از سرور مجازی های خود پیکربندی کرده اید ، سپس با تنظیم استخر و والیوم ، دستورات را ساده تر می کنید. سپس ، گام دیگری را برمیدارید که باید روی هر یک از سرور مجازی های شما انجام شود. یعنی ، درواقع بایگانی بسته رسمی شخصی پروژه (PPA) Gluster را به هر سه سرور مجازی Ubuntu خود اضافه کنید تا اطمینان حاصل شود که می توانید جدیدترین نسخه GlusterFS را نصب کنید.
مرحله 2 – تنظیم منابع نرم افزاری روی هر دستگاه
اگرچه مخازن پیش فرض Ubuntu 20.04 APT شامل بسته های GlusterFS هستند ، اما در زمان نوشتن این مقاله، جدیدترین نسخه ها نیستند. یکی از راه های نصب آخرین نسخه پایدار GlusterFS (نسخه 7.6 در زمان این نوشتار) اضافه کردن PPA رسمی پروژه Gluster به هر سه سرور مجازی Ubuntu شما است.
با اجرای دستور زیر روی هر سرور مجازی ، PPA را برای بسته های GlusterFS اضافه کنید:
$ sudo add-apt-repository ppa:gluster/glusterfs-7

هنگامی که از شما خواسته شد تأیید کنید که در واقع می خواهید PPA را اضافه کنید ، ENTER را فشار دهید.
پس از افزودن PPA ، شاخص بسته محلی هر سرور مجازی را ریفرشکنید. این کار باعث می شود هر سرور مجازی از بسته های جدید موجود آگاه شود:
$ sudo apt update

پس از افزودن PPA رسمی پروژه Gluster به هر سرور مجازی و به روزرسانی شاخص بسته محلی ، آماده نصب بسته های لازم GlusterFS هستید. اما ، از آنجا که دو تا از سه ماشین شما به عنوان سرور مجازی های Gluster و دیگری به عنوان کلاینت عمل می کنند ، دو روش نصب و پیکربندی مجزا وجود دارد. ابتدا اجزای سرور مجازی را نصب و تنظیم می کنید.
مرحله 3 – نصب مؤلفه های سرور مجازی و ایجاد استخر ذخیره سازی مطمئن
استخر ذخیره سازی هر مقدار ظرفیت ذخیره از بیش از یک منبع ذخیره سازی است. در این مرحله ، دو سرور مجازی خود را – gluster0 و gluster1 – به عنوان اجزای خوشه پیکربندی می کنید.
در هر دو gluster0 و gluster1 ، بسته بندی سرور مجازی GlusterFS را با تایپ کردن دستور زیر نصب کنید:
$ sudo apt install glusterfs-server

هنگامی که از شما خواسته شد ، Y و سپس ENTER را فشار دهید تا نصب را تأیید کنید.
فرایند نصب به طور خودکار GlusterFS را پیکربندی می کند تا به عنوان یک سرویس سیستمی اجرا شود. با این حال ، این سرویس به طور خودکار شروع نمی شود و با بوت شدن فعال نمیشود.
برای شروع glusterd ، سرویس GlusterFS ، دستور شروع systemctl زیر را در gluster0 و gluster1 اجرا کنید:
$ sudo systemctl start glusterd.service

سپس دستور زیر را روی هر دو سرور مجازی اجرا کنید. این کار باعث می شود تا هر زمان که سرور مجازی بوت شود ، سرویس شروع شود:
$ sudo systemctl enable glusterd.service

پس از آن ، می توانید وضعیت سرویس را در یکی یا هر دو سرور مجازی بررسی کنید:
$ sudo systemctl status glusterd.service

اگر سرویس به روز و در حال اجرا باشد ، خروجی مانند این را دریافت خواهید کرد:
Output
● glusterd.service – GlusterFS, a clustered file-system server
Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-06-02 21:32:21 UTC; 32s ago
Docs: man:glusterd(8)
Main PID: 14742 (glusterd)
Tasks: 9 (limit: 2362)
CGroup: /system.slice/glusterd.service
└─14742 /usr/sbin/glusterd -p /var/run/glusterd.pid –log-level INFO

با فرض اینکه از راهنمای پیش نیاز ستاپ اولیه سرور مجازی پیروی کرده اید ، فایروال را با UFW بر روی هر یک از دستگاه های خود تنظیم کرده اید. به همین دلیل ، قبل از برقراری ارتباطات بین آنها و ایجاد استخر ذخیره سازی ، باید فایروال را در هر گره باز کنید.
Daemon Gluster از پورت 24007 استفاده می کند ، بنابراین باید به هر گره اجازه دهید از طریق فایروال هر گره دیگر در استخر ذخیره سازی خود به آن پورت دسترسی پیدا کند. برای انجام این کار ، دستور زیر را در gluster0 اجرا کنید. به یاد داشته باشید gluster1_ip_address را به آدرس IP gluster1 تغییر دهید:
Sammy@gluster0:~$ sudo ufw allow from gluster1_ip_address to any port 24007

و دستور زیر را روی gluster1 اجرا کنید. دوباره مطمئن شوید gluster0_ip_address را به آدرس IP gluster0 تغییر دهید:
Sammy@gluster1:~$ sudo ufw allow from gluster0_ip_address to any port 24007

همچنین باید به دستگاه کلاینت (gluster2) اجازه دسترسی به این پورت را بدهید. در غیر این صورت ، بعد از تلاش برای تنظیم والیوم ، بعداً به مشکلاتی دچار خواهید شد. دستور زیر را بر روی هر دو سرور مجازی gluster0 و gluster1 اجرا کنید تا این پورت در دستگاه کلاینت شما باز شود:
سپس ، برای اطمینان از اینكه هیچ ماشین دیگری قادر به دسترسی به پورت Gluster در هر یك از سرور مجازی ها نیست ، قانون deny  زیر را نیز به gluster0 و gluster1 اضافه كنید:
$ sudo ufw deny 24007

اکنون آماده برقراری ارتباط بین gluster0 و gluster1 هستید. برای انجام این کار ، باید دستورالعمل gler peer probe را در یکی از گره های خود اجرا کنید. فرقی نمی کند از کدام گره استفاده کنید ، اما مثال زیر نشان می دهد که فرمان در gluster0 اجرا می شود:
Sammy@gluster0:~$ sudo gluster peer probe gluster1

در اصل ، این دستور به gluster0 می گوید که به gluster1 اعتماد کند و آن را به عنوان بخشی از استخر ذخیره خود ثبت کند. اگر کاوشگر موفقیت آمیز باشد ، خروجی زیر را برمی گرداند:
Output
peer probe: success

می توانید در هر زمان با اجرای دستور gluster peer status روی هر کدام از موارد ، بررسی کنید که گره ها در حال برقراری ارتباط هستند. در این مثال، روی gluster1 در حال اجرا است:
Sammy@gluster1:~$ sudo gluster peer status

اگر این دستور را از gluster1 اجرا کنید ، خروجی مانند این را نشان می دهد:
Output
Number of Peers: 1

Hostname: gluster0.example.com
Uuid: a3fae496-c4eb-4b20-9ed2-7840230407be
State: Peer in Cluster (Connected)

در این مرحله ، دو سرور مجازی شما در حال برقراری ارتباط و آماده برای ایجاد حجم ذخیره با یکدیگر هستند.
مرحله 4 – ایجاد یک حجم ذخیره سازی
به یاد بیاورید که هدف اصلی این آموزش ایجاد استخر اضافی ذخیره سازی است. برای این منظور شما می توانید یک والیوم با عملکرد کپی گیری تنظیم کنید ، که به شما امکان می دهد چندین نسخه از داده های خود را نگه دارید و از بروز مشکل در خوشه خود جلوگیری کنید.
برای ایجاد یک والیوم ، می توانید از دستور gluster volume createبا این ترکیب کلی استفاده کنید:
sudo gluster volume create volume_name replica number_of_servers domain1.com:/path/to/data/directory domain2.com:/path/to/data/directory force

در اینجا معنی آرگومان ها و گزینه های فرمان gluster volume create آورده شده است:
volume_name: این نامی است که شما می توانید پس از ایجاد ، به آن والیوم بدهید. دستور مثال زیر یک والیوم با نام Volum1 ایجاد می کند.
replica number_of_servers: به دنبال نام والیوم ، می توانید نوع والیوم را تعیین کنید. به یاد بیاورید که هدف از این آموزش ایجاد استخر اضافی ذخیره سازی است ، بنابراین ما از نوع والیوم کپی گیری استفاده خواهیم کرد. نیاز به یک آرگومان دارد که نشان می دهد داده های والیوم روی چند سرور مجازی کپی میشود (در مورد این آموزش 2 سرور مجازی).
domain1.com:/… و domain2.com:/…: ماشینها و محل دایرکتوری آجرها را تعریف می کنند – اصطلاح GlusterFS برای واحد اصلی ذخیره سازی آن ، که شامل هر دایرکتوری در مورد هر دستگاهی است که به عنوان یک قسمت یا یک نسخه از یک والیوم بزرگتر – که والیوم 1 را تشکیل می دهد، ارائه میشود. مثال زیر دایرکتوری به نام gluster-store را در دیرکتوری اصلی هر دو سرور مجازی ایجاد می کند.
Force: این گزینه ، هشدارها یا گزینه هایی که ممکن است ظاهر شوند و ایجاد والیوم را متوقف کنند، رد می کند.
طبق کنوانسیون هایی که در ابتدا در این آموزش ایجاد شده است ، می توانید این دستور را برای ایجاد یک والیوم اجرا کنید. توجه داشته باشید که می توانید آن را از طریق gluster0 یا gluster1 اجرا کنید:
$ sudo gluster volume create volume1 replica 2 gluster0.example.com:/gluster-storage gluster1.example.com:/gluster-storage force

اگر والیوم با موفقیت ایجاد شد ، خروجی زیر را دریافت خواهید کرد:
Output
volume create: volume1: success: please start the volume to access data

در این مرحله ، والیوم شما ایجاد شده است ، اما هنوز فعال نیست. با اجرای دستور زیر ، مجدداً از هر یک از سرور مجازی های Gluster می توانید والیوم را شروع کرده و آن را برای استفاده در دسترس قرار دهید:
$ sudo gluster volume start volume1

اگر والیوم به درستی شروع شده باشد ، این خروجی را دریافت خواهید کرد:
Output
volume start: volume1: success

سپس ، بررسی کنید که والیوم آنلاین باشد. دستور زیر را از هر یک از گره های خود اجرا کنید:
$ sudo gluster volume status

خروجی مشابه این را برمی گرداند:
Output
Status of volume: volume1
Gluster process TCP Port RDMA Port Online Pid
——————————————————————————
Brick gluster0.example.com:/gluster-storage 49152 0 Y 18801
Brick gluster1.example.com:/gluster-storage 49152 0 Y 19028
Self-heal Daemon on localhost N/A N/A Y 19049
Self-heal Daemon on gluster0.example.com N/A N/A Y 18822

Task Status of Volume volume1
——————————————————————————
There are no active volume tasks

براساس این خروجی ، brickها در هر دو سرور مجازی بصورت آنلاین هستند.
به عنوان آخرین مرحله برای پیکربندی والیوم خود ، باید فایروال را در هر دو سرور مجازی باز کنید تا دستگاه کلاینت شما بتواند به آن متصل شود و والیوم آن را نصب کند. با توجه به خروجی نمونه فرمان قبلی ، volume1 در پورت 49152 در هر دو دستگاه در حال اجرا است. این پورت پیش فرض GlusterFS برای والیوم اولیه آن است و در والیوم بعدی که ایجاد می کنید از پورت 49153 ، سپس 49154 و غیره استفاده خواهید کرد.
دستور زیر را بر روی هر دو gluster0 و gluster1 اجرا کنید تا gluster2 از طریق فایروال مربوط به هر یک به این پورت دسترسی داشته باشد:
$ sudo ufw allow from gluster2_ip_address to any port 49152

سپس ، برای یک لایه امنیتی بیشتر ، یک قانون deny  دیگر برای پورت والیوم در هر دو gluster0 و gluster1 اضافه کنید. این کار تضمین می کند که هیچ دستگاهی به غیر از کلاینت شما نمی تواند به والیوم هر سرور مجازی دسترسی داشته باشد:
$ sudo ufw deny 49152

اکنون که والیوم شما به روز و در حال اجراست ، می توانید دستگاه کلاینت خود را تنظیم کرده و از راه دور استفاده از آن را شروع کنید.
مرحله 5 – نصب و پیکربندی مولفه های کلاینت
اکنون والیوم شما پیکربندی شده و برای استفاده توسط دستگاه کلاینت شما در دسترس است. قبل از شروع کار ، باید بسته glusterfs-client را از PPA تنظیم شده در مرحله 1 در دستگاه کلاینت خود نصب کنید. متعلقات این بسته شامل برخی از کتابخانه های مشترک و ماژول های مترجم GlusterFS و ابزارهای FUSE لازم برای کار کردن آن است.
دستور زیر را در gluster2 اجرا کنید:
Sammy@gluster2:~$ sudo apt install glusterfs-client

در ادامه والیوم ذخیره از راه دور خود را روی رایانه کلاینت خود سوار می کنید. قبل از اینکه بتوانید این کار را انجام دهید ، باید یک نقطه اتصال ایجاد کنید. به طور معمول ، این نقطه در دیرکتوری / mnt است ، اما در هر مکان راحت می توان از آن استفاده کرد.
برای سادگی ، دایرکتوری به نام /storage-poolرا بر روی دستگاه کلاینت خود ایجاد کنید تا به عنوان نقطه سوارسازی ارائه شود. این نام دیرکتوری با یک اسلش (/) که آن را در دیرکتوری اصلی قرار می دهد ، شروع می شود ، بنابراین شما باید آن را با امتیازات sudo ایجاد کنید:
Sammy@gluster2:~$ sudo mkdir /storage-pool

اکنون می توانید والیوم از راه دور را نصب کنید. اما قبل از آن ، نگاهی به نحو دستور mount مورد نظر برای انجام این کار بیندازید:
sudo mount -t glusterfs domain1.com:volume_name /path/to/mount/point

mount ابزاری است که در بسیاری از سیستم عاملهای یونیکس مانند یافت می شود. برای نصب سیستم فایل ها – هر چیزی از دستگاههای ذخیره سازی خارجی ، مانند کارتهای SD یا USB ، برای ذخیره سازی متصل به شبکه ، مانند این آموزش – تا دایرکتوری های موجود در سیستم فایل های موجود دستگاه استفاده می شود. ترکیب دستور mount که از آن استفاده خواهید کرد شامل گزینه -t است که به سه آرگومان نیاز دارد: نوع سیستم فایل نصب شده ، دستگاهی که می توان سیستم فایل برای سوار شدن روی آن را پیدا کرد و دایرکتوری روی کلاینت که در آن والیوم را نصب خواهید کرد.
توجه کنید که در این مثال ، آرگومان دستگاه به یک نام هاست اشاره می کند که به دنبال آن یک علامت کولون و سپس نام والیوم اضافه می شود. GlusterFS دیرکتوری های ذخیره سازی واقعی را در هر هاست ابسترکت میکند، به این معنی که این دستور به دنبال نصب دیرکتوری /gluster-storage نیست ، بلکه به جای آن volume1.
همچنین توجه داشته باشید که فقط باید یک عضو از خوشه ذخیره را مشخص کنید. این می تواند هر دو گره باشد ، زیرا سرویس GlusterFS با آنها به عنوان یک دستگاه رفتار می کند.
دستور زیر را روی دستگاه کلاینت خود (gluster2) اجرا کنید تا والیوم را در دیرکتوری /storage-pool ایجاد کنید:
Sammy@gluster2:~$ sudo mount -t glusterfs gluster0.example.com:/volume1 /storage-pool

پس از آن ، دستور df را اجرا کنید. که مقدار فضای موجود در دیسک را برای سیستم فایلی هایی که کاربر از آن استفاده می کند ، نشان می دهد:
Sammy@gluster2:~$ df

این دستور نشان می دهد که والیوم GlusterFS در محل صحیح نصب شده است:
Output
Filesystem 1K-blocks Used Available Use% Mounted on
. . .
gluster0.example.com:/volume1 50633164 1938032 48695132 4% /storage-pool

اکنون می توانید آزمایش کنید که هر داده ای که برای کلاینت ارسال می کنید همانطور که انتظار می رود در گره های سرور مجازی شما کپی شود.
مرحله 6 – تست ویژگی های افزونگی (Redundancy)
اکنون که کلاینت خود را برای استفاده از استخر و والیوم خود تنظیم کرده اید ، می توانید عملکرد آن را آزمایش کنید.
در دستگاه کلاینت (gluster2) خود ، به نقطه سوار سازی در مرحله قبل بروید:
Sammy@gluster2:~$ cd /storage-pool

سپس چند فایل آزمایشی ایجاد کنید. دستور زیر ده فایل خالی جداگانه در استخر شما ایجاد می کند:
Sammy@gluster2:~$ sudo touch file_{0..9}.test

اگر دایرکتوریهای ذخیره سازی را که قبلاً در مورد هر هاست ذخیره سازی تعریف کرده اید ، بررسی کنید ، متوجه می شوید که همه این فایل ها در هر سیستم موجود هستند.
در gluster0:
Sammy@gluster0:~$ ls /gluster-storage

Output
file_0.test file_2.test file_4.test file_6.test file_8.test
file_1.test file_3.test file_5.test file_7.test file_9.test

به همین ترتیب ، در gluster1:
Sammy@gluster1:~$ ls /gluster-storage

Output
file_0.test file_2.test file_4.test file_6.test file_8.test
file_1.test file_3.test file_5.test file_7.test file_9.test

همانطور که این خروجی ها نشان می دهد ، فایل های آزمایشی که به کلاینت اضافه کردید نیز برای هر دو گره شما نوشته شده است.
اگر تا به حال نقطه ای وجود داشته باشد که یکی از گره های موجود در خوشه ذخیره شما تنزل یابد ، در صورت ایجاد تغییراتی در سیستم فایل ، می تواند از همگام سازی با استخر ذخیره خارج شود. انجام یک عمل خوانش در نقطه نصب کلاینت پس از بازگشت گره به صورت آنلاین ، به گره هشدار می دهد تا فایل های از دست رفته را دریافت کنید:
Sammy@gluster2:~$ ls /storage-pool

اکنون که تأیید کرده اید که والیوم ذخیره شما به درستی نصب شده است و می تواند داده ها را در هر دو دستگاه در خوشه تکرار کند ، می توانید دسترسی به استخر ذخیره سازی را غیرفعال کنید.
مرحله 7 – محدود کردن ویژگی های افزونگی
در این مرحله ، هر رایانه ای می تواند بدون هیچ محدودیتی به والیوم ذخیره شما وصل شود. شما می توانید با تنظیم گزینه auth.allow ، که آدرس های IP هر کلاینت را که باید به والیوم دسترسی داشته باشد تعریف میکند، این مشخصه را تغییر دهید.
اگر از پیکربندی /etc/hostsاستفاده می کنید ، نامهایی که برای هر سرور مجازی تعیین کرده اید به طور صحیح مسیریابی نمی شوند. به جای آن باید از یک آدرس IP ثابت استفاده کنید. از طرف دیگر ، اگر از رکوردهای DNS استفاده می کنید ، نام دامنه ای که پیکربندی کرده اید در اینجا کار خواهد کرد.
روی هر یک از گره های ذخیره سازی خود (gluster0 یا gluster1) ، دستور زیر را اجرا کنید:
$ sudo gluster volume set volume1 auth.allow gluster2_ip_address

اگر فرمان با موفقیت انجام شود ، این خروجی را برمی گرداند:
Output
volume set: success

اگر در هر نقطه ای نیاز به حذف محدودیت دارید ، می توانید این دستور را تایپ کنید:
$ sudo gluster volume set volume1 auth.allow *

با این کار مجدداً اتصالات از هر دستگاه امکان پذیر می شود. این کار ایمن نیست ، اما می تواند برای مشکلات اشکال زدایی مفید باشد.
اگر چندین کلاینت دارید ، می توانید آدرس IP یا نام دامنه آنها را همزمان (بسته به اینکه از / etc / host یا رزولوشن نام هاست DNS استفاده کنید) مشخص کنید ، و با کاما از هم جدا کنید:
$ sudo gluster volume set volume1 auth.allow gluster_client1_ip,gluster_client2_ip

استخر ذخیره سازی شما اکنون پیکربندی شده ، ایمن و آماده استفاده است. در مرحله بعد چند دستور را یاد خواهید گرفت که به شما کمک می کنند اطلاعاتی درباره وضعیت استخر ذخیره خود بدست آورید.
مرحله 8 – دریافت اطلاعات در مورد استخر ذخیره سازی خود با دستورات GlusterFS
هنگامی که شروع به تغییر برخی از تنظیمات ذخیره سازی GlusterFS می کنید ، ممکن است در مورد گزینه هایی که در دسترس دارید ، اینکه کدام والیوم زنده است و کدام گره ها با هر والیوم مرتبط هستند ، دچار سردرگمی شوید.
دستورات مختلفی وجود دارد که در گره های شما برای بازیابی این داده ها و تعامل با استخر شما وجود دارد.
اگر می خواهید اطلاعات مربوط به هر یک از والیوم های خود را داشته باشید ، فرمان gluster volume info را اجرا کنید:
$ sudo gluster volume info

Output
Volume Name: volume1
Type: Replicate
Volume ID: a1e03075-a223-43ab-a0f6-612585940b0c
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster0.example.com:/gluster-storage
Brick2: gluster1.example.com:/gluster-storage
Options Reconfigured:
auth.allow: gluster2_ip_address
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.client-io-threads: off

به طور مشابه ، برای به دست آوردن اطلاعات در مورد هر همتایی که این گره به آن متصل است ، می توانید تایپ کنید:
Sammy@gluster1:~$ sudo gluster peer status

Number of Peers: 1

Hostname: gluster0.example.com
Uuid: cb00a2fc-2384-41ac-b2a8-e7a1793bb5a9
State: Peer in Cluster (Connected)

اگر می خواهید اطلاعات دقیقی در مورد عملکرد هر گره داشته باشید ، می توانید با تایپ کردن دستور زیر یک والیوم را تنظیم کنید:
$ sudo gluster volume profile volume_name start

پس از اتمام این دستور ، می توانید اطلاعاتی را که جمع آوری شده است با تایپ دستور زیر بدست آورید:
$ sudo gluster volume profile volume_name info

Output
Brick: gluster0.example.com:/gluster-storage
——————————————–
Cumulative Stats:
%-latency Avg-latency Min-Latency Max-Latency No. of calls Fop
——— ———– ———– ———– ———— —-
0.00 0.00 us 0.00 us 0.00 us 30 FORGET
0.00 0.00 us 0.00 us 0.00 us 36 RELEASE
0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR

Duration: 5445 seconds
Data Read: 0 bytes
Data Written: 0 bytes

Interval 0 Stats:
%-latency Avg-latency Min-Latency Max-Latency No. of calls Fop
——— ———– ———– ———– ———— —-
0.00 0.00 us 0.00 us 0.00 us 30 FORGET
0.00 0.00 us 0.00 us 0.00 us 36 RELEASE
0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR

Duration: 5445 seconds
Data Read: 0 bytes
Data Written: 0 bytes
. . .

همانطور که قبلاً نشان داده شده است ، برای لیستی از کلیه مؤلفه های مرتبط با GlusterFS که در هریک از گره های شما اجرا شده است ، دستور gluster volume status را اجرا کنید:
$ sudo gluster volume status

Output
Status of volume: volume1
Gluster process TCP Port RDMA Port Online Pid
——————————————————————————
Brick gluster0.example.com:/gluster-storage 49152 0 Y 19003
Brick gluster1.example.com:/gluster-storage 49152 0 Y 19040
Self-heal Daemon on localhost N/A N/A Y 19061
Self-heal Daemon on gluster0.example.com N/A N/A Y 19836

Task Status of Volume volume1
——————————————————————————
There are no active volume tasks

اگر می خواهید والیوم ذخیره سازی GlusterFS خود را مدیریت کنید ، ممکن است ایده خوبی باشد که به کنسول GlusterFS وارد شوید. این امر به شما امکان می دهد قبل از همه چیز با محیط GlusterFS خود ارتباط برقرار کنید:
$ sudo gluster

این امر به شما اعلانی را نشان می دهد که می توانید دستورات خود را تایپ کنید. help اعلان خوبی برای جهت گیری میباشد:
Gluster> help

Output
peer help – display help for peer commands
volume help – display help for volume commands
volume bitrot help – display help for volume bitrot commands
volume quota help – display help for volume quota commands
snapshot help – display help for snapshot commands
global help – list global commands

پس از اتمام ، برای خروج از کنسول Gluster ، exit را اجرا کنید:
Gluster> exit

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

برچسب‌ها:, ,