天天看點

57.CEPH分布式檔案系

CEPH分布式檔案系統

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

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

CEPH四個部分:

Clients用戶端:用來通路檔案系統

CMDS中繼資料伺服器:用來緩存和同步資料

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

CMON叢集螢幕:用來監視檔案系統

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

Object:有原生的API,同時也相容swift和S3的API。

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

File:Posixi接口,支援快照。

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  root@node1     #将公鑰上傳到node1

# ssh-copy-id -i  /root/ceph/.ssh/id_rsa.pub  root@node1     #将公鑰上傳到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/                 #将CEPH的REPO檔案放置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源路徑

故障三:檢視版本指令未找到  解決方法:手動安裝CEPH:yum -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

Ceph osd tree

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/

本文轉自   觸動的風   51CTO部落格,原文連結:http://blog.51cto.com/10978134/1945815

上一篇: GPL前世今生

繼續閱讀