CentOS 6.6でluci-ricciを使用してRHCSクラスタをインストール

12579 ワード

1.RHCSクラスタを構成する前提:
 
  • 時間同期
  • 名前解析、ここでは修正/etc/hostsファイル
  • を使用
  • yumソースを構成し、CentOS 6のデフォルトの行
  • ファイアウォールを閉じる(またはクラスタを開くために必要な通信ポート)、およびselinux、
  • NetworkManagerサービスをクローズ
  • 2.RHCSに必要な主なパッケージはcmanとrgmanager
     
    cman:クラスタベース情報層であり、CentOS 6ではcorosyncに依存する
    rgmanager:pacemakerのようなクラスタエクスプローラの機能です
     
    luci:rhcsクラスタを管理するwebインタフェースを提供し、luci管理クラスタは主にricciと通信することによって完成する.
    ricci:クラスタにインストールされたノードのluci管理要求を受信するエージェント.
     
    luciとricciの関係はambari-serverとambari-agentのようだ.
    3.環境説明:
    luci :   
    ricci:   
    ricci:   
    ricci:   

    ホスト名はここに付けましたが、他にも時間同期、構成/etc/hosts/などは実行されていませんので、便宜上プレイブックを書いて初期化してみました
    ---
    - hosts:hdpservers
      remote_user: root
      vars:
      tasks:
      - name: add synctime cron
        cron: name='sync time' minute='*/5'job='/usr/sbin/ntpdate '  
      - name: shutdown iptables
        service: name={{}}state={{}} enabled={{}}
        with_items:
        - { name: iptables, state: stopped,enabled: no}
        - { name: NetworkManager, state: stopped,enabled: no}
        tags: stop service
      - name: copy selinux conf file
        copy: src={{}} dest={{}}owner={{}} group={{}} mode={{}}
        with_items:
        - { src=\'#\'" /etc/selinux/config', dest:/etc/selinux/config, owner: root, group: root, mode: '0644'}
        - { src=\'#\'" /etc/hosts', dest: /etc/hosts,owner: root, group: root, mode: '0644'}
      - name: cmd off selinux
        shell: setenforce 0

    このプレイブックを実行して初期化します
    [root@cent1 yaml]#ansible-playbook 

    4.cent 1にluciをインストールします.luciはpythonプログラムで、多くのpythonパッケージに依存しています.
    [root@cent1 ~]#yum install luci

    luciの起動
    [root@cent3 ~]#/etc//luci start
    Adding followingauto-detected host IDs (IP addresses/domain names), corresponding to `cent3'address, to the configuration of self-managed certificate`/var/lib/luci/etc/' (you can change them by editing`/var/lib/luci/etc/', removing the generated certificate`/var/lib/luci/certs/' and restarting luci):
             (none suitable found, you can still doit manually as mentioned above)
     
    Generating a 2048bit RSA private key
    writing newprivate key to '/var/lib/luci/certs/'
        saslauthd:                                       [  ]
    Start luci...                                              [  ]
    Point your webbrowser to :8084 (or equivalent) to access luci

    今はフロントでluciにログインできます.httpsですね
    アカウントのパスワードはこのホストのアカウントとパスワードです
    ログインに成功しました.今rhcsのクラスタを構成します.これはクラスタを管理するためのものです.本当のクラスタはまだインストールされていません.
    5.cnet 2,cent 3,cent 4にricciをインストールし、ricciも多くのソフトウェアに依存している.ここではansibleを使用して3つのノードに直接装着している.もちろん、cent 1から他のノードへの鍵なしログインはすでに用意されている.
    [root@cent1 ~]#ansible rhcs -m yum -a "name=ricci"

    ricciをインストールした後、nodeノードでricciユーザーにパスワードを設定します.ricciユーザーはricciプロセスを実行するユーザーです.このパスワードは後で使います.ここでは簡単です.このパスワードはccsコマンドで設定することもできます.
    [root@cent1 ~]#ansible rhcs -m shell -a "echo '123456' | passwd --stdin ricci"

    ricciの起動
    [root@cent1 ~]#ansible rhcs -m service -a "name=ricci state=started enabled=yes" 
    [root@cent2 ~]# ss-tunlp |grep ricci
    tcp    LISTEN    0      5                     :::11111                :::*      users:(("ricci",3237,3))

    ricciは11111ポートで傍受されており、このような操作はもちろんplaybookにも書くことができます.
    6.クラスタの作成/追加/削除、node、resource、fence device、servicegroups、Failover Domainsなどのクラスタの全ライフサイクルを管理するなど、Webインタフェースでクラスタを構成できるようになりました.
    ここでは、Webサービスに関する高可用性サービスについて説明します.
    Manage Clusters->Createはクラスタを作成します
    このインタフェースはまだ簡単でしょう.
    Create Clusterの後、クラスタソフトウェアのインストールを試みます.
    ricciのワークプロセスは、いずれかのnodeで表示されます.
    [root@cent2 ~]# psaux |grep ricci
    ricci     3453    213664  4400 ?       S 
      

    /var/lib/ricci/queue/ luci ricci XML

    [root@cent2 ~]#file /var/lib/ricci/queue/1500004777 
    /var/lib/ricci/queue/1500004777:XML  document text

    7.インストールに しました
    どちらかnodeを して ってみてください
    この のサービスが していない は、 で きてみてもいいですが、 にはOKです.
    8.リソースの
    ここにはfenceデバイスはありません.これに せずに、2つの リソースを し、1つのサービスを して、サービスを します.
    Resources-->Add:リソースの
    IPを します.ここのmaskは のように きます.このように くことはできません.そうしないと、IPを できません.
    rgmanager Startingstopped service service:web1
    rgmanager start onip "/" returned 1 (generic error)
    rgmanager #68:Failed to start service:web1; return value: 1

    scriptリソースを
    9.サービスの
    ここでのリソースは であり,このクラスタ に のサービスがあれば,これらのリソースを してもよいし,
    Service Groupにプライベートリソースを します.
    サービスを します.
    Service Group-->Add:Serviceを します.
    Add Resourceは、 ほど した2つのリソースを します.
    クラスタ のどのノードでもコマンドで できます
    [root@cent3 ~]#clustat
    Cluster Status forha1 @ Sun Jan  8 17:47:40 2017
    Member Status:Quorate
     
     Member Name                                                     ID  Status
     ------ ----                                                    ---- ------
                                                          1 Online, rgmanager
                                                          2 Online, Local, rgmanager
                                                          3 Online, rgmanager
     
     Service Name                                              Owner (Last)                                              State         
     ------- ----                                              ----- ------                                              -----         
     service:web1                                                                                          started

    cent 2ではipもhttpもサービスが まっています
    [root@cent2 ~]# ipa
    1: lo: mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd00:00:00:00:00:00
        inet /8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen1000
        link/ether 00:0c:29:91:b3:11 brdff:ff:ff:ff:ff:ff
        inet /24 brd  global eth0
        inet /24 scope global secondaryeth0
        inet6 fe80::20c:29ff:fe91:b311/64 scopelink 
           valid_lft forever preferred_lft forever
    [root@cent2 ~]#netstat -tunlp |grep 80
    tcp        0     0 :::80                      :::*                        LISTEN      34901/httpd

    10.フェイルオーバのテスト:
    rhcsにおけるサービスの については、/var/log/cluster/ログで できます.
    Jan 08 18:56:59rgmanager [ip] Checking /24, Level 10
    Jan 08 18:56:59rgmanager [ip] /24 present on eth0
    Jan 08 18:56:59rgmanager [ip] Link for eth0: Detected
    Jan 08 18:56:59rgmanager [ip] Link detected on eth0
    Jan 08 18:56:59rgmanager [ip] Local ping to  succeeded

    IPリソースの であるpingを してみることができます
    Jan 08 18:55:49rgmanager [script] Executing /etc///httpd status

    はscriptリソースの であり,スクリプトのみでstatusパラメータを する.
    /etc//http/stopを したところ、ログに のようなものが されました.
    Jan 08 18:56:59rgmanager [script] Executing /etc///httpd status
    Jan 08 18:56:59rgmanager [script] script:http1: status of /etc///httpd failed(returned 3)
    #          
    Jan 08 18:56:59rgmanager status on script "http1" returned 1 (generic error)
    Jan 08 18:56:59rgmanager Stopping service service:web1
    Jan 08 18:56:59rgmanager [script] Executing /etc///httpd stop
    Jan 08 18:56:59rgmanager [ip] Removing IPv4 address /24 from eth0
    #              web1   
    Jan 08 18:57:09rgmanager Service service:web1 is recovering
    Jan 08 18:57:14rgmanager Service service:web1 is now running on member 2
    #  web1     member 2     ,member 2     

    のクラスタのステータスを するには、 の に います.
    [root@cent3 ~]# clustat 
    Cluster Status for ha1 @ Sun Jan  8 20:25:26 2017
    Member Status: Quorate
    
     Member Name                                                     ID   Status
     ------ ----                                                     ---- ------
                                                           1 Online, rgmanager
                                                           2 Online, Local, rgmanager
                                                           3 Online, rgmanager
    
     Service Name                                               Owner (Last)                                               State         
     ------- ----                                               ----- ------                                               -----         
     service:web1                                                                                            started

    このscriptのリソースがあなたのニーズに わない は、apacheリソースを してみてください.このscriptのリソースチェック が すぎると っても、スクリプトに を して を することができます.
    11.ノードをシャットダウンして、Serviceの を しようとします.
    cent 3をオフにした 、サービスはcent 4に した.
    [root@cent2 ~]#clustat
    Cluster Status forha1 @ Sun Jan  8 20:35:42 2017
    Member Status:Quorate
     
     Member Name                                                    ID   Status
     ------ ----                                                    ---- ------
                                                          1 Online, Local, rgmanager
                                                          2 Offline
                                                          3 Online, rgmanager
     
     Service Name                                              Owner (Last)                                               State        
     ------- ----                                              ----- ------                                              -----        
     service:web1                                                                                           started

    にcent 4をオフにすると、サービスはまたcent 2に します.
    [root@cent2 ~]#clustat
    Cluster Status forha1 @ Sun Jan  8 20:36:27 2017
    Member Status:Quorate
     
     Member Name                                                    ID   Status
     ------ ----                                                     ---- ------
                                                          1 Online, Local, rgmanager
                                                          2 Offline
                                                          3 Online
     
     Service Name                                              Owner (Last)                                              State        
     ------- ----                                               ----- ------                                              -----        
     service:web1                                                                                          started

    ここでOnlineが されているのは、シャットダウン であり、まだ にシャットダウンされていないためです.
    、 のプロンプトが されます.
    [root@cent2 ~]#
    Message fromsyslogd@cent2 at Jan  8 20:36:42 ...
     rgmanager[5685]: #1: Quorum Dissolved

    ログに のように されます.
    Jan 08 20:35:01rgmanager Member 2 shutting down
     
    Jan 08 20:36:18rgmanager Member 3 shutting down
    Jan 08 20:36:18rgmanager Starting stopped service service:web1
    Jan 08 20:36:18rgmanager [ip] Link for eth0: Detected
    Jan 08 20:36:19rgmanager [ip] Adding IPv4 address /24 to eth0
    Jan 08 20:36:19rgmanager [ip] Pinging addr  from dev eth0
    Jan 08 20:36:21rgmanager [ip] Sending gratuitous ARP:  00:0c:29:91:b3:11 brdff:ff:ff:ff:ff:ff
    Jan 08 20:36:22rgmanager [script] Executing /etc///httpd start
    Jan 08 20:36:22rgmanager Service service:web1 started
    Jan 08 20:36:42rgmanager #1: Quorum Dissolved
     
    Message fromsyslogd@cent2 at Jan  8 20:36:42 ...
     rgmanager[5685]: #1: Quorum Dissolved
    Jan 08 20:36:42rgmanager [script] Executing /etc///httpd stop
    Jan 08 20:36:42rgmanager [ip] Removing IPv4 address /24 from eth0

    サービスが したのは、 が しているためです
    [root@cent2 ~]#clustat
    Service statesunavailable: Operation requires quorum
    Cluster Status forha1 @ Sun Jan  8 20:37:00 2017
    Member Status:Inquorate
     
     Member Name                                                    ID   Status
     ------ ----                                                    ---- ------
                                                          1 Online, Local
                                                          2 Offline
                                                          3 Offline