.TH KEEPALIVED "8" "2025-03-29" .na .nh .SH "نام (NAME)" keepalived \- دیمون مسیریابی بار و پایش در دسترس بودن سیستم (VRRP) .SH "خلاصه دستور (SYNOPSIS)" \fBkeepalived\fP [\fB\-f\fP|\fB\-\-use\-file\fP=FILE] [\fB\-P\fP|\fB\-\-vrrp\fP] [\fB\-C\fP|\fB\-\-check\fP] [\fB\-B\fP|\fB\-\-no_bfd\fP] [\fB\-\-all\fP] [\fB\-l\fP|\fB\-\-log\-console\fP] [\fB\-D\fP|\fB\-\-log\-detail\fP] [\fB\-S\fP|\fB\-\-log\-facility\fP={0\-7|local{0\-7}|user|daemon}] [\fB\-g\fP|\fB\-\-log\-file\fP=FILE] [\fB\-\-flush\-log\-file\fP] [\fB\-G\fP|\fB\-\-no\-syslog\fP] [\fB\-X\fP|\fB\-\-release\-vips\fP] [\fB\-V\fP|\fB\-\-dont\-release\-vrrp\fP] [\fB\-I\fP|\fB\-\-dont\-release\-ipvs\fP] [\fB\-R\fP|\fB\-\-dont\-respawn\fP] [\fB\-n\fP|\fB\-\-dont\-fork\fP] [\fB\-d\fP|\fB\-\-dump\-conf\fP] [\fB\-p\fP|\fB\-\-pid\fP=FILE] [\fB\-r\fP|\fB\-\-vrrp_pid\fP=FILE] [\fB\-T\fP|\fB\-\-genhash\fP] [\fB\-c\fP|\fB\-\-checkers_pid\fP=FILE] [\fB\-a\fP|\fB\-\-address-monitoring\fP] [\fB\-b\fP|\fB\-\-bfd_pid\fP=FILE] [\fB\-s\fP|\fB\-\-namespace\fP=NAME] [\fB\-e\fP|\fB\-\-all-config\fP] [\fB\-i\fP|\fB\-\-config-id\fP id] [\fB\-x\fP|\fB\-\-snmp\fP] [\fB\-A\fP|\fB\-\-snmp-agent-socket\fP=FILE] [\fB\-u\fP|\fB\-\-umask\fP=NUMBER] [\fB\-m\fP|\fB\-\-core\-dump\fP] [\fB\-M\fP|\fB\-\-core\-dump\-pattern\fP[=PATTERN]] [\fB\-\-signum\fP=SIGFUNC] [\fB\-t\fP|\fB\-\-config\-test\fP[=FILE]] [\fB\-\-perf\fP[={all|run|end}]] [\fB\-\-debug\fP[=debug-options]] [\fB\-\-no-mem-check\fP] [\fB\-\-ignore-sigint\fP] [\fB\-v\fP|\fB\-\-version\fP] [\fB\-h\fP|\fB\-\-help\fP] .SH "توضیحات (DESCRIPTION)" برنامه .B keepalived امکانات ساده و قدرتمندی را برای متعادل‌سازی بار و دسترسی‌پذیری بالا فراهم می‌کند. چارچوب متعادل‌سازی بار بر پایه ماژول هسته شناخته‌شده و پرکاربرد Linux Virtual Server (IPVS) استوار است که متعادل‌سازی بار لایه ۴ را ارائه می‌دهد. همچنین .B keepalived مجموعه‌ای از بررسی‌کننده‌ها (checkers) را پیاده‌سازی می‌کند تا یک استخر سرور دارای متعادل‌سازی بار را به صورت پویا و تطبیقی بر اساس وضعیت سلامت آن‌ها نگهداری و مدیریت کند. علاوه بر این، .B keepalived پروتکل‌های VRRPv2 و VRRPv3 را برای دستیابی به دسترسی‌پذیری بالا به همراه تغییر خودکار سرور در صورت خرابی هدایت‌کننده (director failover) پیاده‌سازی می‌کند. .SH "گزینه‌ها (OPTIONS)" .TP \fB -f, --use-file\fP=FILE استفاده از فایل پیکربندی مشخص‌شده. فایل پیکربندی پیش‌فرض "/etc/keepalived/keepalived.conf" است. .TP \fB -P, --vrrp\fP فقط اجرای زیرسیستم VRRP. این گزینه برای پیکربندی‌هایی مفید است که از متعادل‌کننده بار IPVS استفاده نمی‌کنند. .TP \fB -C, --check\fP فقط اجرای زیرسیستم بررسی سلامت (healthcheck). این گزینه برای پیکربندی‌هایی مفید است که از متعادل‌کننده بار IPVS با یک هدایت‌کننده (director) منفرد و بدون سازوکار بازگشت از خرابی (failover) استفاده می‌کنند. .TP \fB -B, --no_bfd\fP عدم اجرای زیرسیستم BFD. .TP \fB --all\fP اجرای تمامی زیرسیستم‌ها، حتی اگر فاقد هرگونه پیکربندی باشند. .TP \fB -l, --log-console\fP ثبت پیام‌های لاگ در کنسول محلی. رفتار پیش‌فرض، ثبت پیام‌ها در syslog است. .TP \fB -D, --log-detail\fP ثبت پیام‌های لاگ با جزئیات کامل. .TP \fB \-S, \-\-log\-facility\fP={0\-7|local{0\-7}|user|daemon} تنظیم بخش لاگ syslog روی LOG_LOCAL[0\-7]، LOG_USER یا LOG_DAEMON. بخش پیش‌فرض syslog مقدار LOG_DAEMON است. .TP \fB -g, --log-file\fP=FILE نوشتن پیام‌های لاگ در FILE. عبارت‌های _vrrp، _healthcheckers و _bfd برای خروجی لاگ مربوط به هر فرآیند، قبل از آخرین '.' در نام FILE اضافه خواهند شد. .TP \fB --flush-log-file\fP در صورت استفاده از گزینه \-g، جریان فایل لاگ پس از هر نوشتن تخلیه (flush) می‌شود. .TP \fB -G, --no-syslog\fP عدم نوشتن پیام‌های لاگ در syslog. این گزینه زمانی مفید است که نرخ تولید پیام‌های لاگ آن‌قدر بالا باشد که syslog برای آن‌ها محدودیت نرخ اعمال کند و در عوض از گزینه \-g استفاده شده باشد. .TP \fB -X, --release-vips\fP رهاسازی و حذف آدرس‌های آی‌پی مجازی (VIP) هنگام گذار ناشی از دریافت سیگنال. .TP \fB -V, --dont-release-vrrp\fP عدم حذف آدرس‌های VIP و مسیرهای VROUTE مربوط به VRRP هنگام توقف دیمون. رفتار پیش‌فرض این است که هنگام خروج keepalived تمامی VIPها و VROUTEها حذف شوند. .TP \fB -I, --dont-release-ipvs\fP عدم حذف توپولوژی IPVS هنگام توقف دیمون. رفتار پیش‌فرض این است که هنگام خروج keepalived تمامی مدخل‌ها از جدول سرور مجازی IPVS حذف شوند. .TP \fB -R, --dont-respawn\fP عدم راه‌اندازی مجدد (respawn) فرآیندهای فرزند. رفتار پیش‌فرض این است که در صورت خروج هر یک از فرآیندهای VRRP یا بررسی‌کننده (checker)، آن فرآیند مجدداً راه‌اندازی شود. .TP \fB -n, --dont-fork\fP عدم اجرای فرآیند دیمون در پس‌زمینه (عدم fork). این گزینه موجب می‌شود keepalived در پیش‌زمینه (foreground) اجرا شود. .TP \fB -d, --dump-conf\fP تخلیه و نمایش داده‌های پیکربندی (dump). .TP \fB -p, --pid\fP=FILE استفاده از فایل pidfile مشخص‌شده برای فرآیند والد keepalived. فایل pid پیش‌فرض برای keepalived مسیر "/run/keepalived.pid" است، مگر اینکه از فضای‌نام شبکه استفاده شده باشد. برای جزئیات بیشتر بخش .B "فضاهای نام (NAMESPACES)" در ادامه را ببینید. .TP \fB -r, --vrrp_pid\fP=FILE استفاده از فایل pidfile مشخص‌شده برای فرآیند فرزند VRRP. فایل pid پیش‌فرض برای فرآیند فرزند VRRP مسیر "/run/keepalived_vrrp.pid" است، مگر اینکه از فضای‌نام شبکه استفاده شده باشد. .TP \fB -T, --genhash\fP ورود به حالت ابزار genhash. نسخه‌های پیشین keepalived همراه با یک ابزار اختصاصی به نام genhash عرضه می‌شدند. ابزار genhash اکنون بخشی از کد اصلی برنامه است. ما سازگاری با گزینه‌های خط فرمان ابزار قبلی genhash را حفظ کرده‌ایم. برای اطلاعات بیشتر لطفاً به صفحه راهنمای .BR genhash (1) مراجعه کنید. .TP \fB -c, --checkers_pid\fP=FILE استفاده از فایل pidfile مشخص‌شده برای فرآیند فرزند بررسی‌کننده‌ها (checkers). فایل pid پیش‌فرض برای فرآیند فرزند بررسی‌کننده مسیر "/run/keepalived_checkers.pid" است، مگر اینکه از فضای‌نام شبکه استفاده شده باشد. .TP \fB -a, --address-monitoring\fP ثبت گزارش تمامی افزودن‌ها و حذف‌های آدرس که از سوی netlink گزارش می‌شوند. .TP \fB -b, --bfd_pid\fP=FILE استفاده از فایل pidfile مشخص‌شده برای فرآیند فرزند BFD. فایل pid پیش‌فرض برای فرآیند فرزند BFD مسیر "/run/keepalived_bfd.pid" است، مگر اینکه از فضای‌نام شبکه استفاده شده باشد. .TP \fB -s, --namespace\fP=NAME اجرای keepalived در فضای‌نام شبکه با نام NAME. برای جزئیات بیشتر بخش .B "فضاهای نام (NAMESPACES)" در ادامه را ببینید. .TP \fB -e, --all-config\fP عدم بارگذاری در صورتی که هر یک از فایل‌های پیکربندی ناموجود باشد یا امکان خواندن آن وجود نداشته باشد. .TP \fB -i, --config-id\fP ID استفاده از شناسه پیکربندی ID برای پیکربندی مشروط (پیش‌فرض آن نام میزبان بدون نام دامنه است). .TP \fB -x, --snmp\fP فعال‌سازی زیرسیستم SNMP. .TP \fB -A, --snmp-agent-socket\fP=FILE استفاده از سوکت مشخص‌شده برای اتصال به کارگزار اصلی (master agent) پروتکل SNMP. .TP \fB -u, --umask\fP=NUMBER تعیین مقدار umask به شیوه عددی معمول؛ به صفحه راهنمای .BR umask (2) مراجعه کنید. .TP \fB -m, --core-dump\fP نادیده‌گرفتن محدودیت‌های سخت و نرم RLIMIT_CORE برای فعال‌سازی امکان ایجاد فایل coredump توسط keepalived در صورت بروز خطای تقسیم‌بندی حافظه (segfault) یا سایر خرابی‌ها. این گزینه زمانی بیشترین کاربرد را دارد که keepalived با دستور 'make debug' کامپایل شده باشد. فایل‌های core dump در شاخه / ایجاد خواهند شد، مگر اینکه keepalived با گزینه .B \-\-dont\-fork اجرا شده باشد؛ در این حالت در دایرکتوری‌ای که keepalived از آنجا اجرا شده ایجاد می‌شوند، یا در صورتی که خطا هنگام خواندن یک فایل پیکربندی رخ دهد، در دایرکتوری همان فایل پیکربندی ایجاد خواهند شد. .TP \fB -M, --core-dump-pattern\fP[=PATTERN] گزینه .B \-\-core\-dump را تنظیم می‌کند و همچنین مقدار /proc/sys/kernel/core_pattern را به الگوی مشخص‌شده تغییر می‌دهد، یا در صورت عدم تعیین به 'core' تنظیم می‌کند. در صورتی که فرآیند والد دچار خاتمه غیرعادی نشود، مقدار /proc/sys/kernel/core_pattern هنگام خروج به مقدار اولیه آن بازگردانده خواهد شد. \fBنکته:\fP این کار بر روی هر فرآیند دیگری که در طول اجرای keepalived خروجی core dump تولید کند نیز اثر خواهد گذاشت. .TP \fB --signum\fP=PATTERN شماره سیگنال مورد استفاده برای STOP، RELOAD، DATA، STATS، STATS_CLEAR، JSON و TDATA را برمی‌گرداند. برای نمونه، جهت متوقف کردن اجرای keepalived دستور زیر را اجرا کنید: .IP .nf kill -s $(keepalived --signum=STOP) $(cat /run/keepalived.pid) .fi .TP \fB -t, --config-test\fP[=FILE] برنامه keepalived فایل پیکربندی را بررسی کرده و در صورت وجود خطا در پیکربندی با وضعیت غیرصفر خارج می‌شود، در غیر این صورت با وضعیت 0 خاتمه می‌یابد (برای جزئیات به بخش .B "وضعیت خروج (Exit status)" در زیر مراجعه کنید). به جای ثبت در syslog، پیام‌های تشخیصی در stderr نوشته می‌شوند مگر آنکه یک فایل مشخص شده باشد که در آن صورت خروجی در آن فایل ثبت می‌گردد. .TP \fB --perf\fP[={all|run|end}] ثبت داده‌های کارایی (perf) برای فرآیند vrrp. این داده‌ها در مسیر /perf_vrrp.data نوشته خواهند شد. داده‌های ثبت‌شده برای استفاده با ابزار perf هستند. .TP \fB --no-mem-check\fP غیرفعال‌سازی بررسی‌های حافظه ()malloc و غیره، در صورتی که در keepalived کامپایل شده باشند. .TP \fB --ignore-sigint\fP غیرفعال‌سازی مدیریت سیگنال SIGINT (که به طور پیش‌فرض موجب توقف keepalived می‌شود). این گزینه برای اجرای keepalived درون GDB مورد نیاز است. .TP \fB --debug\fP[=debug-options]] فعال‌سازی گزینه‌های اشکال‌زدایی در صورتی که در keepalived کامپایل شده باشند. مقدار \fIdebug-options\fP از دنباله‌ای از رشته‌ها به صورت Ulll تشکیل می‌شود. .br حرف بزرگ مشخص‌کننده گزینه اشکال‌زدایی است و حروف کوچک تعیین می‌کنند که گزینه برای کدام فرآیندها باید فعال گردد. .br اگر به دنبال یک گزینه اشکال‌زدایی هیچ حرف کوچکی نیاید، آن گزینه اشکال‌زدایی برای تمامی فرآیندها فعال می‌شود. .PP .RS کاراکترهای شناسایی فرآیندها عبارتند از: .TS tab(@); c l c l. کاراکتر@فرآیند _ p@فرآیند والد (Parent process) b@فرآیند BFD c@فرآیند بررسی‌کننده (Checker process) v@فرآیند VRRP .TE .PP کاراکترهای مورد استفاده برای شناسایی گزینه‌های اشکال‌زدایی عبارتند از: .TS tab(@); c l. کاراکتر@گزینه اشکال‌زدایی _ D@تخلیه ریسمان‌های epoll (تخلیه Epoll thread) E@اشکال‌زدایی Epoll F@اشکال‌زدایی توصیف‌گر فایل (fd) در VRRP N@زمان‌سنج‌های Netlink P@برچسب زمانی شبکه (Network timestamp) X@زمان‌سنج‌های Regex M@اشکال‌زدایی هشدارهای ایمیل T@اشکال‌زدایی زمان‌سنج (Timer) S@اشکال‌زدایی TSM R@اشکال‌زدایی Regex B@اشکال‌زدایی اتصال Smtp U@تشخیص و بررسی Checksum O@اشکال‌زدایی رهگیری فرآیند (Track process) A@اشکال‌زدایی رهگیری فرآیند با جزئیات بیشتر C@اشکال‌زدایی تجزیه‌کننده پیکربندی (Parser config) H@اشکال‌زدایی بررسی‌کننده (Checker) Z@اشکال‌زدایی خطای تخصیص/آزادسازی حافظه (Memory alloc/free) G@اشکال‌زدایی ()VRRP recvmsg J@ثبت داده‌های دریافتی (rx) در ()VRRP recvmsg V@اشکال‌زدایی اسکریپت K@تخلیه کلمات کلیدی (Dump keywords) .TE .PP \fBمثال:\fP \-\-debug=DvEcvNR .RE .TP \fB -v, --version\fP نمایش نسخه برنامه و خروج. .TP \fB -h, --help\fP نمایش این پیام راهنما و خروج. .SS "وضعیت خروج (Exit status):" .TP 0 در صورت موفقیت و اجرای بدون مشکل (OK). .TP 1 در صورت عدم امکان تخصیص حافظه با malloc. .TP 2 در صورت عدم امکان مقداردهی اولیه زیرسیستم‌ها. .TP 3 در صورت اجرا با .B \-\-config\-test و عدم امکان اجرای پیکربندی. .TP 4 در صورت اجرا با .B \-\-config\-test و وجود خطاهای پیکربندی که keepalived پس از اصلاح آن‌ها قادر به اجرا خواهد بود. .TP 5 در صورت اجرا با .B \-\-config\-test و عدم فعال‌سازی امنیت اسکریپت در حالی که اسکریپت‌ها پیکربندی شده‌اند. .SH "فضاهای نام (NAMESPACES)" برنامه .B keepalived می‌تواند در یک فضای‌نام شبکه (network namespace) اجرا شود (برای جزئیات پیکربندی به .BR keepalived.conf (5) مراجعه کنید). هنگامی که در یک فضای‌نام شبکه اجرا می‌شود، یک فضای‌نام سوارکردن محلی (local mount namespace) نیز ایجاد شده و مسیر .B /run/keepalived/keepalived_NamespaceName بر روی .B /run/keepalived سوار (mount) می‌شود. به طور پیش‌فرض، فایل‌های pid با همان نام‌های پیش‌فرض معمول از دید یک فرآیند در فضای‌نام سوارکردن در .B /run/keepalived ایجاد می‌شوند، و برای فرآیندی که در فضای‌نام سوارکردن پیش‌فرض اجرا می‌شود در مسیر .B /run/keepalived/keepalived_NamespaceName قابل مشاهده خواهند بود. .SH "سیگنال‌ها (SIGNALS)" برنامه .B keepalived به مجموعه‌ای از سیگنال‌ها واکنش نشان می‌دهد. می‌توانید با دستور زیر یک سیگنال به فرآیند والد .B keepalived ارسال کنید: .IP .nf kill -SIGNAL $(cat /run/keepalived.pid) .fi .PP یا بهتر از آن: .IP .nf kill -s $(keepalived --signum=SIGFUNC) $(cat /run/keepalived.pid) .fi .PP توجه داشته باشید که اگر از گزینه اول استفاده شود، باید .B \-SIGNAL با سیگنال واقعی که قصد ارسال آن را دارید جایگزین شود؛ برای نمونه با .BR HUP . در این صورت دستور به شکل زیر درمی‌آید: .IP .nf kill -HUP $(cat /run/keepalived.pid) .fi .PP سیگنال‌های غیر از STOP، RELOAD، DATA و STATS ممکن است بسته به هسته سیستم‌عامل و همچنین قابلیت‌های موجود در آن نسخه از keepalived بر پایه گزینه‌های ساخت (build options) تغییر کنند. .TP .B HUP\fP یا \fBSIGFUNC=RELOAD این سیگنال باعث می‌شود .B keepalived تمامی رابط‌ها را ببندد، پیکربندی خود را مجدداً بارگذاری کرده و با پیکربندی جدید شروع به کار کند. .IP .B نکته: اگر یک virtual_ipaddress، virtual_route یا virtual_rule از یک نمونه VRRP به نمونه دیگری منتقل می‌شود، دو بار بارگذاری مجدد لازم خواهد بود؛ اولی برای حذف virtual ipaddress/route/rule و بارگذاری مجدد دوم برای افزودن آن به نمونه VRRP جدیدی که قرار است روی آن پیکربندی شود. در صورت عدم انجام این کار، اگر هر دو نمونه قبلی و جدید در وضعیت master باشند ممکن است ipaddress/route/rule بر روی نمونه جدید پیکربندی نشود. با این حال، معمولاً با یک بار بارگذاری مجدد کار خواهد کرد اگر هر یک از نمونه‌های VRRP در وضعیت MASTER نباشند یا نمونه VRRP که ipaddress/route/rule به آن .B افزوده می‌شود در فایل پیکربندی اصلی پس از نمونه‌ای باشد که از آن حذف می‌گردد. .IP .B نکته ۲: اگر یک پیکربندی با SNMP فعال در حال اجرا باشد و سپس بارگذاری مجدد با پیکربندی‌ای انجام گیرد که SNMP در آن فعال نیست، فعال‌سازی مجدد بعدی SNMP امکان‌پذیر نخواهد بود. دلیل این موضوع در حال حاضر ناشناخته است. .TP .B TERM\fP، \fBINT\fP یا \fBSIGFUNC=STOP برنامه .B keepalived خاموش و متوقف می‌شود. .TP .B USR1\fP یا \fBSIGFUNC=DATA نوشتن داده‌های پیکربندی در .B /tmp/keepalived.data یا فایلی که با state_dump_file پیکربندی شده است. .TP .B USR2\fP یا \fBSIGFUNC=STATS نوشتن اطلاعات آماری در .B /tmp/keepalived.stats یا فایلی که با stats_dump_file پیکربندی شده است. .TP .B SIGFUNC=STATS_CLEAR نوشتن اطلاعات آماری در .B /tmp/keepalived.stats یا فایلی که با stats_dump_file پیکربندی شده است و پاک کردن شمارنده‌های آماری. .TP .B SIGFUNC=JSON نوشتن داده‌های پیکربندی در قالب JSON در .B /tmp/keepalived.json یا فایلی که با json_dump_file پیکربندی شده است. .TP .B SIGFUNC=TDATA این مورد باعث می‌شود .B keepalived وضعیت جاری ریسمان‌های داخلی خود را در لاگ ثبت کند. .SH "استفاده از KEEPALIVED با FIREWALLD (USING KEEPALIVED WITH FIREWALLD)" اگر یک فایروال اجرا می‌کنید (صفحه راهنمای .BR firewalld (8) را ببینید) باید ترافیک پروتکل VRRP را از طریق فایروال مجاز کنید. برای نمونه، اگر این نمونه از .BR keepalived (8) دارای یک گره همتا (peer node) با آدرس IPv4 برابر با 192.168.0.1 باشد: .IP .nf # firewall-cmd \\ --add-rich-rule="rule family='ipv4' \\ source address='192.168.0.1' \\ protocol value='vrrp' accept" --permanent # firewall-cmd --reload .fi .SH "همچنین ببینید (SEE ALSO)" \fBkeepalived.conf\fP(5), \fBipvsadm\fP(8) .SH "نویسنده (AUTHOR)" این صفحه راهنما توسط Ryan O'Hara نوشته شده است.