centos 7.3に基づいてインストールしてjewelバージョンのcephクラスタを展開して実戦訓練を行います。

11536 ワード

一、環境準備
  • セットアップcentos 7.3仮想マシンの3台は、公式サイトのソースとディスクのダウンロード速度が非常に遅いので、国内の捜狐鏡像ソースを提供しました。http://mirrors.sohu.com/centos/7.3.1611/isos/x86_64/CentOS-7-x 86_64-DVD-1611.iso
  • は3台の装着された仮想マシンにそれぞれ100 Gのハードディスクを3つずつ追加する。図に示すように、
  • 3.ipの設定
    ceph-1
    ceph-2
    ceph-3
    192.168.4.2.2
    192.168.4.22.201
    192.168.4.22.203
    修正は下記の設定ファイルを参照すればいいです。
    [root@localhost ~ ]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE=Ethernet
    BOOTPROTO=none
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.42.200
    GATEWAY=192.168.42.2
    NETMASK=255.255.255.0
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    
    [root@localhost ~ ]# systemctl restart network
    4.yumソースを修正すると、公式サイトのyumソースが遅くなるかもしれませんので、aliを追加することができます。
    [root@localhost ~ ]# yum clean all
    [root@localhost ~ ]# curl http://mirrors.aliyun.com/repo/Centos-7.repo >/etc/yum.repos.d/CentOS-Base.repo
    [root@localhost ~ ]# curl http://mirrors.aliyun.com/repo/epel-7.repo >/etc/yum.repos.d/epel.repo
    [root@localhost ~ ]# sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
    [root@localhost ~ ]# sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
    [root@localhost ~ ]# yum makecache
    5.ホスト名の変更とソフトウェアのインストール
    [root@localhost ~ ]#
    6.最後の作業は、各ホストのIPをそれぞれの/etc/hostsに追加する。
    [root@localhost ~ ]# vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.42.200  ceph-1
    192.168.42.201  ceph-2
    192.168.42.202  ceph-3
    7.サーバ環境を再起動して発効する。
    二、クラスタ構築
    1.クラスタ構成は以下の通りである。
    ホスト
    IP
    機能
    ceph-1
    192.168.4.2.2
    deploy、mon*1、osd*3
    ceph-2
    192.168.4.22.201
    mon*1、osd*3
    ceph-3
    192.168.42.22
    mon*1、osd*3
    2.環境整理
    前の配置が失敗したら、cephクライアントを削除する必要はなく、または仮想マシンを再構築し、 上で以下の命令を実行するだけで、cephクライアントがインストールされた直後の状態に環境を整理することができます。古いクラスタに構築する前に環境をきれいにすることを強く推奨します。そうでないと各種の異常が発生します。
    [root@ceph-1 cluster]# ps aux|grep ceph |awk '{print $2}'|xargs kill -9
    [root@ceph-1 cluster]# ps aux|grep ceph    #          
    ps -ef|grep ceph
    #      ceph       !!!      ,     。
    umount /var/lib/ceph/osd/*
    rm -rf /var/lib/ceph/osd/*
    rm -rf /var/lib/ceph/mon/*
    rm -rf /var/lib/ceph/mds/*
    rm -rf /var/lib/ceph/bootstrap-mds/*
    rm -rf /var/lib/ceph/bootstrap-osd/*
    rm -rf /var/lib/ceph/bootstrap-rgw/*
    rm -rf /var/lib/ceph/tmp/*
    rm -rf /etc/ceph/*
    rm -rf /var/run/ceph/*
    3.yumソース及びcephのインストール
                  
    yum clean all
    rm -rf /etc/yum.repos.d/*.repo
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
    sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
    sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
    4.cephのソースを追加する
    vim /etc/yum.repos.d/ceph.repo
          :
    [ceph]
    name=ceph
    baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/x86_64/
    gpgcheck=0
    [ceph-noarch]
    name=cephnoarch
    baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/noarch/
    gpgcheck=0
    5.cephクライアントをインストールする:
    yum makecache
    yum install ceph ceph-radosgw rdate -y
      selinux&firewalld
    sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    setenforce 0
    systemctl stop firewalld 
    systemctl disable firewalld
            :
    yum -y install rdate
    rdate -s time-a.nist.gov
    echo rdate -s time-a.nist.gov >> /etc/rc.d/rc.local 
    chmod +x /etc/rc.d/rc.local
    6.展開開始
    配置ノード(ceph-1)にceph-deployをインストールし、以下の展開ノードはceph-1を指す。
    [root@ceph-1 ~]# yum -y install ceph-deploy
    [root@ceph-1 ~]# ceph-deploy --version
    1.5.34
    [root@ceph-1 ~]# ceph -v
    ceph version 10.2.2 (45107e21c568dd033c2f0a3107dec8f0b0e58374)
    7.部署ノードで部署ディレクトリを作成し、展開を開始する:
    [root@ceph-1 ~]# cd
    [root@ceph-1 ~]# mkdir cluster
    [root@ceph-1 ~]# cd cluster/
    [root@ceph-1 cluster]# ceph-deploy new ceph-1 ceph-2 ceph-3
    これまでssh-copy-indが各ノードにない場合は、パスワードを入力する必要があります。
    [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
    [ceph_deploy.cli][INFO  ] Invoked (1.5.34): /usr/bin/ceph-deploy new ceph-1 ceph-2 ceph-3
    [ceph_deploy.cli][INFO  ] ceph-deploy options:
    [ceph_deploy.cli][INFO  ]  username                      : None
    [ceph_deploy.cli][INFO  ]  func                          : 
    [ceph_deploy.cli][INFO  ]  verbose                       : False
    [ceph_deploy.cli][INFO  ]  overwrite_conf                : False
    [ceph_deploy.cli][INFO  ]  quiet                         : False
    [ceph_deploy.cli][INFO  ]  cd_conf                       : 
    [ceph_deploy.cli][INFO  ]  cluster                       : ceph
    [ceph_deploy.cli][INFO  ]  ssh_copykey                   : True
    [ceph_deploy.cli][INFO  ]  mon                           : ['ceph-1', 'ceph-2', 'ceph-3']
    ..
    ..
    ceph_deploy.new][WARNIN] could not connect via SSH
    [ceph_deploy.new][INFO  ] will connect again with password prompt
    The authenticity of host 'ceph-2 (192.168.57.223)' can't be established.
    ECDSA key fingerprint is ef:e2:3e:38:fa:47:f4:61:b7:4d:d3:24:de:d4:7a:54.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'ceph-2,192.168.57.223' (ECDSA) to the list of known hosts.
    root
    root@ceph-2's password: 
    [ceph-2][DEBUG ] connected to host: ceph-2
    ..
    ..
    [cephudeploy.new][DEBUG]Resoloving host ceph-3
    [cephudeploy.new][DEBUG]Monitor ceph-3 at 192.168.57.224
    [cephudeploy.new][DEBUG]Monitor initial members are['ceph-1','ceph-2','ceph-3']
    [cephudeploy.new][DEBUG]Monitor addrs are['192.168.57.222],'192.168.57.223','192.168.57.224']
    [cephudeploy.new][DEBUG]Creating a random mon key…
    [cephudeploy.new][DEBUG]Writing monight keyring to ceph.mon.keyring…
    [cephudeploy.new][DEBUG]Writing initial config to ceph.com nf…
    ディレクトリの内容は以下の通りです。
    [root@ceph-1 cluster]# ls
    ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring
    8.自分のIP構成によって、ceph.com nfにpublic_を追加する。networkは、モン間の時差許容範囲を少し拡大しています(デフォルトは0.05 sです。現在は2 sに変更します)。
    [root@ceph-1 cluster]# echo public_network=192.168.57.0/24 >> ceph.conf 
    [root@ceph-1 cluster]# echo mon_clock_drift_allowed = 2 >> ceph.conf 
    [root@ceph-1 cluster]# cat ceph.conf 
    [global]
    fsid = 0248817a-b758-4d6b-a217-11248b098e10
    mon_initial_members = ceph-1, ceph-2, ceph-3
    mon_host = 192.168.57.222,192.168.57.223,192.168.57.224
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    public_network=192.168.57.0/24
    mon_clock_drift_allowed = 2
    9.モノノイドの展開を開始する:
    [root@ceph-1 cluster]# ceph-deploy mon create-initial
    ..
    ..  log
    [root@ceph-1 cluster]# ls
    ceph.bootstrap-mds.keyring  ceph.bootstrap-rgw.keyring  ceph.conf             ceph.mon.keyring
    ceph.bootstrap-osd.keyring  ceph.client.admin.keyring   ceph-deploy-ceph.log
    10.クラスタ状態を確認する:
    [root@ceph-1 cluster]# ceph -s
        cluster 0248817a-b758-4d6b-a217-11248b098e10
         health HEALTH_ERR
                no osds
                Monitor clock skew detected 
         monmap e1: 3 mons at {ceph-1=192.168.57.222:6789/0,ceph-2=192.168.57.223:6789/0,ceph-3=192.168.57.224:6789/0}
                election epoch 6, quorum 0,1,2 ceph-1,ceph-2,ceph-3
         osdmap e1: 0 osds: 0 up, 0 in
                flags sortbitwise
          pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
                0 kB used, 0 kB / 0 kB avail
                      64 creating
    11.OSDの展開開始:
    ceph-deploy --overwrite-conf osd prepare ceph-1:/dev/sdb ceph-1:/dev/sdc ceph-1:/dev/sdd ceph-2:/dev/sdb ceph-2:/dev/sdc ceph-2:/dev/sdd ceph-3:/dev/sdb ceph-3:/dev/sdc ceph-3:/dev/sdd  --zap-disk
    ceph-deploy --overwrite-conf osd activate ceph-1:/dev/sdb1 ceph-1:/dev/sdc1 ceph-1:/dev/sdd1 ceph-2:/dev/sdb1 ceph-2:/dev/sdc1 ceph-2:/dev/sdd1 ceph-3:/dev/sdb1 ceph-3:/dev/sdc1 ceph-3:/dev/sdd1
    私は配置時に小さい問題を出しました。OSDが成功しなかった(すべてのOSDの配備が終わったら、問題OSDを再配置すれば解決できます)があります。もし予期しないなら、クラスタ状態は以下のようになるべきです。
    [root@ceph-1 cluster]# ceph -s
        cluster 0248817a-b758-4d6b-a217-11248b098e10
         health HEALTH_WARN
                too few PGs per OSD (21  
      

    12. WARN, rbd PG :

    [root@ceph-1 cluster]# ceph osd pool set rbd pg_num 128
    set pool 0 pg_num to 128
    [root@ceph-1 cluster]# ceph osd pool set rbd pgp_num 128
    set pool 0 pgp_num to 128
    [root@ceph-1 cluster]# ceph -s
        cluster 0248817a-b758-4d6b-a217-11248b098e10
         health HEALTH_ERR
                19 pgs are stuck inactive for more than 300 seconds
                12 pgs peering
                19 pgs stuck inactive
         monmap e1: 3 mons at {ceph-1=192.168.57.222:6789/0,ceph-2=192.168.57.223:6789/0,ceph-3=192.168.57.224:6789/0}
                election epoch 22, quorum 0,1,2 ceph-1,ceph-2,ceph-3
         osdmap e49: 9 osds: 9 up, 9 in
                flags sortbitwise
          pgmap v96: 128 pgs, 1 pools, 0 bytes data, 0 objects
                308 MB used, 18377 GB / 18378 GB avail
                     103 active+clean
                      12 peering
                       9 creating
                       4 activating
    [root@ceph-1 cluster]# ceph -s
        cluster 0248817a-b758-4d6b-a217-11248b098e10
         health HEALTH_OK
         monmap e1: 3 mons at {ceph-1=192.168.57.222:6789/0,ceph-2=192.168.57.223:6789/0,ceph-3=192.168.57.224:6789/0}
                election epoch 22, quorum 0,1,2 ceph-1,ceph-2,ceph-3
         osdmap e49: 9 osds: 9 up, 9 in
                flags sortbitwise
          pgmap v99: 128 pgs, 1 pools, 0 bytes data, 0 objects
                310 MB used, 18377 GB / 18378 GB avail
                     128 active+clean
    これでクラスタ が しました。
    13.config
    あるノードの/etc/ceph/ceph.com nfファイルを する ではなく、ノードを する(ここではceph-1:/root/cluster/ceph.com f)ディレクトリの で してください。ノードが になる 、 つ つ することができないので、 り が くて です。
    が したら、 のコマンドを して、confファイルを ノードに します。
    [root@ceph-1 cluster]# ceph-deploy --overwrite-conf config push ceph-1 ceph-2 ceph-3
    この 、 ノードのMonitorサービスを し、 のセクションを してください。
    14.mon&osd
    #monitor start/stop/restart
    #ceph-1   monitor        。
    systemctl start [email protected] 
    systemctl restart [email protected]
    systemctl stop [email protected]
    #OSD start/stop/restart 
    #0     OSD id,    `ceph osd tree`  
    systemctl start/stop/restart [email protected]
    [root@ceph-1 cluster]# ceph osd tree
    ID WEIGHT   TYPE NAME       UP/DOWN REWEIGHT PRIMARY-AFFINITY 
    -1 17.94685 root default                                      
    -2  5.98228     host ceph-1                                   
     0  1.99409         osd.0        up  1.00000          1.00000 
     1  1.99409         osd.1        up  1.00000          1.00000 
     8  1.99409         osd.2        up  1.00000          1.00000 
    -3  5.98228     host ceph-2                                   
     2  1.99409         osd.3        up  1.00000          1.00000 
     3  1.99409         osd.4        up  1.00000          1.00000 
     4  1.99409         osd.5        up  1.00000          1.00000 
    -4  5.98228     host ceph-3                                   
     5  1.99409         osd.6        up  1.00000          1.00000 
     6  1.99409         osd.7        up  1.00000          1.00000 
     7  1.99409         osd.8        up  1.00000          1.00000