歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Ceph存儲系統(ceph安裝,inkscope安裝)--未完

Ceph存儲系統(ceph安裝,inkscope安裝)--未完

日期:2017/3/1 12:12:21   编辑:關於Linux

Ceph存儲系統

概述

ceph是一個Linux PB級別的分布式存儲系統,ceph的目標簡單地定義為:
可輕松擴展到PB容量
對多種工作負載的高性能(每秒輸入/輸出操作[IOPS]和帶寬)
高可靠性
與常見的集中式存儲不同,分布式存儲技術並不是將數據存儲在某個或多個特定的節點上,而是通過網絡使用多台機器上的磁盤空間,並將這些分散的存儲資源構成一個虛擬的存儲設備,數據分散地存儲在這些機器的各個磁盤上

ceph架構

ceph架構大概可以劃分為四部分:客戶端(數據用戶)、元數據服務器(緩存和同步分布式元數據)、一個對象存儲集群(將數據和元數據作為對象存儲)、集群監視器(執行監視功能)
這裡寫圖片描述

ceph組件

ceph客戶端
Linux顯示文件系統的一個公共界面(通過虛擬文件系統VFS),ceph的用戶視圖就是透明的。管理員的視圖肯定是不同的,考慮到很多服務器會包含存儲系統這一潛在因素。從用戶的角度看,他們訪問大容量的存儲系統,卻不知道下面聚合成一個大容量的存儲池的元數據服務器,監視器還有獨立的對象存儲設備。用戶只是簡單地看到一個安裝點,在這個點上可以執行標准文件I/O

ceph元數據服務器
元數據服務器(cmds)的工作就是管理文件系統的名稱空間(pools)。雖然元數據和數據兩者都存儲在對象存儲集群,但兩者分別管理,支持可擴展性。事實上,元數據在一個元數據服務器集群上被進一步拆分,元數據服務器能夠自適應地復制和分配名稱空間,避免出現熱點。元數據服務器管理名稱空間部分,可以(為冗余和性能)進行重疊。元數據服務器到名稱空間的映射在 Ceph 中使用動態子樹邏輯分區執行,它允許 Ceph 對變化的工作負載進行調整(在元數據服務器之間遷移名稱空間)同時保留性能的位置
元數據服務器管理 inode 空間,將文件名轉變為元數據。元數據服務器將文件名轉變為索引節點,文件大小,和 Ceph 客戶端用於文件 I/O 的分段數據(布局)

ceph監視器
ceph包含實施集群映射管理的監視器,但是故障管理的一些要素是在對象存儲本身中執行的。當對象存儲設備發生故障或者新設備添加時,監視器就檢測和維護一個有效的集群映射。這個功能按一種分布的方式執行,這種方式中映射升級可以和當前的流量通信。Ceph 使用 Paxos,它是一系列分布式共識算法

ceph對象存儲集群
和傳統的對象存儲類似,Ceph 存儲節點不僅包括存儲,還包括智能。傳統的驅動是只響應來自啟動者的命令的簡單目標。但是對象存儲設備是智能設備,它能作為目標和啟動者,支持與其他對象存儲設備的通信和合作
從存儲角度來看,Ceph 對象存儲設備執行從對象到塊的映射(在客戶端的文件系統層中常常執行的任務)。這個動作允許本地實體以最佳方式決定怎樣存儲一個對象。Ceph 的早期版本在一個名為 EBOFS 的本地存儲器上實現一個自定義低級文件系統。這個系統實現一個到底層存儲的非標准接口,這個底層存儲已針對對象語義和其他特性(例如對磁盤提交的異步通知)調優。今天,B-tree 文件系統(BTRFS)可以被用於存儲節點,它已經實了部分必要功能(例如嵌入式完整性)
因為 Ceph 客戶實現 CRUSH,而且對磁盤上的文件映射塊一無所知,下面的存儲設備就能安全地管理對象到塊的映射。這允許存儲節點復制數據(當發現一個設備出現故障時)。分配故障恢復也允許存儲系統擴展,因為故障檢測和恢復跨生態系統分配。Ceph 稱其為 RADOS

1. ceph安裝

ceph的一個好處就是沒有中心節點,這樣以來任何兩個節點在存儲系統中都是對等的。官方文檔的介紹是使用一個admin節點來部署monitor和osds,如下圖
這裡寫圖片描述vcq9o6xhZG1pbr3atePTw21vbml0b3K92rXjwLS0+szmoaM8L3A+DQo8aDMgaWQ9"11-環境准備">1.1 環境准備

(1)准備3台Centos7服務器:
ceph-mon:192.168.123.202
ceph-osd0:192.168.123.203
ceph-osd1:192.168.123.204

(2)軟件環境:

# service firewalld stop
# chkconfig firewalld off
# setenforce 0
# vim /etc/selinux/config
修改為:SELINUX=disabled

更新centos的yum源

# rm -rf /etc/yum.repos.d/*.repo
# wget http://mirrors.aliyun.com/repo/Centos-7.repo
# wget http://mirrors.aliyun.com/repo/epel-7.repo

手動添加ceph的安裝源

# vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://download.ceph.com/rpm-hammer/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://download.ceph.com/rpm-hammer/el7/noarch/
gpgcheck=0

