溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

分布式存儲(chǔ)ceph

發(fā)布時(shí)間:2020-04-03 12:15:02 來源:網(wǎng)絡(luò) 閱讀:447 作者:瀟九九 欄目:建站服務(wù)器

分布式存儲(chǔ)ceph

準(zhǔn)備:

client50、node51、node52、node53為虛擬機(jī)
client50:192.168.4.50  做客戶機(jī),做成NTP服務(wù)器 ,其他主機(jī)以50為NTP
            //  echo “allow 192.168.4.0/24’ > /etc/chrony.conf
node51:192.168.4.51   加三塊10G的硬盤
node52:192.168.4.52   加三塊10G的硬盤
node53:192.168.4.53   加三塊10G的硬盤
node54:192.168.4.54
搭建源:真機(jī)共享mount /iso/rhcs2.0-rhosp9-20161113-x86_64.iso /var/ftp/ceph
    /var/ftp/ceph/rhceph-2.0-rhel-7-x86_64/MON/
    /var/ftp/ceph/rhceph-2.0-rhel-7-x86_64/OSD/
     /var/ftp/ceph/rhceph-2.0-rhel-7-x86_64/Tools/
cat /etc/hosts   //書寫hosts文件,每臺(tái)主機(jī)都要有這個(gè)配置
    192.168.4.50 client50
    192.168.4.51 node51
    192.168.4.52 node52
    192.168.4.53 node53
#       pscp.pssh 
node51:無密碼連接 client50、node51、node52、node53
ssh-keygen -f /root/.ssh/id_rsa -N ‘’  //非交互式生成密鑰對(duì)
將公鑰發(fā)給其他主機(jī)及自己,實(shí)現(xiàn)ssh無密碼登陸
for i in 51 52 53; do ssh-copy-id 192.168.4.$i ; done

分布式文件系統(tǒng)

分布式文件系統(tǒng)(Distributed File System)是指文件系統(tǒng)管理的物理存儲(chǔ)資源不一定直接連接再本地節(jié)點(diǎn)上,
而是通過計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連
分布式文件系統(tǒng)的設(shè)計(jì)基于客戶機(jī)/服務(wù)器(C/S)模式
常用分布式文件系統(tǒng)
    Lustre,Hadoop,F(xiàn)astDFS,Ceph,GlusterFS
Ceph簡(jiǎn)介
    有官方(付費(fèi))的和開源的
    Ceph 是一個(gè)分布式文件系統(tǒng)
    具有高擴(kuò)展、高可用、高性能的特點(diǎn)
    Ceph 可以提供對(duì)象存儲(chǔ)、塊存儲(chǔ)、文件系統(tǒng)存儲(chǔ)
    Ceph 可以提供PB級(jí)別的存儲(chǔ)空間(PB-->TB-->-->GB)
    軟件定義存儲(chǔ)(Software Defined Storage)作為存儲(chǔ),行業(yè)的一大發(fā)展趨勢(shì)
    官網(wǎng):http://docs.ceph.org/start/intro
Ceph 組件
    OSDs :存儲(chǔ)設(shè)備
    Monitors :集群監(jiān)控組件
    MDSs :存放文件系統(tǒng)的元數(shù)據(jù)(對(duì)象存儲(chǔ)和塊存儲(chǔ)不需要該組件)
            元數(shù)據(jù):文件的信息,大小,權(quán)限等,即如下信息
            drwxr-xr-x   2 root root    6 10月 11 10:37 /root/a.sh
    Client :ceph客戶端

實(shí)驗(yàn):

使用node51作為部署主機(jī)
     node51:
1.安裝部署軟件:
    yum -y install ceph-deploy   //安裝完成后使用ceph-deploy --help幫助
為部署工具創(chuàng)建目錄,存放密鑰與配置文件
    mkdir /root/ceph-cluster
    cd /root/ceph-cluster
2.創(chuàng)建Ceph集群
創(chuàng)建Ceph集群配置(所有節(jié)點(diǎn)都為mon)
    ceph-deploy new node51 node52 node53
給所有節(jié)點(diǎn)安裝Ceph軟件包
    ceph-deploy install node51 node52 node53
初始化所有節(jié)點(diǎn)的mon(監(jiān)控程序)服務(wù) (每一臺(tái)主機(jī)上都配置有/etchosts主機(jī)名解析)
    ceph-deploy  mon create-initial
3.創(chuàng)建OSD
-  所有節(jié)點(diǎn)準(zhǔn)備磁盤分區(qū)(以node51為例,node52,node53也要這樣分區(qū))
1)指定用那種分區(qū)模式
    parted /dev/vdb mklabel gpt
