چگونه با keepalived وضعیت mariadb را بررسی کنیم و HA برای آن پیاده سازی کنیم :
ا Keepalived نرم افزاری است که راهی برای انجام خوشه بندی با دسترسی بالا (HA) برای سیستم های لینوکس ارائه می دهد. می توان از آن برای نظارت بر سلامت خوشه ای از سرورها استفاده کرد و در صورت خرابی، ترافیک را به طور خودکار به یک سرور سالم منتقل کرد. این باعث می شود آن را به یک انتخاب محبوب برای راه اندازی در دسترس بودن بالا برای پایگاه های داده MariaDB تبدیل کند.
در اینجا مراحل اساسی برای استفاده از Keepalived برای MariaDB آمده است:
نصب Keepalived در همه گره ها: بسته Keepalived را روی هر سروری که بخشی از خوشه خواهد بود نصب کنید. این معمولاً با استفاده از مدیر بسته توزیع لینوکس شما قابل انجام است.
پیکربندی Keepalived: فایل پیکربندی برای Keepalived معمولاً در /etc/keepalived/keepalived.conf قرار دارد. برای پیکربندی آدرس IP مجازی که برای خوشه MariaDB استفاده می شود، باید این فایل را در هر گره ویرایش کنید.
در اینجا نمونه ای از یک فایل پیکربندی پایه برای Keepalived آمده است:
global_defs {
router_id mariadb_cluster
}
vrrp_script chk_mariadb {
script "/etc/keepalived/check_mariadb.sh"
interval 2
}
vrrp_instance VI_1 {
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass keepalived_password
}
virtual_ipaddress {
192.168.1.100/24 dev eth0
}
track_script {
chk_mariadb
}
}
در این مثال، آدرس IP مجازی که برای خوشه MariaDB استفاده خواهد شد 192.168.1.100 است و نمونه Keepalived برای نظارت بر سلامت خوشه با استفاده از اسکریپت /etc/keepalived/check_mariadb.sh پیکربندی شده است. اسکریپت هر 2 ثانیه اجرا می شود تا اطمینان حاصل شود که سرویس MariaDB به درستی اجرا می شود.
یا این اسکریپت :
vrrp_script chk_mariadb {
script "/usr/local/bin/check_mariadb.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101
virtual_ipaddress {
192.168.1.100
}
track_script {
chk_mariadb
}
}
در این اسکریپت، قسمت vrrp_script اسکریپتی را تعریف می کند که وضعیت سرویس MariaDB را بررسی می کند که در /usr/local/bin/check_mariadb.sh قرار دارد. این اسکریپت باید یک کد خروجی 0 را در صورت اجرا شدن سرویس و یک کد خروجی غیر صفر را در صورت عدم اجرای آن برگرداند.
بخش vrrp_instance آدرس IP مجازی و سایر پارامترها را برای نمونه Keepalived تعریف می کند. در این مثال، نمونه VI_1 نام دارد و روی حالت MASTER تنظیم شده است، به این معنی که گره فعال است. شناسه روتر مجازی روی 51 و اولویت روی 101 تنظیم شده است که نشان می دهد این گره گره اصلی ترجیحی است.
بخش virtual_ipaddress آدرس IP مجازی را که کلاینت ها برای اتصال به خوشه MariaDB استفاده می کنند، تعریف می کند.
در نهایت، بخش track_script اسکریپت chk_mariadb را که قبلاً به عنوان اسکریپت برای نظارت بر وضعیت سرویس MariaDB تعریف شده است، مشخص می کند. اگر این اسکریپت یک کد خروج غیر صفر را برگرداند، نمونه Keepalived به حالت BACKUP منتقل می شود، که نشان می دهد این گره دیگر گره اصلی نیست.
نکته : نیاز هست mariadb روی یک ip بایند شود :
[mysqld]
bind-address=192.168.1.100
و اما یک نمونه از اسکریپت check_mariadb.sh :
#!/bin/bash
# Set variables
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USERNAME="root"
MYSQL_PASSWORD="password"
MYSQL_DB="mydatabase"
# Check MariaDB status
MYSQL_STATUS=$(mysql -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u ${MYSQL_USERNAME} -p${MYSQL_PASSWORD} -e "SHOW STATUS LIKE 'wsrep_cluster_size';" ${MYSQL_DB} 2>/dev/null | awk '/wsrep_cluster_size/ {print $2}')
# If MariaDB is running and in sync, exit with status 0
if [[ ${MYSQL_STATUS} -ge 2 ]]; then
exit 0
fi
# If MariaDB is not running or out of sync, exit with status 1
exit 1
این اسکریپت وضعیت پایگاه داده MariaDB را با پرس و جو از متغیر وضعیت wsrep_cluster_size آن بررسی می کند. اگر متغیر 2 یا بیشتر باشد، فرض میکند که پایگاه داده در حال اجرا و هماهنگ است و با وضعیت 0 (موفقیت) خارج میشود. اگر متغیر کمتر از 2 باشد، فرض می کند پایگاه داده در حال اجرا نیست یا هماهنگ نیست و با وضعیت 1 (شکست) خارج می شود.
#keepalive #keepalived #linux #cluster #mariadb #mysql #database
https://t.me/unixmens
ا Keepalived نرم افزاری است که راهی برای انجام خوشه بندی با دسترسی بالا (HA) برای سیستم های لینوکس ارائه می دهد. می توان از آن برای نظارت بر سلامت خوشه ای از سرورها استفاده کرد و در صورت خرابی، ترافیک را به طور خودکار به یک سرور سالم منتقل کرد. این باعث می شود آن را به یک انتخاب محبوب برای راه اندازی در دسترس بودن بالا برای پایگاه های داده MariaDB تبدیل کند.
در اینجا مراحل اساسی برای استفاده از Keepalived برای MariaDB آمده است:
نصب Keepalived در همه گره ها: بسته Keepalived را روی هر سروری که بخشی از خوشه خواهد بود نصب کنید. این معمولاً با استفاده از مدیر بسته توزیع لینوکس شما قابل انجام است.
پیکربندی Keepalived: فایل پیکربندی برای Keepalived معمولاً در /etc/keepalived/keepalived.conf قرار دارد. برای پیکربندی آدرس IP مجازی که برای خوشه MariaDB استفاده می شود، باید این فایل را در هر گره ویرایش کنید.
در اینجا نمونه ای از یک فایل پیکربندی پایه برای Keepalived آمده است:
global_defs {
router_id mariadb_cluster
}
vrrp_script chk_mariadb {
script "/etc/keepalived/check_mariadb.sh"
interval 2
}
vrrp_instance VI_1 {
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass keepalived_password
}
virtual_ipaddress {
192.168.1.100/24 dev eth0
}
track_script {
chk_mariadb
}
}
در این مثال، آدرس IP مجازی که برای خوشه MariaDB استفاده خواهد شد 192.168.1.100 است و نمونه Keepalived برای نظارت بر سلامت خوشه با استفاده از اسکریپت /etc/keepalived/check_mariadb.sh پیکربندی شده است. اسکریپت هر 2 ثانیه اجرا می شود تا اطمینان حاصل شود که سرویس MariaDB به درستی اجرا می شود.
یا این اسکریپت :
vrrp_script chk_mariadb {
script "/usr/local/bin/check_mariadb.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101
virtual_ipaddress {
192.168.1.100
}
track_script {
chk_mariadb
}
}
در این اسکریپت، قسمت vrrp_script اسکریپتی را تعریف می کند که وضعیت سرویس MariaDB را بررسی می کند که در /usr/local/bin/check_mariadb.sh قرار دارد. این اسکریپت باید یک کد خروجی 0 را در صورت اجرا شدن سرویس و یک کد خروجی غیر صفر را در صورت عدم اجرای آن برگرداند.
بخش vrrp_instance آدرس IP مجازی و سایر پارامترها را برای نمونه Keepalived تعریف می کند. در این مثال، نمونه VI_1 نام دارد و روی حالت MASTER تنظیم شده است، به این معنی که گره فعال است. شناسه روتر مجازی روی 51 و اولویت روی 101 تنظیم شده است که نشان می دهد این گره گره اصلی ترجیحی است.
بخش virtual_ipaddress آدرس IP مجازی را که کلاینت ها برای اتصال به خوشه MariaDB استفاده می کنند، تعریف می کند.
در نهایت، بخش track_script اسکریپت chk_mariadb را که قبلاً به عنوان اسکریپت برای نظارت بر وضعیت سرویس MariaDB تعریف شده است، مشخص می کند. اگر این اسکریپت یک کد خروج غیر صفر را برگرداند، نمونه Keepalived به حالت BACKUP منتقل می شود، که نشان می دهد این گره دیگر گره اصلی نیست.
نکته : نیاز هست mariadb روی یک ip بایند شود :
[mysqld]
bind-address=192.168.1.100
و اما یک نمونه از اسکریپت check_mariadb.sh :
#!/bin/bash
# Set variables
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USERNAME="root"
MYSQL_PASSWORD="password"
MYSQL_DB="mydatabase"
# Check MariaDB status
MYSQL_STATUS=$(mysql -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u ${MYSQL_USERNAME} -p${MYSQL_PASSWORD} -e "SHOW STATUS LIKE 'wsrep_cluster_size';" ${MYSQL_DB} 2>/dev/null | awk '/wsrep_cluster_size/ {print $2}')
# If MariaDB is running and in sync, exit with status 0
if [[ ${MYSQL_STATUS} -ge 2 ]]; then
exit 0
fi
# If MariaDB is not running or out of sync, exit with status 1
exit 1
این اسکریپت وضعیت پایگاه داده MariaDB را با پرس و جو از متغیر وضعیت wsrep_cluster_size آن بررسی می کند. اگر متغیر 2 یا بیشتر باشد، فرض میکند که پایگاه داده در حال اجرا و هماهنگ است و با وضعیت 0 (موفقیت) خارج میشود. اگر متغیر کمتر از 2 باشد، فرض می کند پایگاه داده در حال اجرا نیست یا هماهنگ نیست و با وضعیت 1 (شکست) خارج می شود.
#keepalive #keepalived #linux #cluster #mariadb #mysql #database
https://t.me/unixmens
Telegram
Academy and Foundation unixmens | Your skills, Your future
@unixmens_support
@yashar_esm
unixmens@gmail.com
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
@yashar_esm
unixmens@gmail.com
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی