一、ceph-deploy之部署ceph集羣

 

環境說明

server:3臺虛擬機,掛載卷/dev/vdb 10G
系統:centos7.2
ceph版本:luminous
repo:
  • 公網-http://download.ceph.com,http://mirrors.aliyun.com
  • 內網-自建mirrors
 

架構說明

node1:admin-node,mon,mgr,osd
node2:osd
node3:osd

 

準備工做

一、安裝centos、epel repo
使用阿里雲mirros, https://opsx.alibaba.com/mirror
  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
  4. mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
  5. curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
二、安裝ceph repo
  1. yum install centos-release-ceph-luminous -y
三、安裝ceph-deploy
  1. yum update -y
  2. yum installl ceph-deploy -y
四、安裝、配置ntp
  1. yum install ntp ntpdate ntp-doc -y
五、安裝ssh(系統自帶請忽略或升級)
確認全部節點的ssh server 運行
  1. yum install openssh-server -y
六、用戶設置
咱們使用root用戶,雖然官方不推薦這樣
配置管理節點到其餘server免密登陸
  1. #生成祕鑰對
  2. ssh-keygen
  3. #將管理節點公鑰注入到其餘server
  4. ssh-copy-id SERVER-
七、確保networking 啓動
八、配置hosts
將ip hostname 寫入/etc/hosts
九、關閉iptables
十、關閉selinux
十一、安裝 yum - plugin - priorities
  1. yum install yum-plugin-priorities -y
 

部署集羣

  1. #在管理節點使用ceph-deploy部署ceph cluster
  2. #建立部署目錄
  3. mkdir ~/my-cluster
  4. cd ~/my-cluster
  5. #從頭開始(非第一次部署ceph,清理環境)
  6. ceph-deploy purge {ceph-node}[{ceph-node}]
  7. ceph-deploy purgedata {ceph-node}[{ceph-node}]
  8. ceph-deploy forgetkeys
  9. rm ceph.*
  10. ##建立集羣
  11. #建立monitor節點
  12. #例如:ceph-deploy new {initial-monitor-node(s)}
  13. ceph-deploy new node1
  14. #安裝ceph包到各個節點
  15. ceph-deploy install node1 node2 node3
  16. #初始化monitor節點,獲取keys
  17. ceph-deploy mon create-initial
  18. #上述命令執行成功後,你會在當前目錄下獲得如下keyring文件
  19. ceph.client.admin.keyring
  20. ceph.bootstrap-mgr.keyring
  21. ceph.bootstrap-osd.keyring
  22. ceph.bootstrap-mds.keyring
  23. ceph.bootstrap-rgw.keyring
  24. ceph.bootstrap-rbd.keyring
  25. #將keyring文件分發到各個節點
  26. ceph-deploy admin node1 node2 node3
  27. #部署manager(l版本之上才須要)
  28. ceph-deploy mgr create node1
  29. #部署osd節點(這裏使用虛擬機,掛載了/dev/vdb卷)
  30. ceph-deploy osd create node1:/dev/vdb node2:/dev/vdb node3:/dev/vdb
  31. #檢查集羣,在管理節點執行
  32. ceph health
  33. ceph -s

擴展集羣

node1 擴展了metadata,(rgw)
node2 擴展了 metadata, monitor
node3 擴展了 metadata, monitor
  1. #添加metadate server
  2. ceph-deploy mds create node1
  3. #添加monitors
  4. ceph-deploy mon add node2 node3
  5. #添加新的monitor節點以後,ceph會同步monitor,選舉表明quorum
  6. #查看quorum狀態
  7. ceph quorum_status --format json-pretty
  8. #添加managers
  9. #manager使用active/standby模式,多節點部署,能夠在master down時,無縫頂替
  10. ceph-deploy mgr create node2 node3
  11. #添加rgw實例
  12. #爲了使用ceph object gateway,須要部署rgw實
  13. ceph-deploy rgw create node1
  14. #rgw默認監聽端口是7480,能夠經過編輯ceph.conf修改端口
  15. [client]
  16. rgw frontends = civetweb port=80

存儲、檢索對象數據

爲了存儲對象數據,ceph client須要具有:
1.設置一個對象名
2.指定一個pool
ceph client 檢索最近的集羣map和CRUSH算法去計算怎樣映射對象到PG, 而後計算如何動態映射PG到OSD,
只須要對象name和pool name 便可找到對象的位置。
  1. ceph osd map {poolname}{object-name}
練習:定位對象
  1. #建立一個對象,測試文件
  2. echo {Test-data}> testfiles.txt
  3. ceph osd pool create mytest 8
  4. #使用rados put 命令指定對象名,含有對象數據的測試文件,pool name
  5. #rados put {object-name} {file-path} --pool=mytest
  6. rados put test-object-1 testfile.txt --pool=mytest
  7. #驗證ceph集羣已經存儲了此object
  8. rados -p mytest ls
  9. #找到對象位置
  10. #ceph osd map {pool-name} {object-name}
  11. ceph osd map mytest test-oobject-1
  12. #ceph會輸出對象位置
  13. osdmap e537 pool 'mytest'(1) object 'test-object-1'-> pg 1.d1743484(1.4)-> up [1,0] acting [1,0]
  14. #刪除測試對象object
  15. rados rm test-object-1--pool-mytest
  16. #刪除mytest pool
  17. ceph osd pool rm mytest
隨着集羣的發展,對象位置可能會動態變化。
Ceph的動態從新平衡的一個好處是,Ceph可讓您沒必要手動執行數據遷移或平衡。
 
tip:若是虛擬機沒有硬盤,可以使用裸設備模擬
  1. #安裝lvm
  2. yum install lvm2 -y
  3. #建立虛擬磁盤
  4. mkdir /ceph && dd if=/dev/zero of=/ceph/ceph-volumes.img bs=1M count=10240 oflag=direct
  5. sgdisk -g --clear /ceph/ceph-volumes.img
  6. vgcreate ceph-volumes $(losetup --show -f /ceph/ceph-volumes.img)
  7. lvcreate -L 9G -n ceph1 ceph-volumes
  8. mkfs.xfs -f /dev/ceph-volumes/ceph1
  9.  
  10. #掛載
  11. mkdir -p /var/local/osd1
  12. chown ceph:ceph /var/local/osd1 #修改屬主屬組,否則在添加osd時候會報權限錯誤
  13. mount /dev/ceph-volumes/ceph1 /var/local/osd1
相關文章
相關標籤/搜索