1. 程式人生 > >57.CEPH分布式文件系

57.CEPH分布式文件系

linux

CEPH分布式文件系統

CEPH是一種為優秀的性能,可靠性和可擴展性而設計的統一的,分布式文件系統。

CEPH可以輕松的擴展到數PB容量,支持多種工作負載的高性能,高可靠性。

CEPH四個部分:

Clients客戶端:用來訪問文件系統

CMDS元數據服務器:用來緩存和同步數據

COSD對象存儲群集:用來構成存儲池

CMON集群監視器:用來監視文件系統

CEPH是統一存儲系統,支持三種接口:

Object:有原生的API,同時也兼容swiftS3API

Block:支持精簡配置,快照,克隆。

FilePosixi接口,支持快照。

CEPH的特點:

高擴展性:使用普通的X86服務器,支持10~1000臺服務器,支持1TB

PB級別的擴展。

高可靠性:沒有單點故障,多數據副本,自動管理,自動修復。

高性能:數據分布均衡,並行化度高。

CEPH分布式文件系統架構:

技術分享

歸置組(PG):可以理解為一個組,這個組裏可以有多少個對象(文件數),歸置組建立在存儲池中。

存儲池(POOL):由多個OSD組成。

術語:

OSD:存儲對象

MON 監視器

NODE:節點

MDS:元數據服務器

CEPH安裝與部署(網YUM版):需要聯網部署

v 環境需求:關閉防火墻,關閉SElinux,時間同步,修改主機名,修改HOSTS文件,SSH的支持,創建運行用戶。

# systemctl stop firewalld #關閉防火墻

# setenforce 0 #關閉SELinux

# vi /etc/hosts #修改HOSTS文件

添加內容:

1.1.1.19 admin-node

1.1.1.20 node1

1.1.1.21 node2

# vi /etc/sysconfig/network #修改主機名

添加內容:

NETWORKING=yes

HOSTNAME=admin-node

# hostname admin-node #臨時修改主機名

# yum -y install ntp ntpdate #部署NTP時間同步

# /etc/ntp.conf #使用自身時間搭建NTP服務器

添加內容:

server 127.127.1.0

fudge 127.127.1.0 stratum 8

# systemctl restart ntpd #重啟NTP服務器

# ntpdate 1.1.1.19 #NTP服務器同步時間

# timedatectl #查看時間

# useradd ceph

# echo 123 | passwd ceph --stdin #創建運行用戶

# ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa #創建密鑰對

# ssh-copy-id -i /root/ceph/.ssh/id_rsa.pub [email protected] #將公鑰上傳到node1

# ssh-copy-id -i /root/ceph/.ssh/id_rsa.pub [email protected] #將公鑰上傳到node2

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #導入公鑰庫

v 安裝CEPH群集需求:每臺服務器上都要部署YUM庫,Deploy工具,EPEL源(需網絡)

# mv CentOS-Base.repo /etc/yum.repos.d/ #CenOS7默認備份YUM庫還原

# mv ceph.repo /etc/yum.repos.d/ #CEPHREPO文件放置YUM

# yum makecache #生成緩存

# yum -y install epel-release #安裝EPEL

# yum -y install ceph-deploy #安裝CEPH-Deploy工具

# ceph-deploy new node1 #配置一個Mon(監視器)節點

註:會在所在位置生成三個配置文件。

#vi ceph.conf

osd_pool_default_size = 2 #修改OSD存儲池默認副本數

註:如果有多張網卡還可以增加:public network = {ip-address}/{netmask}參數

# ceph-deploy install admin-node node1 node2 #安裝CEPH到三個節點上

ceph-deploy purgedata admin-node node1 node2

安裝出現問題可以使用這兩條命令清空配置重新部署和安裝

ceph-deploy forgetkeys

v 初始化Mon監視器,並收集所有密鑰

# ceph-deploy mon create-initial

v 創建硬盤(OSD)掛載目錄

# ssh node1

# mkdir /var/local/osd0

# ssh node2

# mkdir /var/local/osd1

v 添加OSD和管理激活OSD

# ceph-deploy osd prepare node1:/var/local/osd0 node2:/var/local/osd1

