中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CephFs的操作方法

發布時間:2020-05-26 09:34:57 來源:億速云 閱讀:3752 作者:Leah 欄目:系統運維

這篇文章主要為大家詳細介紹了CephFs的操作方法,文中關于CephFs的架構以及CephFs的部署配置介紹的非常詳細,零基礎也能參考此文章,感興趣的小伙伴們可以參考一下。

一、CephFs介紹

Ceph File System (CephFS) 是與 POSIX 標準兼容的文件系統, 能夠提供對 Ceph 存儲集群上的文件訪問. Jewel 版本 (10.2.0) 是第一個包含穩定 CephFS 的 Ceph 版本. CephFS 需要至少一個元數據服務器 (Metadata Server - MDS) daemon (ceph-mds) 運行, MDS daemon 管理著與存儲在 CephFS 上的文件相關的元數據, 并且協調著對 Ceph 存儲系統的訪問。

說在前面的話,cephfs其實是為用戶提供的一個文件系統,把ceph這個軟件把里面的空間,模擬一個文件系統的格式來提供服務,它有posix標準的文件系統的接口能夠為ceph集群存儲文件,能夠提供訪問,目前在大多數公司用cephfs也是比較少的,也是由于性能原因,但是也有一些場景也會用到。

對象存儲的成本比起普通的文件存儲還是較高,需要購買專門的對象存儲軟件以及大容量硬盤。如果對數據量要求不是海量,只是為了做文件共享的時候,直接用文件存儲的形式好了,性價比高。

二、CephFS 架構

底層是核心集群所依賴的, 包括:
OSDs (ceph-osd): CephFS 的數據和元數據就存儲在 OSDs 上
MDS (ceph-mds): Metadata Servers, 管理著 CephFS 的元數據
Mons (ceph-mon): Monitors 管理著集群 Map 的主副本

因為這個map里面維護著很多數據的信息索引,所有的數據都要從mons中map里獲取去osd里找這個數據,其實獲取這個數據的流程大概都是一樣的,只不過它存在的是不同的庫,不同的map

Ceph 存儲集群的協議層是 Ceph 原生的 librados 庫, 與核心集群交互.
CephFS 庫層包括 CephFS 庫 libcephfs, 工作在 librados 的頂層, 代表著 Ceph文件系統.最上層是能夠訪問 Ceph文件系統的兩類客戶端,由于有這個libcephfs這個庫,cephfs才能對外提供服務,因為底層是不能提供服務的,都得通過它這個第三方的lib庫才能去提供訪問,

元數據:文件的名字和屬性信息叫元數據,和數據是隔離開的

CephFs的數據是怎么訪問的?
首先客戶端通過RPC協議到達MDS,從MDS獲取到元數據的信息,客戶端與RADOS獲取文件的一個IO操作,那么有了這兩份信息,用戶就能得到了想要的那份文件,MDS和RADOS之間通過journal metadate,這個Journal是記錄文件寫入日志的,這個也是存放到OSD當中的,MDS和rados之間也是由交互的,因為所有最終的數據都會存到rados當中

CephFs的操作方法!

三、配置 CephFS MDS

要使用 CephFS, 至少就需要一個 metadata server 進程。可以手動創建一個 MDS, 也可以使用 ceph-deploy 或者 ceph-ansible 來部署 MDS。  
登錄到ceph-deploy工作目錄執行
hostname指定ceph集群的主機名
#ceph-deploy mds create $hostname

四、部署Ceph文件系統

部署一個 CephFS, 步驟如下:
在一個 Mon 節點上創建 Ceph文件系統.
若使用 CephX 認證,需要創建一個訪問 CephFS 的客戶端

掛載 CephFS 到一個專用的節點.
以 kernel client 形式掛載 CephFS
以 FUSE client 形式掛載 CephFS

1、創建一個 Ceph 文件系統
1、首先要創建兩個pool,一個是cephfs-data,一個是cephfs-metadate,分別存儲文件數據和文件元數據,這個pg也可以設置小一點,這個根據OSD去配置

#ceph osd pool create cephfs-data 256 256
#ceph osd pool create cephfs-metadata 64 64

查看已經創建成功

[root@cephnode01 my-cluster]# ceph osd lspools
1 .rgw.root
2 default.rgw.control
3 default.rgw.meta
4 default.rgw.log
5 rbd
6 cephfs-data
7 cephfs-metadata

