ceph最新版安裝教程

一、準備環境

4臺adminos7環境,存儲節點上兩塊磁盤(sda操作系統,sdb數據盤)

172.16.8.91 client
172.16.8.92 admin
172.16.8.93 storage1
172.16.8.94 storage2
172.16.8.95 storage3

二、配置環境

1、修改主機名(對應節點上執行)

hostnamectl set-hostname client

hostnamectl set-hostname admin

hostnamectl set-hostname storage1

hostnamectl set-hostname storage2

hostnamectl set-hostname storage3

2、配置hosts文件(每個節點上均執行)

cat <<"EOF">/etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.8.91 client
172.16.8.92 admin
172.16.8.93 storage1
172.16.8.94 storage2
172.16.8.95 storage3
EOF

3、修改sudo配置文件,註釋下面行(每個節點上均執行)
執行visudo命令註釋下面一行

#Defaults requiretty

4、ceph的官方源在國外,網速比較慢,此處添加ceph源爲阿里源(每個節點上均執行)

cat <<END >/etc/yum.repos.d/ceph.repo

[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
END

5、關閉selinux和firewall(各個節點)

setenforce 0

sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config

systemctl disable firewalld.service

systemctl stop firewalld.service

6、各個節點更新系統(各個節點)

yum update -y

7、創建用戶並設置密碼爲Changeme_123(各個節點)

useradd admin

echo Changeme_123 | passwd --stdin admin

8、配置sudo權限(各個節點)

echo -e 'Defaults:admin !requiretty\nadmin ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph

chmod 440 /etc/sudoers.d/ceph

9、安裝NTP(各個節點)

yum -y install ntp

修改配置文件/etc/ntp.conf

server NTP-server
注意:

NTP-server修改爲自己的NTP服務器,如果局域網內無NTP服務器,此處可以用默認配置,採用centos官方ntp服務器

啓動服務並設置開機啓動

systemctl start ntpd

systemctl enable ntpd

查看ntp狀態

ntpq -p

注意:

如果ntp時鐘不同步,後面ceph服務起不來!

9、重啓(各個節點)

reboot

1
三、安裝和配置ceph(以下操作均在admin節點上執行)

1、配置互信

su - admin

$ ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
$ ssh-copy-id 172.16.8.91
$ ssh-copy-id 172.16.8.92
$ ssh-copy-id 172.16.8.93
$ ssh-copy-id 172.16.8.94
$ ssh-copy-id 172.16.8.95
exit

2、安裝ceph-deploy包

$ sudo yum -y install ceph-deploy
3、創建配置文件目錄

$ sudo mkdir /etc/ceph
$ cd /etc/ceph
$ ceph-deploy new storage1

4、在各個節點上安裝ceph包
$ ceph-deploy install admin client storage1 storage2 storage3

5、設置monitor和key
$ ceph-deploy mon create-initial

6、啓動osd,如果磁盤比較多,安裝規劃磁盤名稱,重複執行即可
$ ceph-deploy disk zap storage1:sdb
$ ceph-deploy disk zap storage2:sdb
$ ceph-deploy disk zap storage3:sdb
$ ceph-deploy --overwrite-conf osd create storage1:sdb
$ ceph-deploy --overwrite-conf osd create storage2:sdb
$ ceph-deploy --overwrite-conf osd create storage3:sdb

7、將配置文件拷貝到各個節點上

$ ceph-deploy admin client storage1 storage2 storage3
$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
8、創建mon(一般爲奇數個,此處爲三個)

$ ceph-deploy --overwrite-conf mon create storage1
$ ceph-deploy --overwrite-conf admin storage1

$ ceph-deploy --overwrite-conf mon create storage2
$ ceph-deploy --overwrite-conf admin storage2

$ ceph-deploy --overwrite-conf mon create storage3
$ ceph-deploy --overwrite-conf admin storage3

9、驗證
$ ceph health
HEALTH_OK
四、ceph集羣對外提供塊存儲服務(均在client上執行)
1、通過admin用戶登錄client節點

[admin@client ~]$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
2、創建一個存儲池

[admin@client ~]$ ceph osd pool create test 128
注意:

創建pool 通常在創建pool之前,需要覆蓋默認的pg_num,官方推薦:
若少於5個OSD, 設置pg_num爲128。
5~10個OSD,設置pg_num爲512。
10~50個OSD,設置pg_num爲4096。
超過50個OSD,可以參考pgcalc計算

3、創建一個10G的塊
[admin@client ~]$ rbd create --size 10G disk01 --pool test

4、查看rbd
[admin@client ~]$ rbd ls -l
NAME SIZE PARENT FMT PROT LOCK
disk01 10240M 2

5、將10G的塊映射到本地
[admin@client ~]$ sudo rbd map disk01
/dev/rbd0

注意:
因爲adminos7默認內核版本比較低,ceph的一些特性無法使用,需要手動禁用才能map成功。命令如下

$ rbd feature disable test/rbd exclusive-lock object-map fast-diff deep-flatten

6、查看映射
[admin@client ~]$ rbd showmapped
id pool image snap device
0 rbd disk01 - /dev/rbd0

7、格式化爲xfs格式
[admin@client ~]$ sudo mkfs.xfs /dev/rbd0

8、掛載rbd0到本地的目錄中
[admin@client ~]$ sudo mount /dev/rbd0 /mnt
[admin@client ~]$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/cl-root xfs 26G 1.8G 25G 7% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 8.4M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 xfs 1014M 231M 784M 23% /boot
tmpfs tmpfs 396M 0 396M 0% /run/user/0
/dev/rbd0 xfs 10G 33M 10G 1% /mnt

五、使用ceph集羣提供cephfs文件系統
1、在admin節點上執行如下命令,啓用storage1上的mds服務
[admin@admin ceph]$ ceph-deploy mds create storage1

2、在storage1節點上進行如下操作
[admin@storage1 ~]$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

創建名爲cephfs_data的pool
[admin@storage1 ~]$ ceph osd pool create cephfs_data 128
pool 'cephfs_data' created

3、創建名爲cephfs_metadata的pool
[admin@storage1 ~]$ ceph osd pool create cephfs_metadata 128
pool 'cephfs_metadata' created

4、啓用pool
[admin@storage1 ~]$ ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1

5、查看
[admin@storage1 ~]$ ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

6、查看mds狀態
[admin@storage1 ~]$ ceph mds stat
e4: 1/1/1 up {0=storage1=up:creating}

以下操作在client節點上

7、安裝rpm包
[root@client ~]# yum -y install ceph-fuse

8、獲取admin的key
[root@client ~]# ssh admin@storage1 "sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" > admin.key
[root@client ~]# chmod 600 admin.key

9、掛載
[root@client ~]# mount -t ceph storage1:6789:/ /mnt -o name=admin,secretfile=admin.key
[root@client ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/cl-root xfs 26G 1.9G 25G 7% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 8.4M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 xfs 1014M 231M 784M 23% /boot
tmpfs tmpfs 396M 0 396M 0% /run/user/0
172.16.8.94:6789:/ ceph 78G 21G 58G 27% /mnt

附錄:

卸載
在admin節點上執行卸載所以節點的rpm包

$ ceph-deploy purge admin storage1 storage2 storage3
1
在admin節點上執行,刪除所以節點的配置

$ ceph-deploy purgedata admin storage1 storage2 storage3

$ ceph-deploy forgetkeys

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章