# ceph-deploy osd activate node1:/var/local/osd0 node2:/var/local/osd1

v 創建管理用戶

# ceph-deploy admin admin-node node1 node2

# chmod +r /etc/ceph/ceph.client.admin.keyring #確保keyring文件有讀取權限

v 檢查群集健康狀況(部署完成)

# ceph health

v 通過SYSVINIT機制啟動CEPH所有守護進程

# /etc/init.d/ceph -a start

註:SYSVINIT:字面意思是利用系統進程的方式運行。

v 創建CephFS文件系統:

# ceph osd pool create pool1 100 100 #默認需要新建兩個存儲池

# ceph osd pool create pool2 100 100

# ceph fs new ren pool1 pool2 #兩個存儲池組成一個文件系統

# ceph mds stat

v 掛載CephFS文件系統

# ceph auth list #查看認證密碼列表

# mount -t ceph -o name=admin,secret="AQBs2U9Y54/vKRAAgPZxOf6lmbl522mkiJvXRA==" 1.1.1.20:6789:/ /opt #密碼認證方式掛載CephFS文件系統

安裝報錯:

故障一:找不到EPEL源 解決方法:安裝EPEL# yum -y install epel-release(每臺)

技術分享

故障二:找不到CEPH安裝包 解決方法:YUM庫中寫入CEPH安裝包網YUM源路徑

技術分享

故障三:查看版本命令未找到 解決方法:手動安裝CEPHyum -y install ceph ceph-radosgw(每臺)或者檢查SSH的問題

技術分享

CEPH分布式文件系統操作整合

命令

描述

ceph health

查看群集健康狀態

ceph status

查看狀態

ceph osd stat

查看OSD狀態

ceph osd dump

查看OSD屬性

ceph osd tree

查看OSD

ceph mon dump

查看MON屬性

ceph quorum_status

查看配額狀態

ceph mds stat

查看MDS狀態

ceph mds dump

查看MDS轉存

ceph osd lspools

查看已存在的存儲池

ceph osd pool get pool1 pg_num

查看池歸置組屬性

ceph osd pool get pool1 pgp_num

查看池歸置組總數

ceph osd pool create pool1 100 100

創建一個存儲池

ceph osd pool delete pool1 pool1 --yes-i-really-really-mean-it

刪除一個存儲池

ceph osd pool rename pool1 pool2

重命名一個存儲池

rados df

查看存儲池統計信息

ceph osd pool mksnap pool1 poolkz1

存儲池快照

ceph osd pool rmsnap pool1 poolkz1

刪除存儲池快照

ceph osd pool set pool1 size 2

設置對象副本數

ceph fs new ren pool1 pool2

創建CephFS文件系統

:pg:歸置組 pgp:歸置組總數

添加和刪除OSD節點(OSD為存儲對象)

ceph-deploy osd prepare node1:/var/local/osd2

添加OSD

ceph-deploy osd activate node1:/var/local/osd2

激活OSD

ceph -w

查看OSD狀態

Ceph osd tree

查看OSD

Ceph osd out osd.0

凍結將要移除的節點

Ceph stop osd.0

停止將要移除的節點進程

Ceph osd crush remove osd.0

從群集裏移除節點信息

Ceph osd rm 0

移除節點

技術分享

添加元數據服務器(MDS

ceph-deploy mds create node1

添加MDS

註:至少需要一個元數據服務器才能使用CephFS

添加和刪除監視器(MON

ceph-deploy mon add node2

添加MON

ceph quorum_status --format json-pretty

檢查法定人數狀態

ceph -a stop mon.0

停止監視器進程

ceph mon remove mon.0

移除監視器

ssh node1

ceph stop mon || stop ceph-mon-all

遠程連接監視器,停止有關監視器的所有進程

添加對象網關(RGW

ceph-deploy rgw create node1

添加RGW

註:RGW默認監聽7480端口。有關對象網關的使用請繼續了解CEPH分布式文件系統。

CEPH對象網關的使用:http://docs.ceph.org.cn/install/install-ceph-gateway/


57.CEPH分布式文件系