2)用這個(gè)盤的前50%的空間建一個(gè)分區(qū),以1M為起點(diǎn)
    parted /dev/vdb mkpart primary 1M 50%
3)用這個(gè)盤的后50%的空間建一個(gè)分區(qū)
    parted /dev/vdb mkpart primary 50% 100%
4)將這兩個(gè)分區(qū)的所有者和所有組設(shè)置為ceph,給集群ceph管理權(quán)限
    chown ceph.ceph /dev/vdb1
    chown ceph.ceph /dev/vdb1
    echo 'chown ceph.ceph /dev/vdb*' >> /etc/rc.d/rc.local
    chmod +x /etc/rc.d/rc.local
注:這兩個(gè)分區(qū)用來做存儲(chǔ)服務(wù)器的日志journal盤
- 初始化清空磁盤數(shù)據(jù)(僅在node51上進(jìn)行管理操作)
    cd /root/ceph-cluster/      //必須再這個(gè)目錄下進(jìn)行操作
    ceph-deploy disk zap node51:vdc node51:vdd
    ceph-deploy disk zap node52:vdc node52:vdd
    ceph-deploy disk zap node53:vdc node53:vdd
- 創(chuàng)建OSD存儲(chǔ)設(shè)備(僅在node51上進(jìn)行管理操作)
    ceph-deploy osd create node51:vdc:/dev/vdb1 
    node51:vdd:/dev/vdb2
        >>Host node51 is now ready for osd use.
    ceph-deploy osd create node52:vdc:/dev/vdb1 node52:vdd:/dev/vdb2
        >>Host node52 is now ready for osd use.
    ceph-deploy osd create node53:vdc:/dev/vdb1 node53:vdd:/dev/vdb2
        >>Host node53 is now ready for osd use.

服務(wù)查看

Node51: 有關(guān)與ceph的服務(wù)
    ceph-create-keys@node51.service  ceph-osd@1.service
    ceph-mds.target                    ceph-osd.target
    ceph-mon@node51.service          ceph-radosgw.target
    ceph-mon.target                     ceph.target
    ceph-osd@0.service               
Node52: 有關(guān)與ceph的服務(wù)
    ceph-create-keys@node52.service  ceph-osd@2.service
    ceph-disk@dev-vdd1.service        ceph-osd.target
    ceph-mds.target                    ceph-radosgw.target
    ceph-mon@node52.service          ceph.target
    ceph-mon.target                  
Node53: 有關(guān)與ceph的服務(wù)
    ceph-create-keys@node53.service  ceph-osd@4.service
    ceph-disk@dev-vdd1.service        ceph-osd.target
    ceph-mds.target                    ceph-radosgw.target
    ceph-mon@node53.service          ceph.target
    ceph-mon.target                  

部署ceph集群

>>安裝部署軟件ceph-deploy
>>創(chuàng)建Ceph集群
>>創(chuàng)建OSD存儲(chǔ)空間
>>查看ceph狀態(tài),驗(yàn)證

塊存儲(chǔ)

    單機(jī)塊設(shè)備:光盤、磁盤
    分布式塊存儲(chǔ):ceph、cider
    Ceph塊設(shè)備也叫RADOS塊設(shè)備
        - RADOS block device:RBD
    Rbd驅(qū)動(dòng)已經(jīng)很好的集成在了linux內(nèi)核中
    Rbd提供了企業(yè)功能。如快照、COW(Copy Online Write,寫時(shí)復(fù)制)克隆
    COW對(duì)源文件做寫操作時(shí),舊數(shù)據(jù)會(huì)被復(fù)制到快照文件里。當(dāng)刪除文件或者對(duì)文件進(jìn)行了內(nèi)容的增加或者
減少,源文件發(fā)生了改變,舊的文件就會(huì)拷貝到快照里
    Rbd還支持內(nèi)存緩存,從而能夠大大提高性能

塊存儲(chǔ)集群

    鏡像池大小,基本存儲(chǔ)為60G,為node51、node52、node53做存儲(chǔ)磁盤的和
    查看存儲(chǔ)池(默認(rèn)有一個(gè)rbd池)
ceph osd lspools
    0 rbd
創(chuàng)建鏡像, ##若不指定存儲(chǔ)池,默認(rèn)屬于rbd存儲(chǔ)池
        rbd create demo-image --image-feature layering --size 10G
   //鏡像名為demo-image , --image-feature layering(創(chuàng)建鏡像的方式)
 默認(rèn)在rbd默認(rèn)的存儲(chǔ)池里創(chuàng)建
rbd create rbd/image --image-feature layering --size 10G
   //rbd/image 指定在rbd池里創(chuàng)建