關于ceph的日志,可以在/var/log/ceph下可以查看到相關信息

[root@cephnode01 my-cluster]# tail -f /var/log/ceph/ceph
ceph.audit.log                  ceph.log                        ceph-mgr.cephnode01.log         ceph-osd.0.log
ceph-client.rgw.cephnode01.log  ceph-mds.cephnode01.log         ceph-mon.cephnode01.log         ceph-volume.log

注:一般 metadata pool 可以從相對較少的 PGs 啟動, 之后可以根據需要增加 PGs. 因為 metadata pool 存儲著 CephFS文件的元數據, 為了保證安全, 最好有較多的副本數. 為了能有較低的延遲, 可以考慮將 metadata 存儲在 SSDs 上.
2、創建一個 CephFS, 名字為 cephfs:需要指定兩個創建的pool的名字

#ceph fs new cephfs cephfs-metadata cephfs-data
new fs with metadata pool 7 and data pool 6

3、驗證至少有一個 MDS 已經進入 Active 狀態,也就是活躍
另外可以看到兩個備用的是cephnode01,和cephnode03

#ceph fs status cephfs
cephfs - 0 clients

+------+--------+------------+---------------+-------+-------+
| Rank | State  |    MDS     |    Activity   |  dns  |  inos |
+------+--------+------------+---------------+-------+-------+
|  0   | active | cephnode02 | Reqs:    0 /s |   10  |   13  |
+------+--------+------------+---------------+-------+-------+
+-----------------+----------+-------+-------+
|       Pool      |   type   |  used | avail |
+-----------------+----------+-------+-------+
| cephfs-metadata | metadata | 1536k | 17.0G |
|   cephfs-data   |   data   |    0  | 17.0G |
+-----------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
|  cephnode01 |
|  cephnode03 |
+-------------+
MDS version: ceph version 14.2.7 (3d58626ebeec02d8385a4cefb92c6cbc3a45bfe8) nautilus (stable)

4、在 Monitor 上, 創建一個叫client.cephfs的用戶,用于訪問CephFs

#ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rw pool=cephfs-data, allow rw pool=cephfs-metadata'
這里會生成一個key,用戶需要拿這個key去訪問
[client.cephfs]
    key = AQA5IV5eNCwMGRAAy4dIZ8+ISfBcwZegFTYD6Q==

查看權限列表,有哪些用戶創建了權限

[root@cephnode01 my-cluster]# ceph auth list
client.cephfs
    key: AQA5IV5eNCwMGRAAy4dIZ8+ISfBcwZegFTYD6Q==
    caps: [mds] allow rw
    caps: [mon] allow r
    caps: [osd] allow rw pool=cephfs-data, allow rw pool=cephfs-metadata
client.rgw.cephnode01
    key: AQBOAl5eGVL/HBAAYH93c4wPiBlD7YhuPY0u7Q==
    caps: [mon] allow rw
    caps: [osd] allow r

5、驗證key是否生效

#ceph auth get client.cephfs
可以看到這個用戶是擁有訪問cephfs的讀寫權限的
exported keyring for client.cephfs
[client.cephfs]
    key = AQA5IV5eNCwMGRAAy4dIZ8+ISfBcwZegFTYD6Q==
    caps mds = "allow rw"
    caps mon = "allow r"
    caps osd = "allow rw pool=cephfs-data, allow rw pool=cephfs-metadata"

6、檢查CephFs和mds狀態

#ceph -s   查看集群已經增加mds配置
  cluster:
    id:     75aade75-8a3a-47d5-ae44-ec3a84394033
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 2h)
    mgr: cephnode01(active, since 2h), standbys: cephnode02, cephnode03
    mds: cephfs:1 {0=cephnode02=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 2h), 3 in (since 2h)
    rgw: 1 daemon active (cephnode01)

  data:
    pools:   7 pools, 96 pgs
    objects: 263 objects, 29 MiB
    usage:   3.1 GiB used, 54 GiB / 57 GiB avail
    pgs:     96 active+clean

#ceph mds stat
這里顯示1個是active狀態,2個備用狀態
cephfs:1 {0=cephnode02=up:active} 2 up:standby

#ceph fs ls
這里有兩個pool
name: cephfs, metadata pool: cephfs-metadata, data pools: [cephfs-data ]
#ceph fs status

