۱. مقدمه: ضرورت در دسترسپذیری بالا (High Availability)
در سیستمهای تلفنی مانند ایزابل (Issabel) و آستریسک (Asterisk)، در دسترس بودن پیوسته و بدون وقفه بسیار مهم است. در دسترسپذیری بالا (High Availability یا به اختصار HA) تضمین میکند که اگر یک سرور دچار مشکل شد، سرور دیگر بدون ایجاد وقفه وارد عمل شده و ارتباطات کاربران را حفظ کند. این مکانیزم برای سازمانها و کسبوکارهایی که نیاز به پایداری در ارتباطات دارند حیاتی است.
می توان مبحث HA را بر روی پلت فرم های ماشین مجازی انجام داد اما راه اندازی HA بر روری دو سرور لینوکسی بخصوص سیستم های تلفنی Real Time همچون استریسک یا ایزابل خیلی حیاتی و ضروری است.
۲. هدف مقاله
در این مقاله، قصد داریم با استفاده از نرمافزار Keepalived، یک سیستم HA برای Issabel5 بر روی Asterisk 18 در لینوکس Rocky 8 پیادهسازی کنیم. مراحل نصب و پیکربندی Keepalived، و تنظیمات مربوط به VRRP (Virtual Router Redundancy Protocol) برای تخصیص یک آدرس آیپی مجازی (Virtual IP) بین دو سرور ارائه خواهد شد.
۳. برنامهها و مکانیزمها
برای دستیابی به HA، از Keepalived و پروتکل VRRP استفاده میکنیم. Keepalived یک ابزار لینوکسی است که به کمک VRRP امکان ایجاد یک آدرس آیپی مجازی و انتقال خودکار ترافیک به سرورهای دیگر در صورت بروز خرابی را فراهم میکند.
۴. مراحل نصب و پیکربندی
مرحله اول: نصب ابزارها
برای شروع، باید ابزارهای مورد نیاز را نصب کنیم:
yum install gcc kernel-headers kernel-devel
yum install keepalived
- gcc، kernel-headers و kernel-devel برای ساخت ماژولهای هسته و اجرای Keepalived مورد نیاز هستند.
- keepalived برای مدیریت HA نصب میشود.
مرحله دوم: پیکربندی Keepalived
بعد از نصب Keepalived، باید فایل پیکربندی /etc/keepalived/keepalived.conf
را برای هر سرور ویرایش کنیم.
پیکربندی برای سرور اول (Server1):
فایل پیکربندی به شکل زیر ویرایش میشود:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server localhost
smtp_connect_timeout 30
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}
توضیحات:
- global_defs: این بخش برای تنظیمات ایمیل هشدار در هنگام تغییرات HA است. ایمیلها به
[email protected]
و[email protected]
ارسال میشوند و از[email protected]
به عنوان فرستنده استفاده میشود. - vrrp_instance: تنظیمات VRRP برای نمونه VI_1 است.
- state: وضعیت این سرور در حالت MASTER است.
- interface: اینترفیسی که Keepalived بر روی آن اجرا میشود، در اینجا
eth0
. - virtual_router_id: یک شناسه یکتا برای VRRP. باید برای هر نمونه منحصربهفرد باشد.
- priority: مقدار ۱۰۱ برای اولویت بالاتر این سرور تعیین شده است.
- virtual_ipaddress: آدرس آیپی مجازی که در حالت فعال بودن HA به این سرور اختصاص مییابد.
پیکربندی برای سرور دوم (Server2):
در سرور دوم، فایل پیکربندی مشابه سرور اول است، اما بهجای MASTER
، حالت BACKUP
تنظیم میشود و مقدار اولویت به ۱۰۰ کاهش مییابد:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server localhost
smtp_connect_timeout 30
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}
مرحله سوم: شروع Keepalived و تنظیمات راهاندازی خودکار
برای شروع Keepalived و اطمینان از اجرای خودکار آن در زمان بوت، از دستورات زیر استفاده کنید:
service keepalived start
chkconfig keepalived on
توصیهها و تنظیمات اضافه
برای اطمینان از عملکرد صحیح HA، باید تنظیمات زیر را در نظر بگیرید:
- تنظیم MASTER و BACKUP: یک سرور به عنوان
MASTER
و دیگریBACKUP
باید تنظیم شود. در این مثال،Server1
با اولویت ۱۰۱ به عنوان MASTER وServer2
با اولویت ۱۰۰ به عنوان BACKUP تنظیم شده است. - اطمینان از صحت اطلاعات ایمیلها: اطمینان حاصل کنید که آدرسهای ایمیل در بخش
notification_email
درست و فعال هستند تا پیامهای هشدار در صورت تغییر وضعیت بهدرستی ارسال شوند.
۵. نحوه تست سیستم HA
برای اطمینان از کارکرد صحیح، میتوانید با قطع شبکه یا خاموش کردن یکی از سرورها، وضعیت انتقال ترافیک را بررسی کنید. در حالت عادی، سرور دوم (Backup) بهطور خودکار وظایف سرور اول (Master) را در صورت بروز مشکل به عهده میگیرد. بررسی لاگهای سیستم در مسیر /var/log/messages
نیز کمک میکند تا وضعیت جابهجایی و عملیات Keepalived را مشاهده کنید.
۶. جمعبندی
در این راهنما، با استفاده از Keepalived و تنظیمات VRRP یک سیستم در دسترسپذیری بالا برای Issabel5 و Asterisk پیادهسازی کردیم. با تنظیم یک آدرس آیپی مجازی، قابلیت دسترسپذیری این سیستم بهبود یافته و ترافیک به صورت خودکار بین سرورها منتقل میشود.
کد کامل پیکربندی
کد برای Server1:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server localhost
smtp_connect_timeout 30
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}
کد برای Server2:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server localhost
smtp_connect_timeout 30
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
۱۹۲.۱۶۸.۴.۲۹
}
}
امیدوارم این راهنما به شما کمک کند تا یک سیستم HA قوی برای Issabel و Asterisk پیادهسازی کنید.
ویپ ایران | VOIPIRAN بزرگترین مرجع ویپ VOIP و سیستم های تلفنی و ارتباطی فارسی زبان.
ممنون بابت اشتراک گذاری این مقاله. دیتابیس و فایلهای استریسک رو چطور میشه سینک کرد؟
با سلام و احترام، مقاله بالا در خصوص راه اندازی HA است و طبعتا فایل ها هم باید یکسان سازی شود که می توانید از DRBD یا rsync استفاده کنید.
توصیه استفاده از DRBD است که مقالات زیادی هم روی اینترنت است، به زودی هم یک مقاله در خصوص سینک کردن اطلاعات قرار خواهیم داد.
با DRBD هم می توان فایل های اساسی Databse رو منتقل کرد.