查看鏡像
rbd info demo-image
    rbd image 'demo-image':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.1052238e1f29
        format: 2
        features: layering
        flags: 
刪除鏡像
    rbd remove rbd/image
    rbd remove demo-image   //次出僅提供錯(cuò)誤時(shí)的方法,不實(shí)際執(zhí)行
縮小容量    //命令解釋,重置大小為1G 鏡像image 允許縮小
    rbd resize --size 1G image --allow-shrink 
擴(kuò)大容量    //將容量擴(kuò)大到2G
    rbd resize --size 2G image
集群內(nèi)通過rbd訪問

1.node51本機(jī)使用,將鏡像映射為本地磁盤

    rbd map demo-image
    lsblk  //查看本地磁盤 
        rbd0   251:0    0   10G  0 disk

2.分區(qū)、格式化(分區(qū)名為/dev/rbd0p1)、掛載,與本地磁盤無異
3.將鏡像從本地磁盤中移除 //移除前需要將掛載從本機(jī)卸載掉

rbd unmap demo-image

集群外客戶機(jī)clinet50:通過rbd訪問

    1.安裝ceph-common軟件包
            yum -y install ceph-common.x86_64
    2.拷貝配置文件(指示儲(chǔ)存集群的位置)
            scp 192.168.4.51:/etc/ceph/ceph.conf /etc/ceph/
    3.拷貝連接接密鑰(獲取集群連接及使用的權(quán)限)
            scp 192.168.4.51:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
    4.查看集群鏡像
        `
        rbd list
                demo-image
                Image
        `
    5.鏡像映射到本地磁盤
        rbd map image
        lsblk 
    6.顯示本地影射
        rbd showmapped
            id pool image snap device    
            0  rbd  image -  /dev/rbd0 
    7.分區(qū)、格式化(分區(qū)名為/dev/rbd0p1)、掛載,與本地磁盤無異
    8.撤銷磁盤映射,將鏡像從本地磁盤中移除 //移除前需要將掛載從本機(jī)卸載掉
        rbd unmap demo-image
        rbd unmap /dev/rbd/rbd/demo-image  //兩種方法

創(chuàng)建鏡像快照

    快照使用COW技術(shù),對(duì)大數(shù)據(jù)快照速度會(huì)很快
     COW對(duì)源文件做寫操作時(shí),舊數(shù)據(jù)會(huì)被復(fù)制到快照文件里
    快照:保存某一時(shí)刻的所有信息,以備以后恢復(fù)使用,創(chuàng)建初期不占用磁盤空間,每當(dāng)源文件發(fā)生改變時(shí),
                就把快照創(chuàng)建時(shí)的文件數(shù)據(jù)寫入快照,這時(shí)快照開始占用磁        盤空間,大小為發(fā)生改變的文件大小的和。

node51:
查看已有鏡像

    rbd list

查看鏡像快照:

    rbd snap ls image //暫時(shí)無顯示

創(chuàng)建快照(snap)

    rbd snap create image --snap image-snap1
    命令解釋:rbd 快照 create 鏡像名 --snap類型 快照名

再次查看鏡像快照

rbd snap ls image
        SNAPID NAME              SIZE 
                    4  image-snap1    2048 MB 

使用快照恢復(fù)數(shù)據(jù)

    rbd snap rollback image --snap image-snap1
    客戶機(jī)將鏡像卸載后再重新掛載即可恢復(fù)數(shù)據(jù)

刪除快照

    rbd snap rm image --snap image-snap1

快照克隆

  • 如果想從快照恢復(fù)出來一個(gè)新的鏡像,可以做克隆
  • 注意,克隆前,需要對(duì)快照進(jìn)行<保護(hù)>操作
  • 被保護(hù)的快照無法刪除,取消保護(hù)
    快照保護(hù):
    rbd snap protect image --snap image-snap1

    快照克隆

    rbd clone image --snap image-snap1 image-clone --image-feature layering

    克隆查看

    rbd info image-clone
    rbd image 'image-clone':
        size 2048 MB in 512 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.108a2ae8944a
        format: 2
        features: layering
        flags: 
        parent: rbd/image@image-snap1
        overlap: 2048 MB

    利用克隆鏡像恢復(fù)數(shù)據(jù)

    rbd flatten image-clone

    取消保護(hù):

    rbd snap unprotect image --snap image-snap1
    客戶端撤銷磁盤映射

    1.卸載掛載點(diǎn)
    2.查看rbd磁盤映射
    Rbd showmapped
    id pool image snap device
    0 rbd image - /dev/rbd0
    3.撤銷磁盤映射
    rbd unmap demo-image
    rbd unmap /dev/rbd/rbd/demo-image //兩種方法

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI