راه اندازی سرویس Redundant

از ویکی پارس پویش
(تفاوت بین نسخه‌ها)
پرش به: ناوبری, جستجو
 
سطر ۱۸۰: سطر ۱۸۰:
  
 
Trubleshooting DRBD
 
Trubleshooting DRBD
 +
 +
برای بررسی مشکلات DRBD در ابتدای دو فایل زیر را بررسی میکنیم :
 +
<div dir=ltr lang=en>
 +
/var/log/IBSng/ibs_redundancy.log
 +
/var/log/IBSng/ibs_check_drbd.log
 +
<div/n>

نسخهٔ کنونی تا ‏۱۴ اوت ۲۰۱۷، ساعت ۱۵:۰۹

راه اندازی سرویس Redundant

Install and Configure DRBD

حداقل به دو سرور برای راه اندازی نياز است: B Server and A Server

for Example:

Server A (IBSng­A) (eth0 ­ 192.168.98.1) <­­­> (eth0 ­ 192.168.98.2) Server B (IBSng­B)
Server A (eth1 ­ 192.168.10.4) <­­­> RAS <­­­> Server B (eth1 ­ 192.168.10.2)

اسکريپ هايی که در سرويس IBSng برای اين منظور آماده شده اند، نصب به اسم سرور ها کار ميکنند لذا تنظيمات زير ضروريست:

Name For Server A → IBSng­A
Name For Server B → IBSng­B
add IBSng­A in Sever A and add IBSng­B in Server B ­­>
# nano /etc/hostname
# /etc/init.d/hostnome.sh start

هر سرور حداقل دو عدد کارت شبکه نياز دارد:


۱ ­اتصال سرور ها بصورت Back to Back برای ارتباط سرويس DRBD

۲ ­اتصال هر دو سرور به RAS مشترک