1.1 以 kernel client 形式掛載 CephFS

這里使用其他的機器進行掛載,這里是是以prometheus主機掛載,不過這個在哪掛載都可以,kernel主要聯系系統內核,和系統內核進行做相互,用這種方式進行掛載文件系統
1、創建掛載目錄 cephfs
#mkdir /cephfs

2、掛載目錄,這里寫集群ceph節點的地址,后面跟創建用戶訪問集群的key

#mount -t ceph 192.168.1.10:6789,192.168.1.11:6789,192.168.1.12:6789:/ /cephfs/ -o name=cephfs,secret=AQDHjeddHlktJhAAxDClZh9mvBxRea5EI2xD9w==

3、自動掛載
#echo "mon1:6789,mon2:6789,mon3:6789:/ /cephfs ceph name=cephfs,secretfile=/etc/ceph/cephfs.key,_netdev,noatime 0 0" | sudo tee -a /etc/fstab

4、驗證是否掛載成功

#stat -f /cephfs
  文件:"/cephfs"
    ID:4f32eedbe607030e 文件名長度:255     類型:ceph
塊大小:4194304    基本塊大小:4194304
    塊:總計:4357       空閑:4357       可用:4357
Inodes: 總計:0          空閑:-1

1.2 以 FUSE client 形式掛載 CephFS

1、安裝ceph-common,安裝好可以使用rbd,ceph相關命令
這里還是使用我們的內網yum源來安裝這些依賴包

yum -y install epel-release
yum install -y ceph-common

2、安裝ceph-fuse,ceph的客戶端工具,也就是用ceph的方式把這個文件系統掛上
yum install -y ceph-fuse

3、將集群的ceph.conf拷貝到客戶端

scp root@192.168.1.10:/etc/ceph/ceph.conf /etc/ceph/
chmod 644 /etc/ceph/ceph.conf

4、使用 ceph-fuse 掛載 CephFS
如果是在其他主機掛載的話,需要這個使用cephfs的key,這個是剛才我們創建好的
直接拿這臺服務器上用就可以

[root@prometheus ~]# more /etc/ceph/ceph.client.cephfs.keyring 
exported keyring for client.cephfs
[client.cephfs]
    key = AQA5IV5eNCwMGRAAy4dIZ8+ISfBcwZegFTYD6Q==
    caps mds = "allow rw"
    caps mon = "allow r"
    caps osd = "allow rw pool=cephfs-data, allow rw pool=cephfs-metadata"

#ceph-fuse --keyring /etc/ceph/ceph.client.cephfs.keyring --name client.cephfs -m 192.168.1.10:6789,192.168.1.11:6789,192.168.1.12:6789 /cephfs/

5、驗證 CephFS 已經成功掛載

#df -h
ceph-fuse                          18G     0   18G    0% /cephfs

#stat -f /cephfs
  文件:"/cephfs/"
    ID:0        文件名長度:255     類型:fuseblk
塊大小:4194304    基本塊大小:4194304
    塊:總計:4357       空閑:4357       可用:4357
Inodes: 總計:1          空閑:0

6、自動掛載

#echo "none /cephfs fuse.ceph ceph.id=cephfs[,ceph.conf=/etc/ceph/ceph.conf],_netdev,defaults 0 0"| sudo tee -a /etc/fstab
或
#echo "id=cephfs,conf=/etc/ceph/ceph.conf /mnt/ceph3 fuse.ceph _netdev,defaults 0 0"| sudo tee -a /etc/fstab

7、卸載
#fusermount -u /cephfs

五、MDS主備與主主切換

1、配置主主模式
當cephfs的性能出現在MDS上時,就應該配置多個活動的MDS。通常是多個客戶機應用程序并行的執行大量元數據操作,并且它們分別有自己單獨的工作目錄。這種情況下很適合使用多主MDS模式。  
配置MDS多主模式  
每個cephfs文件系統都有一個max_mds設置,可以理解為它將控制創建多少個主MDS。注意只有當實際的MDS個數大于或等于max_mds設置的值時,mdx_mds設置才會生效。例如,如果只有一個MDS守護進程在運行,并且max_mds被設置為兩個,則不會創建第二個主MDS。

添加設置max_mds 2,也就是成2個activity,1個standby,稱為主主備模式