執行更新yum源

# yum clean all ; yum makecache

1.2 安裝前的准備

(1)為每個節點添加磁盤用於對象存儲集群

$ parted /dev/sdb
(parted) mklable gpt    #使用gpt分區表
(parted) mkpart primary xfs 0 100%
(parted) quit

$ mkfs.xfs /dev/sdb1    #使用xfs文件系統,單個文件大小沒有上限

(2)安裝ceph部署工具

# yum install -y ceph-deploy

(3)添加hosts信息
在所有節點hosts文件中添加如下信息

# vim /etc/hosts
192.168.123.202 ceph-mon
192.168.123.203 ceph-osd0
192.168.123.204 ceph-osd1

(4)同步時間
在管理節點admin(mon)上安裝ntp服務器 ,更新本地時間,啟動ntp服務

# yum install -y ntpdate ntp
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# ntpdate 0.centos.pool.ntp.org
# service ntpd start

設定其他節點與管理節點admin(mon)進行時間同步

# ntpdate ceph-mon

(5)在所有節點添加ceph專用用戶

# useradd ceph
# passwd ceph

(6)添加sudo權限

# echo "ceph ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/ceph
# chmod 0440 /etc/sudoers.d/ceph
# visudo
修改Defaults requiretty 為Defaults:ceph    !requiretty

(7)設置管理節點admin(mon)與osds節點ssh互通

# su - ceph
# ssh-keygen
# ssh-copy-id ceph@ceph-osd0
# ssh-copy-id ceph@ceph-osd1

(8)配置ssh的config文件
編輯管理節點admin(mon)的 /home/ceph/.ssh/config文件添加如下信息

# vim /home/ceph/.ssh/config
Host ceph-mon
   Hostname ceph-mon
   User ceph
Host ceph-osd0
   Hostname ceph-osd0
   User ceph
Host ceph-osd1
   Hostname ceph-osd1
   User ceph

如果不添加此文件,每次在執行ceph-deploye命令的時候需要指定 –username選項
修改文件權限

# chown 600 /home/ceph/.ssh/config

1.3 部署對象存儲集群

在這個過程中,我們創建一個對象存儲集群,包括一個ceph monitor和三個ceph osd daemon。
當這個集群達到 active+clean 的狀態時,再擴展這個集群,添加一個元數據服務器(metadate server)和更多的ceph monitor
ceph-deploy命令會輸出文件到當前目錄下,並且會利用輸出的文件。在整個執行的過程中,我們都是用ceph用戶

(1)切換到ceph 用戶

# su – ceph

(2)創建命令執行目錄並授權給ceph

$ sudo mkdir /my-cluster
$ sudo chown ceph:ceph /my-cluster
$ cd /my-cluster

(3)創建集群

$ ceph-deploy new ceph-mon

(4)為所有節點安裝部署ceph

$ ceph-deploy install ceph-mon ceph-osd0 ceph-osd1
此步驟可以所有節點單獨離線安裝:
# yum install -y redhat-lsb
# yum -y install ceph ceph-radosgw

(5)添加ceph monitor

$ ceph-deploy mon create-initial

(6)添加osds

$ ceph-deploy osd prepare ceph-mon:/dev/sdb1 ceph-osd0:/dev/sdb1 ceph-osd1:/dev/sdb1 
$ ceph-deploy osd activate ceph-mon:/dev/sdb1 ceph-osd0:/dev/sdb1 ceph-osd1:/dev/sdb1

(7)拷貝配置文件和admin key到admin節點和其他節點

$ ceph-deploy admin ceph-mon ceph-osd0 ceph-osd1
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring

拷貝之後可以使用ceph命令行而不用指定monitor地址和ceph.client.admin.keyring

(8)查看ceph狀態

$ ceph health
$ ceph status (或者$ ceph -s)

(9)添加元數據服務器(mds)

$ ceph-deploy mds create ceph-mon

接下來就可以使用ceph了

1.4 添加存儲

ceph可以用作文件存儲、塊存儲、對象存儲。這裡以塊存儲來演示ceph的使用

(1)創建存儲池(pools)

[ceph@ceph-osd1 ~]$ ceph osd pool create ceph-pool 256 256

(2)創建塊存儲設備

[ceph@ceph-osd1 ~]$ rbd create ceph-block --size 200 --pool ceph-pool

(3)將塊存儲設備映射到本地並掛載使用

[ceph@ceph-osd1 ~]$ sudo modprobe rbd
[ceph@ceph-osd1 ~]$ sudo rbd map ceph-block --pool ceph-pool
/dev/rbd0
[ceph@ceph-osd1 ~]$ rbd showmapped
id pool      image      snap device    
0  ceph-pool ceph-block -    /dev/rbd0

(4)格式化存儲設備,並掛載

[ceph@ceph-osd1 ~]$ sudo mkfs.ext4 /dev/rbd0
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done                            
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=4096 blocks, Stripe width=4096 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
 8193, 24577, 40961, 57345, 73729
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[ceph@ceph-osd1 ~]$ sudo mount /dev/rbd0 /mnt
[ceph@ceph-osd1 ~]$ ls /mnt
lost+found


Copyright © Linux教程網 All Rights Reserved