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

از ویکی پارس پویش
پرش به: ناوبری, جستجو

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


نصب و تنظيم سرويس 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 ­­>

  1. nano /etc/hostname
  2. /etc/init.d/hostnome.sh start

هر سرور حداقل دو عدد کارت شبکه نياز دارد: ۱ ­اتصال سرور ها بصورت Back to Back برای ارتباط سرويس DRBD ۲ ­اتصال هر دو سرور به RAS مشترک برقراری ارتباط دو سرور بدون نياز به وارد کردن پسورد (SRV two Trust:(

  1. 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

  1. nano /etc/hosts in IBSng­A , add:

192.168.98.2 (ip address of ibsng­B) IBSng­B

  1. 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 اختصاص دهيم بايد در هر دو سرور يکی باشد. بر روی هر دو سرور:

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

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

  1. 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 زده شود:

  1. drbdadm create­md r0
  2. drbdadm attach r0
  3. drbdadm syncer r0
  4. drbdadm connect r0
      • only in server that want to Primary:
  1. drbdadm ­­ ­­overwrite­data­of­peer primary r0

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

  1. mkfs.xfs /dev/drbd1

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

  1. apt­get install xfsprogs

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

  1. mount /dev/drbd1 /var/lib/postgresql

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

  1. ibsng­tools

Services → Redundancy → DRBD → Configuration:

  1. 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

  1. float_ip2=192.168.2.3
  2. float_interface2=eth1:HA

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

  1. Status Services #
  2. options:( yes or Blank ) #
  3. Default: #

سرويس هايی که بايد بعد از استارت شدن drbd مجدد استارت شوند را با yes مقدار ميدهيم. لازم بذکر است برای مخابرات ها فقط دو تای اولی نياز است: [Services] postgres_enable= yes IBSng_enable= urldump_enable=yes dispacher_enable= general_enable=yes restartd=

  1. Run Static Command #

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

  1. 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.

  1. ibsng­tools

Services → Redundancy → DRBD → Health Checker (DRBD) status ­­> Enable

  1. /etc/init.d/health_checker restart

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

  1. go_master → in Primary Server
  2. go_slave → in Secondary Server
  3. drdb­overview
ابزارهای شخصی

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