اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

ایجاد High Availability Clusters در Linux با استفاده از DRBD و Heartbeat (تنها با یک کارت شبکه)

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    ایجاد High Availability Clusters در Linux با استفاده از DRBD و Heartbeat (تنها با یک کارت شبکه)

    کلاستر (Cluster) در حقیقت مجموعه سرورهایی هستند که هر کدام میتواند نقش اصلی را بازی کند و این سرورها به گونه ای تنظیم و تعریف میشوند تا در مواقع اضطراری بتوانند نقش یکدیگر را ایفا کنند و در حقیقت در دسترس بودن منابع را به میزان حداکثر ممکن میرسانند. بدین گونه که در مواقع بروز هر گونه مشکلی در سرور اصلی (خاموش شدن و ...) بدون هیچ گونه packet lost از سرور اصلی، سرور بک آپ به سرعت جایگزین شود و در این میان هیچ گونه دیتایی از بین نرود، در حقیقت میتوان گفت در لحظه sync کامل بین سرورها صورت پذیرد.

    در این پست قصد داریم نحوه cluster کردن 2 سرور لینوکسی الستیکس با تنها یک کارت شبکه (روی هر سرور) و با استفاده از DRBD و Heartbeat را به صورت کامل با جزئیات آموزش دهیم.


    DRBD چیست ؟

    DRBD به block device هایی گفته میشود که به عنوان یک building block برای تشکیل high availability (HA) cluster طراحی شده اند. و برای انجام آن از Mirror کردن کل یک block device از طریق یک شبکه اختصاص یافته صورت میگیرد. DRBD را در حقیقت به عنوان شبکه بر اساس raid-1 میتوان فرض کرد.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Elastix High Availability Clusters-1.png مشاهده: 1 حجم: 95.4 کیلو بایت



    در تصویر بالا 2 مربع نارنجی نمایشگر 2 سروری هستند که یک HA cluster را تشکیل میدهند. هر کدام از آنها شامل component های معمولی یک Linux TM Kernel همانند file system, buffer cache, disk scheduler, disk drivers, TCP/IP stack و network interface card (NIC) driver میباشند.
    فلش های سیاه رنگ نشان دهنده ی جریان data بین این component ها می باشد.

    فلش های نارنجی بیانگر جریان data یی هستند که DRBD mirror نشان میدهد و در حقیقت همان data ی سرویس Highly Available هستند که از Node فعال کلاستر (HA Cluster) به Node غیر فعال کلاستر (standby node) در جریانند.

    در این پیاده سازی ما پارتیشن dev/sda3/ را با نام replica بعنوان پارتیشن DRBD syncronization ایجاد میکنیم. این پارتیشن تنها شامل فایل و دایرکتوری هایی (در حقیقت فایل ها و دایرکتوری های مربوطه در استریسک و الستیکس) هست که میخواهیم بین سرور primary (سرور اصلی) و secondary (سرور دوم) سینک (synchronize) شوند.



    Heartbeat چه کاری انجام میدهد ؟
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Elastix High Availability Clusters-2.png مشاهده: 1 حجم: 100.0 کیلو بایت






    قسمت بالایی از این تصویر یک cluster را نشان میدهد که NODE سمت چپ در حال حاضر فعال است و همچنین ip address سرویسی که ماشین های client در حال حاضر با آن ارتباط دارند روی NOD سمت چپ میباشد.

    سرویسی به همراه ip آدرسش میتواند به NODE دیگر و در هر زمانی انتقال یابد. حال ممکن است به دلیل یک نقصی node فعال باشد و یا به صورت دستی توسط ادمین سیستم انجام شود. قسمت پایینی تصویر یک کلاستر مشکل دار را نمایش میدهد. در عملیات HA به انتقال یک سرویس Failover گفته میشود همچنین عملیات معکوس یعنی برگشت به سرویس اول Failback نامیده میشود و هنگامی که این انتقال توسط یک administrator صورت پذیرد switchover نامیده میشود.

    در این پیاده سازی ما از heartbeat برای مانیتور کردن حالت 2 سرور و همچنین در طول یک failover برای mount کردن پارتیشن مربوط به synchronization روی سرور ثانویه همچنین start up کردن ریسورس ها و اپلیکیشن های asterisk, mysql و http مورد استفاده قرار میگیرد. در طول عملیات failover آی پی ادرس معلق ما از سرور primary به سرور secondary انتقال خواهد یافت این ip در حقیقت باید برای ریجیستر شدن end point های SIP و دیگر device های voip (داخلی ها) مورد استفاده قرار گیرد.


    مرور تجهیزات :
    این سناریو به 2 سرور نیاز دارد و روی هر کدام یک اینترفیس شبکه و یک هارد ساتا مورد نیاز میباشد. شما ممکن است انواع متفاوتی از هارد دیسک (IDE, SCSI, etc) داشته باشید که بنابراین بعضی از این مراحل ممکن است نیاز به تغییر برای تاثیر بهتر در محیط تان داشته باشد.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Elastix High Availability Clusters-3.png مشاهده: 1 حجم: 84.7 کیلو بایت






    نصب و تنظیم DRBD :

    مراحل زیر باید روی هر 2 سرور primary و secondary اجرا شود :


    1 - Boot کردن cd نصب elastix

    2 - از منوی boot کلمه advanced را تایپ کنید و enter را فشار دهید.

    3 - در طول مراحل عادی نصب گزینه manually partition hard drive را انتخاب کنید. و پارتیشن های زیر را با توجه به یک هارد sata 500G و 4 گیگ ram ایجاد کنید.
    - یک پارتیشن ext3 برای روت (/) با 50 گیگ فضا و تحت عنوان sda1 ایجاد کنید. (10 درصد از فضای هارد خود را برای گسترش های آینده کنار بگذارید.
    - پارتیشن swap با 8 گیگ فضا تحت عنوان sda2 بسازید. (فضای swap خود را 2 برابر سایز ram خود انتخاب کنید)

    4 - سپس ip address های سرور ها را وارد کنید و همچنین نام localhost را به voipserver.drbd و voipbackup.drbd تغییر دهید. بقیه مراحل نصب به شیوه معمولی انجام میشود.

    5 - بعد از اتمام نصب و boot شدن سیستم با استفاده از دستور زیر سیستم را upgrade کنید :
    کد PHP:
    yum -y update 
    6 - ایجاد پارتیشنی که شامل اطلاعات replicate شده خواهد بود.
    کد PHP:
    fdisk /dev/sda 
    - افزودن پارتیشن جدید (کلید n را بزنید)
    - انتخاب primary (کلید p را بزنید)
    - انتخاب پارتیشن (عدد 3 را بزنید)
    - enter را بزنید.

    توجه : اگر 2 هارد با ظرفیت های متفاوت دارید دقت کنید که سایز پارتیشن 3 (سوم) حتما باید در هر 2 سرور یکسان باشد و گرنه از طریق DRBD عملیات sync انجام نخواهد شد. این کار را با در نظر گرفتن first sylinder و last cylinder با در نظر گرفتن آپشن +sizeM انجام دهید به طور مثال "+6048M" که باید روی هر دو سرور یکسان تعریف شود.

    - کلید t را برای تغییر partition system ID فشار دهید.
    - کلید شماره 3 را برای انتخاب پارتیشن شماره 3 بزنید.
    - کد HEX 83 را برای type پارتیشن وارد کنید.
    - w را برای ذخیره تغییرات بزنید.

    کد PHP:
    [root@voipserver.drbd ~]# fdisk /dev/sda


    The number of cylinders for this disk is set to 1044.
    There is nothing wrong with that
    but this is larger than 1024,
    and 
    could in certain setups cause problems with:
    1software that runs at boot time (e.g., old versions of LILO)
    2booting and partitioning software from other OSs
       
    (e.g., DOS FDISKOS/2 FDISK)


    Command (for help): n
    Command action
       e   extended
       p   primary partition 
    (1-4)
    p
    Partition number 
    (1-4): 3
    First cylinder 
    (512-1044, default 512):
    Using default value 512
    Last cylinder 
    or +size or +sizeM or +sizeK (512-1044, default 1044):
    Using default value 1044


    Command 
    (for help): t
    Partition number 
    (1-4): 3
    Hex code 
    (type L to list codes): 83


    Command 
    (for help): w
    The partition table has been altered
    !


    Calling ioctl() to re-read partition table.


    WARNINGRe-reading the partition table failed with error 16Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.
    [
    root@voipserver.drbd~]# reboot 

    در این مرحله هر 2 سرور را Restart میکنیم


    7 - فرمت پارتیشن جدید :
    کد PHP:
    mke2fs -/dev/sda3 

    8 - در اینجا filesystem را از disk که ساختیم حذف میکنیم :
    کد PHP:
    dd if=/dev/zero bs=1M count=500 of=/dev/sda3sync 

    9 - نصب DRBD, Heartbeat با استفاده از yum :
    کد PHP:
    yum install heartbeat drbd83 kmod-drbd83 
    توجه : اگر تصادفا شما با DRBD83 مشکلی پیدا کردید از ورژن DRDB82 64bit استفاده کنید.


    10 - برای اطمینان از host name درست و مربوط به ip توصیه میشود که به صورت دستی فایل /etc/hosts را برای map کردن host به ip صحیح آپدیت کنید و خطوط زیر را به آنها اضافه کنید.
    کد PHP:
    172.16.16.225   voipserver.drbd
    172.16.16.224   voipbackup
    .drbd 

    11 - فایل /etc/drbd.conf روی voipserver.drbd ویرایش کنید. نمونه زیر را با توجه به نیاز خود تغییر دهید:
    کد PHP:
    global { usage-count no; }
    resource r0 {
    protocol C;
    startup wfc-timeout 10degr-wfc-timeout 30; } #change timers to your need
    disk on-io-error detach; } # or panic, ...
    net {
    after-sb-0pri discard-least-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri call-pri-lost-after-sb;
    cram-hmac-alg "sha1";
    shared-secret "Cent0Sru!3z";
    }
    syncer rate 5M; }
    on voipserver.drbd {
    device /dev/drbd0;
    disk /dev/sda3;
    address 172.16.16.225:7788;
    meta-disk internal;
    }
    on voipbackup.drbd {
    device /dev/drbd0;
    disk /dev/sda3;
    address 172.16.16.224:7788;
    meta-disk internal;
    }


    توجه : خطوط زیر به منظور کمک به سرورها برای حل split brain recovery مورد استفاده قرار میگیرند. split brain زمانیست که هر 2 سرور در mode primary هستند و نیاز است که بدانیم چگونه مسئله را رفع کنیم که چه کسی باید نقش primary و همچنین چه کسی نقش secondary را ایفا کند. (لغو یا قبول تغییرات ایجاد شده در primary ها)
    کد PHP:
    after-sb-0pri discard-least-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri call-pri-lost-after-sb

    12 - فایل کانفیگ /etc/drbd.conf را به سرور شماره 2 کپی کنید :
    کد PHP:
    scp /etc/drbd.conf root@voipbackup.drbd:/etc

    13 - محدوده meta data را روی دیسک قبل از start کردن سرویس drbd ، ایجاد و استارت کنید : (روی هر 2 سرور انجام شود)
    کد PHP:
    drbdadm create-md r0 

    14 - سرویس drbd را روی هر 2 تا node استارت کنید :
    کد PHP:
    service drbd start 

    15 - بررسی کنید که هر 2 سرور secondary باشند :
    کد PHP:
    cat /proc/drbd 

    16 - همانطور که میبینید هر 2 تا node در حال حاضر secondary هستند که normal میباشد. ما باید تصمیم بگیریم که کدام node به عنوان primary یا اولیه (voipserver.drbd) عمل کند و اولین full sync بین هر دو node آغاز خواهد شد.با اجرای دستور زیر در سرور voipserver.drbd علاوه بر عملیات sync کامل، در حقیقت سرور را به مد primary هم میبریم:
    کد PHP:
    drbdadm -- --overwrite-data-of-peer primary r0 

    17 - بعد از اجرای دستور منتظر بمانید تا عملیات syncronization کامل شود (بعد از تکمیل عملیات sync دقیقا مینویسد که سینک به پایان رسیده ) :
    کد PHP:
    watch -n 1 cat /proc/drbd 

    نکته : دقت کنید اگر عملیات sync با موفقیت انجام نشود وقتی نقش سرور را با دستور "drbdadm role r0" بررسی کنیم در سرور اول نتیجه ی Primary/Unknown وهمچنین در سرور بک آپ Secondary/Unknown مشاهده میشود.


    18 - بعد از تکمیل مرحله بالا اکنون میتوانیم /dev/drbd0 را فرمت کنیم و آن را روی voipserver.drbd مانت (mount) کنیم :
    کد PHP:
    mkfs.ext3 /dev/drbd0
    mkdir 
    /replica
    mount 
    /dev/drbd0 /replica 

    19 - اکنون با اجرای دستور زیر نقش سرور را میتوانیم تشخیص دهیم :
    کد PHP:
    drbdadm role r0 
    در سرور primary باید جواب زیر برگردد :
    Primary/Secondary


    20 - اکنون تمام دایرکتوری هایی که میخواهیم بین 2 سرور sync شوند به پارتیشن جدیدمان کپی خواهیم کرد. دایرکتوری های اصلی را حذف و سپس symbolic link ها را برای جایگزین کردن آنها روی voipserver.drbd ایجاد میکنیم :
    کد PHP:
    cd /replica
    amportal chown
    tar 
    -zcvf etc-asterisk.tgz /etc/asterisk
    tar 
    -zxvf etc-asterisk.tgz
    tar 
    -zcvf var-lib-asterisk.tgz /var/lib/asterisk
    tar 
    -zxvf var-lib-asterisk.tgz
    tar 
    -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk/
    tar -zcvf var-www.tgz /var/www/
    tar -zxvf usr-lib-asterisk.tgz
    tar 
    -zcvf var-spool-asterisk.tgz /var/spool/asterisk/
    tar -zxvf var-spool-asterisk.tgz
    tar 
    -zcvf var-lib-mysql.tgz /var/lib/mysql/
    tar -zxvf var-lib-mysql.tgz
    tar 
    -zcvf var-log-asterisk.tgz /var/log/asterisk/
    tar -zxvf var-log-asterisk.tgz
    tar 
    -zxvf var-www.tgz
    rm 
    -rf /etc/asterisk
    rm 
    -rf /var/lib/asterisk
    rm 
    -rf /usr/lib/asterisk/
    rm -rf /var/spool/asterisk
    rm 
    -rf /var/www
    rm 
    -rf /var/lib/mysql/
    rm -rf /var/log/asterisk/
    ln -/replica/etc/asterisk/ /etc/asterisk
    ln 
    -/replica/var/lib/asterisk/ /var/lib/asterisk
    ln 
    -/replica/usr/lib/asterisk/ /usr/lib/asterisk
    ln 
    -/replica/var/spool/asterisk/ /var/spool/asterisk
    ln 
    -/replica/var/lib/mysql/ /var/lib/mysql
    ln 
    -/replica/var/log/asterisk/ /var/log/asterisk
    ln 
    -/replica/var/www /var/www
    cd 


    21 - سرویس های mysqld, asterisk و httpd را روی voipserver.drbd متوقف (stop) میکنیم :
    کد PHP:
    service mysqld restart
    service mysqld stop
    service asterisk stop
    service httpd stop
    service elastix
    -updaterd stop
    service elastix
    -portknock stop 

    22 - در این مرحله بعد از اطمینان از استاپ شدن سرویس ها ، به صورت دستی به سرور 2 سوییچ میکنیم :
    قبل از آن در سرور اول (voipserver.drbd) پارتیشن را unmount میکنیم و سرور را به مد secondary میبریم:
    کد PHP:
    [root@voipserver.drbd ~]# umount /replica ; drbdadm secondary r0 
    توجه : دستور بالا برای چک کردن اینکه آیا اطلاعات روی هر 2 سرور replicate می شوند یا نه مورد استفاده قرار میگیرد. شما باید تمامی اطلاعات replicate شده را در سرور 2 دقیقا شبیه به اطلاعات در سرور اول مشاهده کنید.

    این دستور را با ترمینال فیزیکی login شده اجرا نکنید و از ssh استفاده کنید در غیر اینصورت فولدر /replica به دلایلی unmount نخواهد شد همچنین مطمئن باشید که در پوشه replica نیستید. "cd /" را تایپ کنید.(همانظور که ما بعد از کپی دایرکتوری ها به مسیر (/) اسلش cd کردیم)


    اکنون به سرور voipbackup.drbd سوییچ میکنیم و :
    کد PHP:
    [root@voipbackup.drbd ~]# mkdir /replica ; drbdadm primary r0 ; mount /dev/drbd0 /replica
    [root@voipbackup.drbd ~]# ls /replica/ 

    23 - وضعیت سرور voipbackup.drbd را بررسی کنید تا ببینید این بار سرور دوم در مد primary قرار گرفته : (primary/secondary)
    کد PHP:
    drbdadm role r0 

    24 - روی سرور primary که در حال حاضر سرور voipbackup.drbd می باشد دستور df -h را اجرا کنید تا مطمئن شوید که پارتیشن /dev/drbd0 مانت (mount) شده و در حال استفاده میباشد :
    کد PHP:
    [root@voipbackup.drbd ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             3.4G  2.6G  583M  82% /
    tmpfs                 243M     0  243M   0% /dev/shm
    /dev/drbd0            4.1G  497M  3.4G  13% /replica 

    توجه : در همین لحظه این دستور را در سرور اصلی voipserver.drbd هم اجرا کنید ولی نباید پارتیشن /dev/drbd0 نمایش داده شود (مگر اینکه در mode primary باشد):
    کد PHP:
    [root@voipserver.drbd ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             3.4G  2.6G  567M  83% /
    tmpfs                 243M     0  243M   0% /dev/shm
    You have 
    new mail in /var/spool/mail/root 
    25 - اکنون که سرور voipbackup.drbd در مد primary هست شروع به حذف و لینک مسیر ها روی آن خواهیم کرد :
    کد PHP:
    rm -rf /etc/asterisk
    rm 
    -rf /var/lib/asterisk
    rm 
    -rf /usr/lib/asterisk/
    rm -rf /var/spool/asterisk
    rm 
    -rf /var/lib/mysql/
    rm -rf /var/log/asterisk/
    rm -rf /var/www
    ln 
    -/replica/etc/asterisk/ /etc/asterisk
    ln 
    -/replica/var/lib/asterisk/ /var/lib/asterisk
    ln 
    -/replica/usr/lib/asterisk/ /usr/lib/asterisk
    ln 
    -/replica/var/spool/asterisk/ /var/spool/asterisk
    ln 
    -/replica/var/lib/mysql/ /var/lib/mysql
    ln 
    -/replica/var/log/asterisk/ /var/log/asterisk
    ln 
    -/replica/var/www /var/www 

    26 - سرویس های mysql, asterisk و httpd را روی voipbackup.drbd متوقف (stop) میکنیم :
    کد PHP:
    service mysqld restart
    service mysqld stop
    service asterisk stop
    service httpd stop
    service elastix
    -updaterd stop
    service elastix
    -portknock stop 

    27 - اکنون به سرور اول برمیگردیم :
    قبل از آن در سرور دوم (voipbackup.drbd) پارتیشن را unmount میکنیم و سرور را به مد secondary میبریم:
    کد PHP:
    [root@voipbackup.drbd ~]# umount /replica/ ; drbdadm secondary r0 
    اکنون به voipserver.drbd سوییچ میکنیم و آن را به مد primary میبریم :
    کد PHP:
    [root@voipserver.drbd ~]# drbdadm primary r0 ; mount /dev/drbd0 /replica 
    28 - اکنون drbd در حال کار است ... مطمئن شویم که همیشه کار خواهد کرد :
    کد PHP:
    chkconfig drbd on 


    تنظیمات Heartbeat :

    29 - به خاطر داشته باشید هر سرویس boot up روی هر 2 سرور را stop کنید که باید توسط heartbeat کنترل شوند. این سرویس ها توسط heartbeat روی سروری که تحت کنترل هست مدیریت میشوند :
    کد PHP:
    chkconfig asterisk off
    chkconfig mysqld off
    chkconfig httpd off
    chkconfig elastix
    -updaterd off
    chkconfig elastix
    -portknock off
    service mysqld stop
    service asterisk stop
    service httpd stop
    service elastix
    -portknock stop
    service elastix
    -updaterd stop 


    30 - اکنون فایل etc/ha.d/ha.cf/ را روی voipserver.drbd ایجاد میکنیم وخطوط زیر را در آن کپی میکنیم :
    کد PHP:
    debugfile /var/log/ha-debug
    logfile 
    /var/log/ha-log
    logfacility local0
    keepalive 2
    deadtime 30
    warntime 10
    initdead 120
    udpport 694
    bcast eth0
    auto_failback off
    node voipserver
    .drbd
    node voipbackup
    .drbd 

    توجه : من گزینه auto_failback را off تعریف کردم این گزینه برای من مناسب تر است دستور زیر را روی سرور دوم برای switch back کردن اجرا کنید :
    کد PHP:
    sh /usr/lib/heartbeat/hb_takeover 

    31 - همچنین فایل etc/ha.d/authkeys/ روی سرور voipserver.drbd ایجاد کنید و خطوط زیر را در آن وارد کنید :
    کد PHP:
    auth 1
    1 sha1 MySecret 
    نکته : sha1 همان موردی است که در فایل drbd.conf قرار دادیم و MySecret هم صرفا یک پسورد می باشد.


    32 - پرمیژن های فایل etc/ha.d/authkeys/ را روی voipserver.drbd تغییر دهید :
    کد PHP:
    chmod 600 /etc/ha.d/authkeys 

    33 - فایل etc/ha.d/haresources/ را روی voipserver.drbd ویرایش کنید. (شامل 2 خط است !!!! اما فرمت آن بسیار مهم است). آدرس های email را در خط دوم با email خودتان جایگزین کنید :
    کد PHP:
    voipserver.drbd drbddisk::r0 Filesystem::/dev/drbd0::/replica::ext3 IPaddr::172.16.16.220/24/eth0/172.16.16.255 mysqld asterisk httpd elastix-updaterd elastix-portknock
    voipserver
    .drbd MailTo::support@linux-zone.org,support@linux-zone.org::DRBD/HA-ALERT 
    نکته : قسمت "IPaddr::172.16.16.220/24/eth0/172.16.16.255" مربوط به تنظیمات آی پی معلق می باشد که باید با فرمت "IPaddr::ip/subnet/eth0/broadcast" باشد.


    34 - سرویس heartbeat را روی voipserver.drbd استارت (start) میکنیم :
    کد PHP:
    service heartbeat start 

    35 - اکنون فایل های ha.cf, authkeys و haresources را به سرور voipbackup.drbd کپی میکنیم :
    کد PHP:
    [root@voipserver.drbd ~]# scp /etc/ha.d/ha.cf /etc/ha.d/authkeys /etc/ha.d/haresources root@voipbackup.drbd:/etc/ha.d/ 
    سرویس heartbeat را روی سرور بک آپ استارت میکنیم :
    کد PHP:
    [root@voipbackup.drbd ~]# service heartbeat start 

    36 - تنظیمات مربوط به start شدن heartbeat به هنگام boot شدن در هر 2 سرور انجام میدهیم :
    کد PHP:
    chkconfig --add heartbeat
    chkconfig heartbeat on 

    37 - وضعیت سرور voipserver.drbd را بررسی میکنیم : (primary/secondary)
    کد PHP:
    drbdadm role r0 

    38 - دستور df -h را روی سرور primary اجرا میکنیم تا مطمئن شویم پارتیشن /dev/drbd0 مانت (mount) و در حال استفاده میباشد :
    کد PHP:
    [root@voipserver.drbd ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             3.4G  2.6G  583M  82% /
    tmpfs                 243M     0  243M   0% /dev/shm
    /dev/drbd0            4.1G  497M  3.4G  13% /replica 
    39 - اکنون کار خود را با ایجاد یک داخلی sip یا هر چیزی درون اینترفیس وب الستیکس تست میکنیم بعد از ان سرور primary را shutdown میکنیم در حالی که ping مستمر آی پی 172.16.16.220 (آی پی آدرس معلق/مشترک) ما را مطمئن میسازد که همچنان ارتباط برقرار است و چیزی از دست نرفته.
    تغییری دیگری در سرور secondary دهید و سپس primary را دوباره روشن کنید همه تغییرات باید در سرور اول لحاظ شود.

    توجه ویژه : تمام تغییرات ایجاد شده در فایل های استریسک باید تنها از طریق اینترفیس وب انجام شود. بعد از اتمام کلاستر سعی در upgrade ورژن elastix نکنید که این کار فایل های مربوط به خود را دوباره write خواهد کرد و لینک های درون دایرکتوری /replica لغو خواهند شد.



    Troubleshooting :
    کد PHP:
    tcpdump –i eth0:0 –s 1500 –w captura.pcap #capture traffic
    mv captura.pcap /var/www/html #move file to web for download 
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 08-15-2018, 06:39 PM.
    Instagram : https://www.instagram.com/iranlinuxforum

    Voip Trainer - Asterisk - Elastix - Agi Programming- NewRock

    Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
    Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
    Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
    LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

    Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

    #2
    سلام
    آی پی که اینجا باید روی آی پی فونها ست بشه 172.16.16.220 هست؟

    کامنت


      #3
      پارتیشنی که الستیکس روی اون نصب میشه از چه نوعی و به چه نامی باید باشه؟
      تشکر

      کامنت


        #4
        ببخشید یه مشکل دیگه هم اینکه با دستور yum نتونستم
        DRBD, Heartbeat رو دانلود کنم همش ارور میده.
        اگه ممکنه لینک دانلود و نحوه ریخت روی سرور و نصبش رو هم بگید.
        با سپاس

        کامنت


          #5
          نوشته شده توسط مهدی مشاهده پست
          پارتیشنی که الستیکس روی اون نصب میشه از چه نوعی و به چه نامی باید باشه؟
          تشکر
          پارتیشن / و با فایل سیستم ext3 یا ext4

          نوشته شده توسط مهدی مشاهده پست
          سلام
          آی پی که اینجا باید روی آی پی فونها ست بشه 172.16.16.220 هست؟
          بله

          نوشته شده توسط مهدی مشاهده پست
          ببخشید یه مشکل دیگه هم اینکه با دستور yum نتونستم
          DRBD, Heartbeat رو دانلود کنم همش ارور میده.
          اگه ممکنه لینک دانلود و نحوه ریخت روی سرور و نصبش رو هم بگید.
          با سپاس
          شما مشکل ریپازیتوری دارید.در انجمن آموزش اضافه و فعال کردن ریپازیتوری رو سرچ کنید و بعد از اون با yum نصبشون کنید.
          Instagram : https://www.instagram.com/iranlinuxforum

          Voip Trainer - Asterisk - Elastix - Agi Programming- NewRock

          Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
          Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
          Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
          LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

          Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

          کامنت


            #6
            سلام
            اوکی
            تشکر
            حل شد و DRBD, Heartbeat رو نصب کردم
            یه مشکل دیگه اینکه در مرحله 11 فایل /etc/drbd.conf وجود نداره فقط پوشه drbd.d هست که خالیه.
            چکار کنم!؟
            تشکر

            کامنت


              #7
              سلام سیستم عاملی که دارین روش drbd نصب میکنید چیه؟ با دستور rpm -qa |grep drbd چک کنید ببینید اصلا drbd نصب هست روی سرورتون؟

              کامنت


                #8
                سلام و تشکر
                اون مشکل حل شد حالا تو مرحله14 در سرور اصلی (voipserver172.16.16.224) این ارور رو میده
                برای دیدن سایز بزرگ روی عکس کلیک کنیدنام: l7uv_172.16.16.224.jpgمشاهده: 1حجم: 431.7 کیلو بایت


                و در سرور پشتیبان (voipbackup172.16.16.225) در مرحله 13 این ارور رو میده
                برای دیدن سایز بزرگ روی عکس کلیک کنیدنام: 26i9_172.16.16.225.jpgمشاهده: 1حجم: 296.2 کیلو بایت

                آخرین ویرایش توسط Habili; در تاریخ/ساعت 08-15-2018, 06:40 PM.

                کامنت


                  #9
                  شما مظمینید که دقیقا مثل آموزش دارید پیش میرید. من از رو همین آموزش رفتم هیچ مشکلی نداشتم
                  این ارور ها داره از کارت شبکه و تنطیماتش میگه

                  من قلبی بزرگ با رویاهایی بزرگ دارم. دانسته هایمان را با هم به اشتراک بگذاریم.

                  کامنت


                    #10
                    آره
                    آخه دو بار انجام دادم
                    بار دوم هم کلا فرمت کردم مراحلو مو به مو انجام دادم.
                    ببینید این تنظیمات شبکه که دادم درسته؟
                    سرور اصلی این آی پی رو ست کردم voipserver 172.16.16.224
                    سرور بکاپ این آی پی رو ست کردم voipbackup 172.16.16.225
                    گت وی و دی ان اس شبکه خودمون رو بهشون دادم.
                    هر دو هم که به شبکمون متصل هستن.
                    آخه اگه تنظیمات شبکه مشکل داشت مرحله12 باید ارور میداد.
                    اگه ممکنه راهنمایی کنید.
                    تشکر

                    کامنت


                      #11
                      علاوه بر کارت شبکه آنبرد هر سرور.
                      نیاز به نصب کارت شبکه دوم روی هر سرور می باشد؟

                      کامنت


                        #12
                        سلام ببخشید تو مرحله 13 بد از زدن دستور drbdadm create-md r0 در سرور بکاپ این ارو میاد
                        برای دیدن سایز بزرگ روی عکس کلیک کنیدنام: nfb1_20160315_113120.jpgمشاهده: 1حجم: 1.51 مگابایت

                        - - - Updated - - -

                        ببخشید اگه ممکنه یه کم زود جواب بدین.
                        سپاس
                        آخرین ویرایش توسط Habili; در تاریخ/ساعت 08-15-2018, 06:41 PM.

                        کامنت


                          #13
                          نوشته شده توسط مهدی مشاهده پست
                          سلام و تشکر
                          اون مشکل حل شد حالا تو مرحله14 در سرور اصلی (voipserver172.16.16.224) این ارور رو میده
                          [ATTACH=CONFIG]4059[/ATTACH]
                          و در سرور پشتیبان (voipbackup172.16.16.225) در مرحله 13 این ارور رو میده
                          [ATTACH=CONFIG]4060[/ATTACH]
                          دقت کنید اگر دقیقا مانند آموزش پیش میرید ip سرور اصلی و بک آپ رو جا به چا زدید.

                          نوشته شده توسط مهدی مشاهده پست
                          علاوه بر کارت شبکه آنبرد هر سرور.
                          نیاز به نصب کارت شبکه دوم روی هر سرور می باشد؟
                          خیر این آموزش همانطور که از عنوانش معلومه تنها با یک کارت شبکه روی هر سرور راه اندازی میشه.

                          نوشته شده توسط مهدی مشاهده پست
                          سلام ببخشید تو مرحله 13 بد از زدن دستور drbdadm create-md r0 در سرور بکاپ این ارو میاد
                          [ATTACH=CONFIG]4061[/ATTACH]

                          - - - Updated - - -

                          ببخشید اگه ممکنه یه کم زود جواب بدین.
                          سپاس
                          این پیغام هم به دلیل مشکل در فایل کانفیگ تون هست.
                          آخرین ویرایش توسط Habili; در تاریخ/ساعت 03-20-2016, 01:29 AM.

                          کامنت


                            #14
                            با سلام و تشکر از پاسختون.
                            مشکل خطا های بالا حل شد با جابجا کردن آی پی سرور و بکاپ که جابجا زده شده بود.
                            فقط حالا در مرحله 18 با اجرای دستور mkfs.ext3 /dev/drbd0 در سرور اصلی خطای زیر میاد مشکل و راه حل چیست؟
                            mkfs.ext3: Wrong medium type while trying to determine filesystem size

                            کامنت


                              #15
                              سایز ext3
                              51199 M هست

                              کامنت

                              درباره انجمن منطقه لینوکسی ها

                              انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

                              شبکه های اجتماعی
                              در حال انجام ...
                              X