برقراری ارتباط دو سرور بدون نياز به وارد کردن پسورد (SRV two Trust:(

# cd /root/.ssh (if not Exist, Create it)
ssh­keygen (default select in all question)
in IBSng­A ­­> cat id_rsa.pub and copy content to authorized_keys in IBSng­B
in IBSng­B ­­> cat id_rsa.pub and copy content to authorized_keys in IBSng­A
in the two server ssh to another till accept ssh key once
# nano /etc/hosts in IBSng­A , add:
192.168.98.2 (ip address of ibsng­B) IBSng­B
# nano /etc/hosts in IBSng­B , add:
192.168.98.1 (ip address of ibsng­A) IBSng­A
(in my Example: eth0 Ip address in Server A: 192.168.98.1 and eth0 Ip address in Server B:
192.168.98.2)

تعداد Size Block در پارتيشنی که قرار است به DRBD اختصاص دهيم بايد در هر دو سرور يکی باشد. بر روی هر دو سرور:

# ap­get install drbd8­utils
# cd /etc/drbd.d/
# mv global_common.conf /home/global_common.conf.origin
# cp /usr/local/src/tools/file/replicate/drbd/* .

به ازای هر زوج بايد يک sr داشته باشيم و هر زوج فقط بروی يک فايل سيستم در هر طرف کار ميکند (به ازای هر جفت پارتيشن که قرار است باهم Sync شوند بايد يک فايل sr داشته باشيم) بر روی هر دو سرور:

# nano r0.res
on IBSng­A {
device /dev/drbd1;
disk /dev/sda3; ­­> on partitioni ke gharare pare beshe
address 192.168.98.1:7789; ­­> IP eth server A ke back to back be B vasle
meta­disk internal;
}
on IBSng­B {
device /dev/drbd1;
disk /dev/sda3;
address 192.168.98.2:7789;
meta­disk internal;
}
Ctrl + X ­­ Save file

بر روی هر دو سرور:

/etc/init.d/drbd restart

اگر در اين لحظه دستور overview­drbd را بزنيم Unconfigured را نمايش ميدهد. بر روی هر دو سرور دستورات زير را وارد ميکنيم بجز آخری که بايد فقط روی سرور Primary زده شود:

# drbdadm create­md r0
# drbdadm attach r0
# drbdadm syncer r0
# drbdadm connect r0
***only in server that want to Primary:
# drbdadm ­­ ­­overwrite­data­of­peer primary r0

اگر در اين لحظه دستور overview­drbd را بزنيم سروری که دستور فوق را هم زده باشيم بصورت Primary و سرور ديگر را Secondary نمايش ميدهد. در حال حاضر فقط /drbd1/dev در دو سرور داريم و تغييرات فقط روی سرور Primary قابل انجام است. فرمت کردن پارتيشن drbd1 در سرور Primary:

# mkfs.xfs /dev/drbd1

در صورت نصب نبودن xfs.mkfs:

# apt­get install xfsprogs

سپس پارتيشن drbd1 را mount ميکنيم:

# mount /dev/drbd1 /var/lib/postgresql

در حال حاضر هر فايلی درون اين پارتيشن بريزيم در سرور Secondary نيز ريخته ميشود. تنظيمات در سرويس IBSng:

# ibsng­tools
Services → Redundancy → DRBD → Configuration:
# Network configuration #

[Network] ip های اين قسمت برای ارتباط با شبکه و RAS مشترک ميباشد. در مثال ما eth1 در هر دو سرور:

IBSng_A=192.168.10.4
IBSng_B=192.168.10.2

ip اين قسمت برای حالتی که هر دو سرور ما از بيرون بک سرور و با اين ip شناخته شود:

float_ip=192.168.10.3

کارت شبکه مجازی که از طريق اين به درخواست های کاربران و روتر ها جواب ميدهد:

float_interface=eth1:HA
#float_ip2=192.168.2.3
#float_interface2=eth1:HA

ip که هر دو سرور برای تست ارتباط خودشان بايد ببينند و صورت عدم ارتباط ممکن است از Primary يه Secondary برود:

ras_ip=192.168.1.1

ممکن است ارتباط بين پارتيشن های drbd در سرورها قطع شود. در اين موقع به اندازه ی ۹۰۰ ثانيه يا ۱۵ دقيقه صبر ميکند، اگر ارتباط بزقرار شد اطلاعات سينک ميشود در غير اين صورت ديگر اطلاعات سينک نخواهد شد حتی اگر بعد از اين زمان ارتباط برقرار شود:

sync_time_failed=900
# Status Services #
# options:( yes or Blank ) #
# Default: #

سرويس هايی که بايد بعد از استارت شدن drbd مجدد استارت شوند را با yes مقدار ميدهيم. لازم بذکر است برای مخابرات ها فقط دو تای اولی نياز است:

[Services]
postgres_enable= yes
IBSng_enable=
urldump_enable=yes
dispacher_enable=
general_enable=yes
restartd=
  1. Run Static Command #

دستورات که نسبت شبکه های مختلف ممکن است متفاوت باشد را در اين قسمت وارد ميکنيم:

[commands]
#cprofile1=('touch /tmp/testfile')
cprofile1=('ip route add 192.168.0.0/24 (renge shabake biron) dev eth0 (vasl be net biron) proto
kernel scope link src 192.168.98.1 (ip float)')
cprofile2=('ip route add 172.16.1.1 (renge shabake biron) dev eth0 (vasl be net biron) via src
192.168.98.1 (ip float)')

Ctrl + X and Save config.

# ibsng­tools
Services → Redundancy → DRBD → Health Checker (DRBD) status ­­> Enable
# /etc/init.d/health_checker restart

بر روی سرور ها دستور زير را وارد ميکنيم:

# go_master → in Primary Server
# go_slave → in Secondary Server
# drdb­overview

Trubleshooting DRBD

برای بررسی مشکلات DRBD در ابتدای دو فایل زیر را بررسی میکنیم :

/var/log/IBSng/ibs_redundancy.log
/var/log/IBSng/ibs_check_drbd.log
ابزارهای شخصی

گویش‌ها
فضاهای نام
عملکردها
گشتن
جعبه‌ابزار