نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: آموزش High Availability نصب و کانفیگ CoroSync و Pacemaker سرور مجازی لینوکس CentOS

  1. #1
    کاربر اخراج شده
    تاریخ عضویت
    Mar 2013
    نوشته ها
    35
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    53
    تشکر شده در
    42 پست

    پیش فرض آموزش High Availability نصب و کانفیگ CoroSync و Pacemaker سرور مجازی لینوکس CentOS

    سلام

    و اما آموزش: High Availability نصب و کانفیگ CoroSync و Pacemaker سرور مجازی لینوکس CentOS

    مفهوم High Availability در دنیای اینترنت و وب هاستینگ و شبکه ، بسیار گسترده و وسیع است و شامل مباحث فراوانی است . در این قسمت قصد داریم تا سیستم High Availability را به صورت خیلی ساده و با نصب و کانفیگ برنامه های CoroSync و Pacemaker بر روی سیستم عامل لینوکس CentOS 5.8 نسخه فاینال پیاده سازی کنیم . در انتهای این مقاله ، قادر خواهید بود تا ۲ سرور مجازی مختلف را Sync کرده و در صورت متوقف شدن سرویس دهی هر یک از ۲ سرور یا node ، پینگ آی پی شما نخوابد و سرویس دهی وب سرور آپاچی ادامه داشته باشد .

    در گذشته برای کلاسترینگ و پیاده سازی High Availability در سرور های لینوکسی از نرم افزار قدیمی Hearbeat استفاده میشد . امروزه برنامه Pacemaker جای هارت بیت را گرفته است و مشهور ترین نرم افزار کلاسترینگ به حساب می آید .



    اجرای High Availability و کلاسترینگ در سرور مجازی لینوکس

    ابتدا selinux و iptables را در سیستم عاملی لینوکس کلیه سرور ها غیر فعال کنید
    به روز رسانی پکیج های مورد نیاز لینوکس :
    yum install yum-utils
    yum provides */libperl.so
    yum install perl
    yum provides */libesmtp.so.5
    نصب پیش نیاز های پیس میکر و کورو سینک :
    su -
    rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/$(uname -i)/epel-release-5-4.noarch.rpm
    wget -O /etc/yum.repos.d/pacemaker.repo http://clusterlabs.org/rpm/epel-5/clusterlabs.repo
    حالا با اجرای فرمان زیر برنامه های CoroSync و Pacemaker را بر روی لینوکس CentOS نود اول که در اینجا سرور مجازی A هست نصب میکنیم :
    yum install -y pacemaker.$(uname -i) corosync.$(uname -i)

    نصب برنامه Pacemaker بر روی سرور مجازی لینوکس

    کانفیگ کردن CoroSync :
    ابتدا برای ایجاد یک تاییدیه و تصدیق یا authentication باید یک فایل با نام و مسیر /etc/corosync/authkey در تمام node های کلاستر یا خوشه و از طریق ssh ایجاد نماییم . در صورتی که در انجام این مراحل و اجرای کورو سینک ، با پیغام خطای Invalid digest مواجه شوید ، بدان معناست که که authentication یا هنوز بین node ها تایید نشده است ، و یا مشکلی در مرحله authentication به وجود آمده است .
    # Generate Key
    corosync-keygen
    # Define receiving server and copy to it.
    node=172.25.3.26
    cat /etc/corosync/authkey | ssh root@$node “cat >> /etc/corosync/authkey; chmod 0400 /etc/corosync/authkey; chown hacluster:haclient /etc/corosync/authkey”
    در مرحله بعدی باید فایل corosync.conf.example واقع در مسیر /etc/corosync/ را به corosync.conf تغییر نام داده و سپس آن را ویرایش کنیم . در اینجا من یک کپی جدید از این فایل را در همان مسیر ایجاد میکنم تا در صورت بروز اشتباه ، فایل اصلی از بین نرود . سپس با کمک فرمان vi فایل فوق را باز میکنیم و تغییرات زیر را در آن اعمال می نماییم :
    cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf
    vi /etc/corosync/corosync.conf
    با اضافه کردن این دستورات به فایل مذکور ، CoroSync را وادار به اجرا با یوزر root میکنیم . تنها در این صورت است که CoroSyn قابلیت تعامل با Pacemaker را به دست خواهد آورد :
    ai***ec {
    # Run as root – this is necessary to be able to manage resources with Pacemaker
    user: root
    group: root
    }
    مقادیر زیر را بری شروع کار Pacemaker وارد میکنیم :
    cat <<-END >>/etc/corosync/corosync.conf
    service {
    # Load the Pacemaker Cluster Resource Manager
    name: pacemaker
    ver: 0
    }
    END
    با اجرای دستوارت زیر و با کمک ssh و root ، تنظیمات اعمال شده در فایل corosync.conf را در تمام node های موجود در کلاستر و خوشه کپی می کنیم :
    # Define receiving server and copy to it
    node=172.25.3.26
    scp /etc/corosync/corosync.conf root@$node:/etc/corosync/corosync.conf
    توجه داشته باشید که پکیج rpm ای که کوروسینک و پیس میکر را با آن نصب کردیم ، فولدر لاگ log را نساخته است در حالی که وجود این فلدر ضروری است . بنا بر این به صورت دستی و با اجرای دستورات زیر اقدام به ساخت این فولدر در node های کلاستر می نماییم :
    ابتدا در node اول و با دستور زیر فولدر لاگ را ایجاد میکنیم :
    mkdir /var/log/cluster/
    سپس به صورت ریموت ، و از طریق ssh این فولدر را روی بقیه نود های کلاستر میسازیم :
    node=172.25.3.26
    ssh root@$node “mkdir /var/log/cluster/”
    با اجرای فرمان زیر ، سرویس CoroSync را استارت میکنیم :
    service corosync start
    با یکی از فرمان های زیر ، وضعیت CoroSync در سرور را چک میکنیم . در صورتی که کورو سینک به درستی اجرا نشده باشد ، با اجرای دستورات زیر با پیغام خطا و همچنین توضیحاتی در رابطه با علت بروز مشکل مواجه میشویم :
    crm_mon
    # Or for a single chunk of info
    crm status
    برای آشنایی با سایر command ها و دستورات CoroSync میتوانید از فرمان زیر استفاده کنید :
    crm –help
    در صورتی که کورو سینک در node اول کلاستر بدون مشکل و ارور خاصی اجرا شد ، میتوانید در node های بعدی نیز به صورت remote و از طریق ssh سرویس کورو سینک را اجرا نمایید :
    node=172.25.3.26
    ssh root@$node — service corosync start
    قبل از ادامه کار ، با اجرای دستور زیر چک کنید آیا همه چیز به درستی کار میکند یا خیر :
    crm_verify -L
    همانطور که ملاحظه میکنید با پیغام خطا مواجه میشوید.دلیل بروز این پیام خطا ، استفاده کردن Pacemaker از سرویس STONITH است . برای حل مشکل دستورات زیر را در تمام نود ها اجرا کنید :
    crm configure property stonith-enabled=false
    crm_verify -L

    کلاسترینگ Clustering

    اختصاص دادن یک IP به خوشه و کلاستر :
    یکی از مهم ترین قسمت های کار ، اختصاص دادن یک IP به کلاستر ایجاد شده است . این کار به ما توانایی ارتباط بر قرار کردن با کلاستر را فارغ از اینکه کدام یک از node ها با کدام آدرس های IP در حال سرویس دهی و یا down هستند را میدهد . بنا بر این آدرس IP خوشه ، یک آدرس جدید است که در هیچ یک از نود ها نباید استفاده شده باشد .
    نکته : من یک بار اینجا ip رو اشتباه وارد کردم و بعد از اون هر کاری که کردم نتونستم عوضش کنم…هنگام ست کردم مجدد ip با پیغام خطایی مبنی بر اینکه قبلا این عملیات انجام شده مواجه میشدم ، در نهایت همه چیز رو پاک کردم از اول کانفیگ کردم!!!بنا بر این دقت کنید اشتباه وارد نکنید چون دردسرش زیاده . اگر کسی از دوستان هم بلده چجوری میشه ClusterIP رو تغییر داد ، اعلام کنه تا ضمیمه کنم
    برای اختصاص دادن آدرس به کلاستر دستورات زیر را با همین شکل و ip انتخاب شده توسط شما در تمام نود ها اجرا میکنیم تا node های موجود در خوشه قرار بگیرند :
    crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 \
    params ip=172.25.3.20 cidr_netmask=21 \
    op monitor interval=30s
    دستورات زیر را در نود ها اجرا میکنیم تا از اختصاص پیدا کردن ip به کلاستر و قرار گرفتن موفقیت آمیز هر نود در خوشه اطمینان حاصل کنیم :
    crm configure show
    crm status
    حالا باید failback را غیر فعال کنیم زیرا در اینجا نیازی به failback برای هیچ یک از نود ها نداریم :
    crm configure rsc_defaults resource-stickiness=100
    crm configure show
    ما در اینجا فقط ۲ نود داریم ، بنا بر این نیازی به چک کردم تعداد node ها و اینکه آیا به حد نصاب رسیده اند یا خیر نداریم . این قابلیت برای زمانی است که تعداد نود ها زیاد باشد . بنا بر این این سرویس را در Pacemaker متوقف و Disable میکنیم :
    crm configure property no-quorum-policy=ignore
    crm configure show
    هم اکنون اگر یکی از node ها از حالت سرویس دهی خارج شده یا Down شود ، سرویس دهی به node دیگر انتقال می یابد و قطع نمیشود .
    کلاستر کردن وب سرور آپاچی :
    هم اکنون می توانیم به خوشه ایجاد شده ، recouce معرفی کنیم تا بر اساس مفاهیم High Availability آن را پایدار کنیم . در صورت خارج شدن یک نود از سرویس دهی ، وب سرور آپاچی بر روی node دیگر به سرویس دهی خود ادامه خواهد داد .
    ابتدا وب سرور آپاچی Apache و بنامه دانلود Wget را در لینوکس CentOS نصب میکنیم :
    yum install -y httpd wget
    با اجرای دستورات زیر ، صفحه پیش فرض ایندکس را برای وب سرور آپاچی میسازیم تا متوجه شوید وب سرور آپاچی در حال پردازش کدام درخواست ها می باشد :
    source /etc/sysconfig/network
    cat <<-END >/var/www/html/index.html
    <html>
    <body>
    <script type="text/javascript"><!--
    var _gaq = _gaq || [];
    _gaq.push(
    ['_setAccount', 'UA-10241535-3'],
    ['_trackPageview']
    );
    (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
    //-->
    </script>
    The Apache cluster is on: $HOSTNAME</body>
    </html>
    END


    کلاستر کردن وب سرور آپاچی
    وب سرور آپاچی به صورت پیش فرض به پیس میکر Pacemaker اجازه چک کردن سرویس و آگاهی یافتن از اصطلاحا live بودن آپاچی و اینکه آیا وب سرور در حال سرویس دهی می باشد یا از حالت سرویس دهی خارج شده است را نمیدهد . برای ایجاد این مجوز و آگاه کردن Pacemaker از وضعیت لحظه ای سرویس وب سرور آپاچی باید فایل httpd.conf را که به صورت پیش فرض در مسیر /etc/httpd/conf/httpd.conf در لینوکس واقع شده است ، به صورت زیر کانفیگ کنید :
    ابتدا با کمک دستور ویرایش فایل vi فایل httpd.conf را باز و آماده ویرایش میکنیم :
    vim /etc/httpd/conf/httpd.conf
    سپس ExtendedStatus on و </Location /server-status> را در فایل httpd.conf پیدا کرده و آن ها را Uncomment میکنیم و از حالت کامنت بودن خارج میکنیم . سپس به دنبال عبارت All from .example.com در فایل httpd.conf گشته و آن را به Allow from 172.25 تغییر میدهیم . ip وارد شده در اینجا فقط برای مثال است و شما باید بر اساس تنظیمات سیستم خود آن را ست کنید . در نهایت با دستور :wq فایل را ذخیره کرده و سرویس آپاچی را مجددا راه اندازی میکنیم :
    service httpd restart
    حالا باید تنظیمات مربوط به کلاستر کردن آپاچی را در CoroSync و Pacemaker نیز اضافه کنیم تا وب سرور آپاچی به صورت کامل کلاستر و در محدوده خوشه قرار بگیرد :
    crm configure primitive WebSite ocf:heartbeat:apache \
    params configfile=/etc/httpd/conf/httpd.conf \
    op monitor interval=1min
    crm configure show
    crm status
    برنامه Pacemaker را برای قابلیت زنده نگه داشتن چندین recourse کانفیگ میکنیم :
    crm configure colocation website-with-ip INFINITY: WebSite ClusterIP
    crm configure show
    crm_mon
    حالا باید pacemaker را طوری کانفیگ کنیم تا ClusterIP قبل از وب سایت استارت شود و فقط زمانی متوقف شود که سرویس دهی وب سایت متوقف شده است .
    crm configure order apache-after-ip mandatory: ClusterIP WebSite
    crm configure show
    سیستم High Availability با موفقیت بر روی ۲ نود که در اینجا ۲ سرور مجازی با سیستم عامل لینوکس توزیع CentOS هستند ، پیاده سازی شد و وب سرور آپاچی اصطحا کلاستر شد .

    موفق باشید

    و لينک منبع:
    کد PHP:
    http://compiler.ir/%D8%B3%D8%B1%D9%88%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-high-availability-%D9%86%D8%B5%D8%A8-%D9%88-%DA%A9%D8%A7%D9%86%D9%81%DB%8C%DA%AF-corosync-%D9%88-pacemaker-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/ 

  2. تعداد تشکر ها از name2 به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. آموزش نصب و کانفیگ مجازی ساز kvm روی centos
    توسط shadmehr792 در انجمن مباحث و منابع آموزشی
    پاسخ ها: 3
    آخرين نوشته: December 19th, 2017, 02:40
  2. درخواست اموزش پارتیشن بندی centos برای solus vm slave و مجازی سازی kvm
    توسط OxinOnline در انجمن ساير مجازي سازي ها
    پاسخ ها: 0
    آخرين نوشته: September 24th, 2016, 22:35
  3. پاسخ ها: 3
    آخرين نوشته: July 10th, 2013, 00:38
  4. آموزش آماده سازی CentOS 6 Minimal برای مراحل بعدی
    توسط astro.alireza در انجمن ردهت,فدورا,سنت-او-اس Redhat,Fedora,CentOS
    پاسخ ها: 2
    آخرين نوشته: May 9th, 2012, 19:04
  5. اموزش نصب سنتاس(centos) بر روی سرور مجازی
    توسط loginvps در انجمن مباحث و منابع آموزشی
    پاسخ ها: 0
    آخرين نوشته: March 31st, 2012, 16:51

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •