ceph安裝文檔(Luminous版)

1、安裝ntp

我們建議在所有 Ceph 節點上安裝 NTP 服務(特別是 Ceph Monitor 節點),以免因時鐘漂移導致故障,詳情見時鐘

sudo yum install ntp ntpdate ntp-doc
// yum -y install ntpdate ntp	

vim /etc/ntp.conf

server ntp1.aliyun.com iburst
systemctl restart ntpd

2、安裝 SSH 服務器

所有 Ceph 節點上執行如下步驟:

sudo yum install openssh-server

3、關閉防火牆、selinux,配置hosts文件

  • 關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
  • 關閉selinux
setenforce 0
vim /etc/selinux/config
  • 配置hosts文件

    vim /etc/hosts

192.168.0.88 controller
192.168.0.197 node1
192.168.0.245 node2
192.168.0.148 node3
  • 修改主機名
hostnamectl set-hostname node0001

4、在各 Ceph 節點創建新用戶

//創建賬戶
sudo useradd -d /home/ceph-admin -m ceph-admin
//修改密碼
sudo passwd ceph-admin
echo "ceph-admin" | passwd --stdin ceph-admin
//確保各 Ceph 節點上新創建的用戶都有 sudo 權限
echo "ceph-admin ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ceph-admin
chmod 0440 /etc/sudoers.d/ceph-admin
//查看
cat /etc/sudoers.d/ceph-admin

5、允許無密碼 SSH 登錄

正因爲 ceph-deploy 不支持輸入密碼,你必須在管理節點上生成 SSH 密鑰並把其公鑰分發到各 Ceph 節點。 ceph-deploy 會嘗試給初始 monitors 生成 SSH 密鑰對。

  1. 生成 SSH 密鑰對,但不要用 sudoroot 用戶。提示 “Enter passphrase” 時,直接回車,口令即爲空:
ssh-keygen

Generating public/private key pair.
Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /ceph-admin/.ssh/id_rsa.
Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.

​ 2.把公鑰拷貝到各 Ceph 節點

ssh-copy-id ceph-admin@controller
ssh-copy-id ceph-admin@node1
ssh-copy-id ceph-admin@node2
ssh-copy-id ceph-admin@node3

​ 3.配置sudo不需要tty(控制節點)

sed -i 's/Default requiretty/#Default requiretty/' /etc/sudoers

​ 4.推薦做法)修改 ceph-deploy 管理節點上的 ~/.ssh/config 文件,這樣 ceph-deploy 就能用你所建的用戶名登錄 Ceph 節點了,而無需每次執行 ceph-deploy 都要指定 --username {username} 。這樣做同時也簡化了 sshscp 的用法。把 {username} 替換成你創建的用戶名。

Host node1
   Hostname node1
   User {username}
Host node2
   Hostname node2
   User {username}
Host node3
   Hostname node3
   User {username}

6、管理節點安裝ceph-deploy工具

  • 增加 yum配置文件(各個節點都需要增加yum源)
Luminous版的源:
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-luminous/el7
export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc

Jewel版的源:
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

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
  • 更新軟件源並安裝ceph-deploy 管理工具
[root@ceph01 ~]# yum clean all && yum list
[root@ceph01 ~]# yum -y install ceph-deploy

7.創建monitor服務

mkdir my-cluster && cd my-cluster
#mon安裝在node1節點
ceph-deploy new node1

8、修改副本數

[ceph-admin@controller ceph]# vim ceph.conf 配置文件的默認副本數從3改成2,這樣只有兩個osd也能達到active+clean狀態,把下面這行加入到[global]段(可選配置)
[global]
fsid = c255a5ad-b772-402a-bd81-09738693fe10
mon_initial_members = node1
mon_host = 192.168.0.197
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size = 2

9、在所有節點安裝ceph

  • 安裝 Ceph

    ceph-deploy install node1 node2 node3
    
  • 安裝ceph monitor

    ceph-deploy mon create node1
    
  • 收集節點的keyring文件

    ceph-deploy  gatherkeys node1
    

10、部署osd服務

  • 格式化

    mkfs.xfs -f /dev/sdb
    
  • 掛載

    mkdir -p /var/local/osd0
    mount /dev/sdb  /var/local/osd0/
    
    //卸載
    fuser -km /dev/sdb
    umount /dev/sdb
    
    
    //自動掛載
    vim /etc/fstab
    /dev/sdb /var/local/osd0 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
    
  • 在各個節點上給/var/local/osd1/和/var/local/osd2/添加權限

    chmod 777 -R /var/local/osd1/
    
  • 創建激活osd

    ceph-deploy osd prepare node1:/var/local/osd0 node2:/var/local/osd1 node3:/var/local/osd2
    
    //激活
    ceph-deploy osd activate node1:/var/local/osd0 node2:/var/local/osd1 node3:/var/local/osd2
    
    //重新覆蓋osd
    ceph-deploy --overwrite-conf osd  prepare node1:/var/local/osd0 node2:/var/local/osd1 node3:/var/local/osd2 
    
  • 查看狀態

    //統一配置(用ceph-deploy把配置文件和admin密鑰拷貝到所有節點,這樣每次執行Ceph命令行時就無需指定monitor地址和ceph.client.admin.keyring了)
    ceph-deploy admin node1 node2 node3
    
    ceph-deploy osd list node1 node2 node3
    

    11、其他操作

    ceph osd的刪除

    如果要刪除某一個osd(不管是處於up狀態的還是處於down狀態的)

    A) 如果osd處於up狀態,第一步就是要將up狀態轉換爲down狀態,執行命令ceph osd down osd.num(此爲osd id)
    
    B) 如果osd處於down狀態,直接執行命令ceph osd out osd.id, 將osd標記爲out狀態。
    
    C) 接着執行命令ceph osd rm osd.id 將osd 直接刪除。
    
    D) 接下來刪除cursh 中與osd.id對應的map,可以執行命令ceph osd crush rm osd.id。
    
    E) 最後刪除osd.id的auth,命令爲:ceph auth del osd.id。
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章