1. 程式人生 > >【實踐】Ceph:建立Cephfs檔案

【實踐】Ceph:建立Cephfs檔案

Ceph檔案系統(CEPH FS)是一個POSIX相容的檔案系統,使用Ceph的儲存叢集來儲存其資料。

clip_image002

使用Ceph的檔案系統,在你的Ceph的儲存叢集裡至少需要存在一個Ceph的元資料伺服器。

作者:Younger Liu,

原文地址:http://blog.csdn.net/younger_china/article/details/51901421


1 元資料伺服器MDS

使用CephFS時,您必須至少部署一個元資料伺服器。目前正在實驗支援執行多個元資料伺服器。所以生產的時候不要執行多個元資料伺服器。

1.1 新增MDS

在新增MDS,先要部署OSD。

命令:

ceph-deploy mds create {host-name}[:{daemon-name}][{host-name}[:{daemon-name}]...]

示例:建立兩個MDS

[[email protected] cluster]$ ceph-deploy mds create node2 node3
[ceph_deploy.conf][DEBUG ] found configuration file at: /home/ceph/.cephdeploy.conf
[ceph_deploy.cli][INFO ] Invoked (1.5.34): /usr/bin/ceph-deploy mds create node2 node3
[ceph_deploy.cli][INFO ] ceph-deploy options:
[ceph_deploy.cli][INFO ] username : None
[ceph_deploy.cli][INFO ] verbose : False
[ceph_deploy.cli][INFO ] overwrite_conf : False
[ceph_deploy.cli][INFO ] subcommand : create
[ceph_deploy.cli][INFO ] quiet : False
[ceph_deploy.cli][INFO ] cd_conf : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f79397860e0>
[ceph_deploy.cli][INFO ] cluster : ceph
[ceph_deploy.cli][INFO ] func : <function mds at 0x7f793976da28>
[ceph_deploy.cli][INFO ] ceph_conf : None
[ceph_deploy.cli][INFO ] mds : [('node2', 'node2'), ('node3', 'node3')]
[ceph_deploy.cli][INFO ] default_release : False
[ceph_deploy.mds][DEBUG ] Deploying mds, cluster ceph hosts node2:node2 node3:node3
[node2][DEBUG ] connection detected need for sudo
[node2][DEBUG ] connected to host: node2
[node2][DEBUG ] detect platform information from remote host
[node2][DEBUG ] detect machine type
[ceph_deploy.mds][INFO ] Distro info: CentOS Linux 7.2.1511 Core
[ceph_deploy.mds][DEBUG ] remote host will use systemd
[ceph_deploy.mds][DEBUG ] deploying mds bootstrap to node2
[node2][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
[node2][DEBUG ] create path if it doesn't exist
[node2][INFO ] Running command: sudo ceph --cluster ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/ceph.keyring auth get-or-create mds.node2 osd allow rwx mds allow mon allow profile mds -o /var/lib/ceph/mds/ceph-node2/keyring
[node2][INFO ] Running command: sudo systemctl enable 
[email protected]
[node2][WARNIN] Created symlink from /etc/systemd/system/ceph-mds.target.wants/[email protected] to /usr/lib/systemd/system/[email protected] [node2][INFO ] Running command: sudo systemctl start [email protected] [node2][INFO ] Running command: sudo systemctl enable ceph.target [node3][DEBUG ] connection detected need for sudo [node3][DEBUG ] connected to host: node3 [node3][DEBUG ] detect platform information from remote host [node3][DEBUG ] detect machine type [ceph_deploy.mds][INFO ] Distro info: CentOS Linux 7.2.1511 Core [ceph_deploy.mds][DEBUG ] remote host will use systemd [ceph_deploy.mds][DEBUG ] deploying mds bootstrap to node3 [node3][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf [node3][WARNIN] mds keyring does not exist yet, creating one [node3][DEBUG ] create a keyring file [node3][DEBUG ] create path if it doesn't exist [node3][INFO ] Running command: sudo ceph --cluster ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/ceph.keyring auth get-or-create mds.node3 osd allow rwx mds allow mon allow profile mds -o /var/lib/ceph/mds/ceph-node3/keyring [node3][INFO ] Running command: sudo systemctl enable
[email protected]
[node3][WARNIN] Created symlink from /etc/systemd/system/ceph-mds.target.wants/[email protected] to /usr/lib/systemd/system/[email protected] [node3][INFO ] Running command: sudo systemctl start [email protected] [node3][INFO ] Running command: sudo systemctl enable ceph.target [[email protected] cluster]$

MDS的其他引數暫不涉及(水平有限)

2 CEPHFS建立

當有一個至少存在一個Ceph元資料伺服器、並且執行正常的Ceph儲存叢集時,可以掛載Ceph檔案系統。當然,也要確保客戶端的網路連線和正確的身份驗證keyring。

2.1 建立Cephfs

一個cephfs至少要求兩個librados儲存池,一個為data,一個為metadata。當配置這兩個儲存池時,注意:

1. 為metadata pool設定較高級別的副本級別,因為metadata的損壞可能導致整個檔案系統不用

2. 建議,metadata pool使用低延時儲存,比如SSD,因為metadata會直接影響客戶端的響應速度。

建立儲存池的命令:

ceph osd pool create <pool_name> <pg_num>

示例:

[[email protected] ~]$ ceph osd pool create cephfs_data 8
pool 'cephfs_data' created
[[email protected] ~]$ ceph osd pool create cephfs_metadata 10
pool 'cephfs_metadata' created
[[email protected] ~]$

使用fs new命令enable 檔案系統

ceph fs new <fs_name> <metadata_pool> <data_pool>

示例:

[[email protected] ~]$ ceph fs new YYcephfs cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1
[[email protected] ~]$

使用mds來觀察

[[email protected] ~]$ ceph mds stat
e8: 1/1/1 up {0=node3=up:active}, 1 up:standby
[[email protected] ~]$

3 CEPHFS掛載

Cephfs一般都是作為cephfs client端來掛載,因此,來說明 cephfs client端的配置

3.1 配置Client端

3.1.1 Ceph叢集管理節點與Client端的ssh無密碼登入

參見ceph叢集配置

3.1.2 Client端的sudo許可權

參見ceph叢集配置

3.1.3 檢查系統核心是否支援RBD

方式如下:

[[email protected] ~]$ sudo modprobe rbd
[[email protected] ~]$ sudo lsmod | grep rbd
rbd 73158 0
libceph 244999 2 rbd,ceph
[[email protected] ~]$

3.2 Cephfs掛載

Cephfs有兩種掛載方式,kernel或fuse

node3是非mon伺服器,為了區別mon伺服器,使用node3作為client節點。

3.2.1 Kernel驅動

掛載Ceph的檔案系統,如果知道監控主機的IP地址(ES),你可以使用的mount命令掛載,或使用mount.ceph實用工具,為解析監控(ES)主機名,將其轉換成IP地址。例如:

建立掛載點:

sudo mkdir /mnt/mycephfs

掛載:

sudo mount -t ceph 192.168.192.121:6789:/ /mnt/mycephfs

示例:

[[email protected] ~]$ sudo mount -t ceph 192.168.192.121:6789:/ /mnt/mycephfs
mount error 22 = Invalid argument
[[email protected] ~]$ sudo tailf /var/log/messages
Jul 5 19:26:13 node0 kernel: Key type dns_resolver registered
Jul 5 19:26:13 node0 kernel: Key type ceph registered
Jul 5 19:26:13 node0 kernel: libceph: loaded (mon/osd proto 15/24)
Jul 5 19:26:13 node0 kernel: ceph: loaded (mds proto 32)
Jul 5 19:26:13 node0 kernel: libceph: no secret set (for auth_x protocol)
Jul 5 19:26:13 node0 kernel: libceph: error -22 on auth protocol 2 init
Jul 5 19:26:13 node0 kernel: libceph: client24127 fsid 0c6a1eff-3f04-4324-9657-31c31940a

原因是該檔案系統啟用了cephx認證,因此需要指定一個使用者名稱和一個金鑰。

監控節點下有如下檔案:

[[email protected] cluster]$ ls
ceph.bootstrap-mds.keyring ceph.bootstrap-rgw.keyring ceph.conf ceph.mon.keyring
ceph.bootstrap-osd.keyring ceph.client.admin.keyring ceph-deploy-ceph.log
檔案內容如下:
[[email protected] cluster]$ cat ceph.client.admin.keyring
[client.admin]
key = AQBud3tXvqPyNxAAiFOJp3IPCahk1aXOZUx9DQ==
[[email protected] cluster]$

因此,可知

使用者名稱:admin

金鑰 :AQBud3tXvqPyNxAAiFOJp3IPCahk1aXOZUx9DQ==

掛載命令:

[[email protected] ~]$ sudo mount -t ceph 192.168.192.121:6789:/ /mnt/mycephfs -o name=admin,secret=AQBud3tXvqPyNxAAiFOJp3IPCahk1aXOZUx9DQ==
[[email protected] ~]$ df –h
Filesystem Size Used Avail Use% Mounted on
……
/dev/sdb1 15G 35M 15G 1% /var/lib/ceph/osd/ceph-3
tmpfs 98M 16K 98M 1% /run/user/42
tmpfs 98M 0 98M 0% /run/user/1000
192.168.192.121:6789:/ 60G 136M 60G 1% /mnt/mycephfs
[[email protected] ~]$

當然也可以以指定金鑰檔案的方式掛載:

將node0上的檔案ceph.client.admin.keyring中key單獨儲存在client節點(node3)的檔案admin.keyring中

[[email protected] ~]$ cat admin.keyring
AQBud3tXvqPyNxAAiFOJp3IPCahk1aXOZUx9DQ==
[[email protected] ~]$

掛載方式

[[email protected] ~]$ sudo mount -t ceph 192.168.192.121:6789:/ /mnt/mycephfs -o name=admin,secretfile=/home/ceph/admin.keyring
[[email protected] ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
……
tmpfs 98M 16K 98M 1% /run/user/42
tmpfs 98M 0 98M 0% /run/user/1000
192.168.192.121:6789:/ 60G 136M 60G 1% /mnt/mycephfs
[[email protected] ~]$
3.2.2 Fuse方式掛載

1. 安裝ceph-fuse工具包

[[email protected] ~]$ sudo yum -y install ceph-fuse

2. 在Cleint端節點,從監控主機複製Ceph的配置檔案到/etc/ceph目錄。

sudo mkdir -p /etc/ceph

sudo scp {user}@{server-machine}:/etc/ceph/ceph.conf /etc/ceph/ceph.conf

示例:

[[email protected] ~]$ sudo mkdir -p /etc/ceph
[[email protected] ~]$ sudo scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/ceph.conf

3. 在客戶端主機,從監控主機複製Ceph的祕鑰到/etc/ceph目錄。

sudo scp {user}@{server-machine}:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ ceph.client.admin.keyring

示例:

[[email protected] ~]$ sudo scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring

4. 確保Ceph的配置檔案和鑰匙有您的客戶機(例如,CHMOD 644)上有適當的檔案許可權。

5. 建立掛載點:

[[email protected] ~]$ sudo mkdir /mnt/cephfs

6. ceph-fuse掛載命令:

[[email protected] ~]$ sudo ceph-fuse -m 192.168.192.121:6789 /mnt/cephfs
ceph-fuse[8804]: starting ceph client
2016-07-05 20:02:30.072945 7fd8a87c4e80 -1 init, newargv = 0x7fd8b32c1e60 newargc=11
ceph-fuse[8804]: starting fuse
[[email protected] ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
……
ceph-fuse 60G 136M 60G 1% /mnt/cephfs
[[email protected] ~]$

3.2.3 cephfs解除安裝

命令:

sudo umount <掛載點>

示例

[[email protected] ~]$ sudo umount /mnt/mycephfs/

Ok!

作者:Younger Liu,

原文地址:http://blog.csdn.net/younger_china/article/details/51901421

相關推薦

實踐Ceph建立Cephfs檔案

Ceph檔案系統(CEPH FS)是一個POSIX相容的檔案系統,使用Ceph的儲存叢集來儲存其資料。使用Ceph的檔案系統,在你的Ceph的儲存叢集裡至少需要存在一個Ceph的元資料伺服器。作者:Younger Liu,原文地址:http://blog.csdn.net/y

Pycharm使用技巧建立py檔案時自動生成註釋作者、時間、檔名等

【轉】https://blog.csdn.net/xiemanr/article/details/79579932 我們在寫程式碼建立檔案時有時候希望在檔案頂部自動生成一些註釋,如作者、建立時間等資訊,不用每次手動輸入,畢竟“偷懶”是程式設計師的優良傳統。PyCharm提供了自動生成檔案頂部註

Vue.js學習筆記8建立多個Vue例項物件,認識Vue中的元件

建立多個Vue例項物件 這裡在同一個js檔案中建立了兩個Vue例項物件,它們各自能完成前面學的那些功能,同時使用物件名稱也可以互相訪問,協同實現一些功能。 index.html <!DOCTYPE html> <html lang="en" xmlns:v-

TypeScriptTypeScript+Ionic的Component檔案裡(ts檔案)如何建立物件

在Ionic檔案中,有以下幾個步驟: 1.import導包; import {Component} from '@angular/core'; import {IonicPage, NavParams, ToastController, AlertC

實踐cephfs + Ganesha環境部署

說在前面的一些話,會對搭建NFS-GANESHA環境有非常大的幫助:在我的環境中,使用的是未Update版本的centos 7.2,並且將其中所有的package包均作為repo源配置給系統。參見方法文章所述。如果您的環境是經過網路update過,那麼在您搭建環境過程中也儘量

openstackKilo入門 keystone篇建立租戶、使用者、角色

問題導讀1.思考建立管理員租戶前提是什麼?管理員租戶是否可以直接建立?2.通過操作理解租戶、使用者、角色三者之間的關係?3.如何實現新增角色到租戶、使用者? 程式碼讀不通,可以從右往左反著讀。1.建立管理員租戶、使用者、角色a.建立admin租戶 [Bash shell] 

實踐基於CentOS7部署Ceph叢集(版本10.2.2)

1 簡單介紹Ceph的部署模式下主要包含以下幾個型別的節點Ø Ceph OSDs: A Ceph OSD 程序主要用來儲存資料,處理資料的replication,恢復,填充,調整資源組合以及通過檢查其他OSD程序的心跳資訊提供一些監控資訊給Ceph Monitors . 當C

DOS命令實踐copy合併分卷壓縮檔案

 三體書友群的小雪同學@天琊如雪想要合併兩個分卷壓縮檔案(7z)格式的,他問我copy命令能否奏效,於是查看了copy的用法,發現copy的確可以合併分卷壓縮檔案,於是就做了一個實驗。         進入檔案所在位置併合並(合併為text.7z) 如圖   

Qt OpenGL教程01建立一個OpenGL視窗

void MyGLWidget::resizeGL(int w, int h) //重置OpenGL視窗的大小 { glViewport(0, 0, (GLint)w, (GLint)h); //重置當前的視口 glMatrixMod

深度學習3keras儲存keras學習好的深度神經網路模型引數為二進位制和txt檔案

http://blog.csdn.net/linmingan/article/details/50906141 由於工程需要,儲存為hdf5的keras權值在c/c++中的讀取比較不方便。因此將keras中的權值剝離出來,並儲存為二進位制檔案或者txt檔案。在進行程式碼的編

實踐簡潔大方的summernote 富文本編輯器插件的用發——實例篇

user 路徑 z-index 寫上 eno error: 而已 tab size 實例化後的summernote 是這樣子的 很漂亮對吧,而我做成頁面效果是這樣的: 先說說實例化一個summernote 的方法把,其實也不難,jq 選擇器選擇一個要變成富文本編

用Python建立最簡單的web服務器

web服務 localhost 服務器 pos 根目錄 cal body -m -- 利用Python自帶的包可以建立簡單的web服務器。在DOS裏cd到準備做服務器根目錄的路徑下,輸入命令: python -m Web服務器模塊 [端口號,默認8000]

DTOJ1001長方形周長和面積

作品 預處理 -s 簡化 賦值語句 標準輸入cin 麻煩 ret class DTOJ 1001:長方形周長和面積 解題報告 ——由翺翔的逗比w原創 題目信息: 題目描述 已知長方形的長和寬,求長方形的周長和面積? 輸入 一行:空格隔開的兩個整數,表示長和寬 輸

DTOJ2702余數

color ostream 運算 商業 知識共享 計算 clas 信息 數據 DTOJ 2702:余數 解題報告 2017.11.09 第一版 ——由翺翔的逗比w原創 題目信息: 題目描述 輸入兩個整數,求他們相除的余數 輸入 a b兩個數 輸出 a/

DTOJ2704數字互換

pan creat https 相同 eat 數字 block reat mon DTOJ 2704:數字互換 解題報告 2017.11.11 第一版 ——由翺翔的逗比w原創 題目信息: 題目描述 輸入兩個數作為交換數,輸出已交換順序後的兩個值。 輸入 兩

轉載模板線段樹

int pac 數據 pri note ont tag == else if 感謝勤奮的srf大蒟蒻!! 線段樹1 #include <bits/stdc++.h> #define maxn 100000 #define LL long long using

intellijintellij idea 建立與src級別的目錄

dir itl 發現 建立 img r文件 你是 .net .... 在使用三大框架時,通常會把配置文件放在自己新建的config文件夾裏,以便編程。在 myeclipse裏新建的config文件夾是Source Folder屬性的 這樣他的級別適合src一個級別,但是

Udacity解決字幕遮擋視頻內容怎麽辦?Udacity字幕大小調整

udacity tps 覆蓋 不能 down 可用 div 學習 body 字幕有沒有辦法顯示在最下方,否則把內容擋住了,根本看不清老師所指的內容 Chrome 的小插件,能方便地調節視頻的字幕大小,譬如:Udacity 的學習視頻字幕大小不能調節,有時候不想它占太多位置,

轉載實用根號怎麽打出來? <引自百度>

spa 顯示 求和 body 按鈕 多個 tar pst 和數 打根號(√)的方法有很多種: ①最簡便的方法是在桌面浮動的語言欄的小鍵盤上點右鍵選數學符號,軟鍵盤中就有了√。直接從鍵盤上打出來,方法如下: ②左手按住換檔鍵(Alt鍵)不放,右手依次按41420(不要按

AIpythonopencv

AIopencv2018-03-02 好的開始 就意味著成功了一半。 pip install opencv-python Collecting opencv-python Downloading opencv_python-3.4.0.12-cp36-cp36m-win_amd64.whl (33.3M