#ceph fs set cephfs max_mds 2

[root@cephnode01 ceph]# ceph fs status
cephfs - 1 clients

+------+--------+------------+---------------+-------+-------+
| Rank | State  |    MDS     |    Activity   |  dns  |  inos |
+------+--------+------------+---------------+-------+-------+
|  0   | active | cephnode02 | Reqs:    0 /s |   11  |   14  |
|  1   | active | cephnode01 | Reqs:    0 /s |   10  |   13  |
+------+--------+------------+---------------+-------+-------+
+-----------------+----------+-------+-------+
|       Pool      |   type   |  used | avail |
+-----------------+----------+-------+-------+
| cephfs-metadata | metadata | 2688k | 16.8G |
|   cephfs-data   |   data   |  521M | 16.8G |
+-----------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
|  cephnode03 |
+-------------+

也就是當你cephfs用的多的話,數據量大的話,就會出現性能的問題,也就是當配置多個avtive的mds的時候會遇到系統瓶頸,這個時候就需要配置主主模式,把這個數據做一個類似的負載均衡,多主的話也就是這些主會同時提供服務

# 1.3、配置備用MDS
即使有多個活動的MDS,如果其中一個MDS出現故障,仍然需要備用守護進程來接管。因此,對于高可用性系統,實際配置max_mds時,最好比系統中MDS的總數少一個。
但如果你確信你的MDS不會出現故障,可以通過以下設置來通知ceph不需要備用MDS,否則會出現insufficient standby daemons available告警信息:
#ceph fs set <fs> standby_count_wanted 0

2、還原單主MDS

2.1、設置max_mds
要是還原的話,直接設置為max_mds 1也就是一個activity兩個standby

#ceph fs set max_mds 1
[root@cephnode01 ceph]# ceph fs status
cephfs - 1 clients
======
+------+--------+------------+---------------+-------+-------+
| Rank | State  |    MDS     |    Activity   |  dns  |  inos |
+------+--------+------------+---------------+-------+-------+
|  0   | active | cephnode02 | Reqs:    0 /s |   11  |   14  |
+------+--------+------------+---------------+-------+-------+
+-----------------+----------+-------+-------+
|       Pool      |   type   |  used | avail |
+-----------------+----------+-------+-------+
| cephfs-metadata | metadata | 2688k | 16.8G |
|   cephfs-data   |   data   |  521M | 16.8G |
+-----------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
|  cephnode03 |
|  cephnode01 |
+-------------+

如果想在客戶端去執行相關的ceph命令的話,需要安裝ceph-common以及ceph-fuse客戶端工具將這個ceph.client.admin.keyring以及ceph.conf文件拷到相應的客戶端也可以執行ceph命令了

[root@cephnode01 ceph]# scp ceph.client.admin.keyring root@192.168.1.14:/etc/ceph
root@192.168.1.14's password: 
ceph.client.admin.keyring 
[root@prometheus ceph]# ceph -s
  cluster:
    id:     75aade75-8a3a-47d5-ae44-ec3a84394033
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 4h)
    mgr: cephnode01(active, since 4h), standbys: cephnode02, cephnode03
    mds: cephfs:2 {0=cephnode02=up:active,1=cephnode03=up:active} 1 up:standby
    osd: 3 osds: 3 up (since 4h), 3 in (since 4h)
    rgw: 1 daemon active (cephnode01)

  data:
    pools:   7 pools, 96 pgs
    objects: 345 objects, 203 MiB
    usage:   3.6 GiB used, 53 GiB / 57 GiB avail
    pgs:     96 active+clean

以上就是CephFs的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容或者想知道具體的部署和配置步驟,歡迎關注億速云行業資訊!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡山县| 湘阴县| 吴旗县| 麻阳| 二手房| 龙井市| 高青县| 绍兴县| 南开区| 济阳县| 和顺县| 长沙县| 博客| 伊川县| 湟源县| 五常市| 驻马店市| 同德县| 海门市| 利辛县| 桂林市| 林芝县| 东山县| 萍乡市| 仪征市| 黄浦区| 武邑县| 旅游| 库尔勒市| 喜德县| 中牟县| 汝南县| 游戏| 双桥区| 铜鼓县| 定襄县| 山丹县| 疏勒县| 遂昌县| 瓮安县| 稷山县|