安裝前準備工作
1柏蘑、準備5臺linux主機罚舱,內核版本3.10
2、確保每臺主機上軟件包最新
yum -y update
3、設置deploy主機的/etc/hosts文件洼冻,確保deploy主機可以通過主機名來訪問其他主機
192.168.21.71 node1
192.168.21.72 node2
192.168.21.73 node3
192.168.21.74 node4
192.168.21.75 node5
4尖阔、每臺主機上添加一個用戶寡具,注意盡量不要使用ceph读宙,因為osd守護進程需要占用此用戶
useradd cephnode
echo '123' | passwd --stdin cephnode
5、設置deploy主機可以無密碼訪問其他主機懈词,設置完畢以后嘗試無密碼登錄一下.
su - cephnode
ssh-key-gen
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
ssh-copy-id node4
ssh-copy-id node5
ssh node1
6蛇耀、(推薦做法)修改 ceph-deploy 管理節(jié)點上的 ~/.ssh/config 文件,這樣 ceph-deploy 就能用你所建的用戶名登錄 Ceph 節(jié)點了坎弯,而無需每次執(zhí)行 ceph-deploy 都要指定 --username {username} 纺涤。這樣做同時也簡化了 ssh 和 scp 的用法译暂。把 {username} 替換成你創(chuàng)建的用戶名。
Host node1
Hostname node1
User cephnode
Host node2
Hostname node2
User cephnode
Host node3
Hostname node3
User cephnode
Host node4
Hostname node4
User cephnode
Host node5
Hostname node5
User cephnode
7撩炊、確保各 Ceph 節(jié)點上新創(chuàng)建的用戶都有 sudo 權限
echo "cephnode ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephnode
sudo chmod 0440 /etc/sudoers.d/cephnode
8外永、因為deploy節(jié)點需要無密碼登錄到各節(jié)點執(zhí)行命令、而且不是通過tty方式執(zhí)行拧咳,所以得設置每臺主機上的 visudo 配置文件
visudo
找到 Defaults requiretty 修改為Defaults:cephnode !requiretty 或者如果沒找到對應項就直接添加 Defaults:cephnode !requiretty
9伯顶、設置selinux iptables 為關閉
setenforce 0
systemctl stop firewalld.service
10、在node1配置ceph-deploy的yum源J版本(其中gpgcheck和gpgkey可以關閉)
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-jewel/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
11骆膝、在各節(jié)點設置ceph的yum源J版本
[ceph]
name=Ceph packages
baseurl=http://download.ceph.com/rpm-jewel/el7/x86_64/
enabled=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
gpgcheck=1
12祭衩、在node1上安裝ceph-deploy
yum -y install ceph-deploy
13、在各節(jié)點安裝ntp以及openssh-server阅签,并且設置ntp服務器為s2c.time.edu.cn掐暮,來同步時間,避免發(fā)生時鐘漂移
yum -y install ntp openssh-server
crontab -e
*/1 * * * * /usr/sbin/ntpdate s2c.time.edu.cn > /dev/null 2>&1
2政钟、集群搭建
1劫乱、在deploy節(jié)點上執(zhí)行
su - cephnode
mkdir my-cluster 用來存放配置文件等
cd my-cluster
2、創(chuàng)建集群锥涕,如果創(chuàng)建成功,則在當前目錄下有三個文件被創(chuàng)建出來
ceph-deploy new node2
3狭吼、修改配置文件 ceph.conf
+++ osd pool default size = 2
4层坠、安裝 Ceph(也可以獨自每個節(jié)點安裝、如果出現(xiàn)了某些軟件包版本不夠的問題刁笙,請確認epel-release是否安裝破花,如果安裝,還有這個問題疲吸,請選擇較低的ceph版本源)
ceph-deploy install node1 node2 node3 node4 node5
5座每、配置初始 monitor(s)、并收集所有密鑰.(將node2 設置為monitor摘悴,如果設置成功峭梳,則當前目錄下會產生會多文件)
ceph-deploy mon create-initial
6、從管理節(jié)點執(zhí)行 ceph-deploy 來準備 OSD蹂喻,注意葱椭,如果是單獨的磁盤,直接使用一下目錄
ceph-deploy osd prepare node3:/dev/sdb1 node4:/dev/sdb1
7口四、激活osd
ceph-deploy osd activate node3:/dev/sdb1 node4:/dev/sdb1
8孵运、用 ceph-deploy 把配置文件和 admin 密鑰拷貝到管理節(jié)點和 Ceph 節(jié)點,這樣你每次執(zhí)行 Ceph 命令行時就無需指定 monitor 地址和 ceph.client.admin.keyring 了
ceph-deploy admin node5 node2 node3 node4 node1
9蔓彩、確保對 ceph.client.admin.keyring 有正確的操作權限
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
10治笨、查看健康狀態(tài)
ceph health
3驳概、以塊設備掛載集群
1、新建一個ceph pool旷赖,(兩個數(shù)字為 {pg-num} [{pgp-num})
ceph osd pool create rbdpool 100 100
2顺又、在pool中新建一個鏡像
rbd create rbdpoolimages --size 80960 -p rbdpool 或者 rbd create rbdpool/rbdpoolimages --size 102400
在內核為3.10的不能實現(xiàn)絕大部分features,使用此命令 在后邊加上 --image-format 2 --image-feature layering
3杠愧、查看相關pool以及image信息
rbd ls rbdpool 查看池中信息
rbd --image rbdpoolimages -p rbdpool info 查詢一個池內的鏡像信息
4待榔、把鏡像映射到pool塊設備中,在安裝了ceph以及執(zhí)行過ceph-deploy admin node 命令的客戶端上以root身份執(zhí)行執(zhí)行
rbd map rbdpoolimages -p rbdpool
5流济、格式化映射的設備塊
mkfs.ext4 /dev/rbd0
6锐锣、取消映射塊設備、查看鏡像映射map
rbd unmap /dev/rbd1 取消映射塊設備
rbd showmapped 查看鏡像映射map
7绳瘟、擴容image
rbd resize -p rbdpool --size 2T rbdpoolimages
4雕憔、重頭再來
1、如果在某些地方碰到麻煩糖声,想從頭再來斤彼,可以用下列命令清除配置
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys
2、下列命令可以連 Ceph 安裝包一起清除
ceph-deploy purge {ceph-node} [{ceph-node}]
5蘸泻、擴展集群
1琉苇、一個基本的集群啟動并開始運行后,下一步就是擴展集群悦施。在 node2 上添加一個 OSD 守護進程和一個元數(shù)據服務器并扇。然后分別在 node3 和 node4 上添加 Ceph Monitor ,以形成 Monitors 的法定人數(shù)抡诞。(目前狀態(tài)是有三個節(jié)點都在運行這osd 和 monitor穷蛹,其中有一個運行著元數(shù)據mds)
ceph-deploy osd prepare node2:/dev/sdb1
ceph-deploy osd activate node2:/dev/sdb1
2、新增 Monitor 用來達到高可用昼汗。
ceph-deploy mon add node2
ceph-deploy mon add node3
3肴熏、新增 Monitor 后,Ceph 會自動開始同步并形成法定人數(shù)顷窒。你可以用下面的命令檢查法定人數(shù)狀態(tài)
ceph quorum_status --format json-pretty
4蛙吏、在線擴容已掛載的 image
rbd resize --size 20G testimg -p rbdpool
resize2fs /dev/rbd0
blockdev --getsize64 /dev/rbd0 查看block設備的大小
5、增加mds來使用cephFS
ceph-deploy mds create node1
6鞋吉、雖然已創(chuàng)建了元數(shù)據服務器(存儲集群快速入門)出刷,但如果你沒有創(chuàng)建存儲池和文件系統(tǒng),它是不會變?yōu)榛顒訝顟B(tài)的坯辩、所以接下來創(chuàng)建pool馁龟。并且查看mds狀態(tài)。
ceph osd pool create cephfs_data 1000
ceph osd pool create cephfs_metadata 1000
ceph fs new media cephfs_metadata cephfs_data
ceph mds stat
7漆魔、在client端掛載cephFS
yum install ceph-fuse -y 安裝掛載需要的軟件包
mount.ceph 172.16.20.3:6789:/ /cephfs/ -o name=admin,secret=AQCqK2NYJ2p/LRAAU+uoKx7Q/YfaT5AVqRsAwA== 使用密鑰掛載
或者將secret寫入一個文件中坷檩,然后指定文件
echo AQCqK2NYJ2p/LRAAU+uoKx7Q/YfaT5AVqRsAwA== > /etc/ceph/admin.key
mount.ceph node1,node2:/ /cephfs -o name=admin,secretfile=/etc/ceph/admin.key 可以同時指定多個monitor却音,防止一個monitor宕機
mount -t ceph node1,node2:/ /cephfs -o name=admin,secretfile=/etc/ceph/admin.key
6、常用配置
1矢炼、查看pool的默認副本數(shù)
ceph osd dump | grep 'replicated size'
2系瓢、查看osd、pg相關設置
ceph osd dump
ceph pg dump
3句灌、RBD操作
rados lspools 查看穿件的pool
rados mkpool pool 創(chuàng)建一個存儲池
rbd create pool/image1 --size 1024M image-format 2 創(chuàng)建image
rbd ls pool 查看創(chuàng)建出的image
rbd info pool/image1 查看image1的詳細信息
rbd rm pool/image1 刪除image1
4夷陋、osd 操作
ceph osd out 2 將第二個osd節(jié)點從節(jié)點中去掉
ceph osd in 2 將第二個osd節(jié)點從加入節(jié)點中
rados -p cephfs_data ls 列出某個pool中的所有object
ceph osd map cephfs_data 10000000003.00000000 查看某個object(10000000003.00000000)的詳細信息
7、參考博客資料
1胰锌、添加osd
http://blog.csdn.net/heivy/article/details/50622786
2骗绕、其他相關資料
http://www.centoscn.com/CentosServer/test/2015/0521/5489.html
http://www.2cto.com/os/201411/354299.html
http://blog.csdn.net/youyume20/article/details/50574908
http://docs.openfans.org/ceph
http://sangh.blog.51cto.com/6892345/1884398 "ceph各種操作 "
http://docs.ceph.org.cn/
http://michaelkang.blog.51cto.com/1553154/1786309 map時候報錯解決 rbd create rbd/test1 --size 10G --image-format 2 --image-feature layering
http://michaelkang.blog.51cto.com/1553154/1675822/ 掛載rbd到client步驟