Ceph是一個開源存儲平台,它提供高性能,可靠性和可伸縮性。它是一個免費的分布式存儲系統,可為對象,塊和文件級存儲提供接口,而不會出現單點故障。
這是Ceph教程系列的第三部分。在第一部分中,我向您展示了如何在CentOS7上構建具有多個節點的“ Ceph集群”。在第二部分 是一個指南,說明如何在CentOS的7使用頭孢作為塊設備在第三部分,我將告訴你如何安裝Ceph的是作為客戶端在CentOS 7的文件系統。
先決條件
- Ceph集群-1個Ceph-admin節點,1個Moinitor節點(ceph-mon),3個Ceph-osd節點(請參閱第1部分)。
- Client2-CentOS 7服務器(請參閱第2部分)。
- 根特權
步驟1-配置Client2節點
在第一步中,我們將進行客戶端的基礎安裝。這與我們在其他群集節點上使用的過程相同。我們將在盒子上創建一個名為cephuser的新用戶,將時間與ntpdate同步,為cephuser配置sudo無密碼等。所以讓我們開始吧...
以SSH身份作為root用戶連接到client2節點:
ssh root@client2
我們以root用戶權限登錄到服務器,現在我們可以創建新的cephuser。
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD
創建新用戶后,通過在sudoers目錄中創建新的配置文件為用戶啟用sudo無密碼。
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser
接下來,安裝NTP,ntpdate命令行工具和open-vm工具。然后,使用ntpdate更新並同步系統時間。
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
禁用SELinux並編輯主機的文件。
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts
粘貼主機配置如下:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
10.0.15.16 client2
保存主機文件並退出編輯器。現在嘗試ping ceph-admin節點以測試連接和主機名設置。
ping -c 3 ceph-admin
您應該看到結果為ceph-admin節點IP地址。
第2步-在Client2節點上安裝Ceph Common Utilities
可以從Ceph存儲庫中安裝ceph-common軟件包。它包含用於安裝Ceph存儲群集並與之交互的Ceph實用程序。
在繼續安裝ceph-common軟件包之前,我們必須添加epel-repository和Ceph存儲庫。
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
更新系統並安裝Ceph通用實用程序。
sudo yum -y update
sudo yum -y install ceph-common
接下來,我們必須在ceph-admin節點上添加配置。
第3步-配置Ceph-admin節點
在此步驟中,我們將配置集群,以便我們可以使用ssh密鑰(無需密碼)從admin連接到client2節點。
以root用戶身份連接到ceph-admin節點,然后使用su登錄到cephuser。
ssh root@ceph-admin
su - cephuser
編輯ssh配置文件並定義一個新的client2配置部分。
vim ~/.ssh/config
在文件末尾,將以下配置粘貼:
Host client2
Hostname client2
User cephuser
接下來,將客戶端節點的主機配置行添加到ceph-admin節點上的“ / etc / hosts”文件中。
sudo vim /etc/hosts
將主機配置粘貼到文件末尾。
10.0.15.16 client2
保存主機文件並退出編輯器。
現在,將ceph-admin節點的ssh密鑰添加到client2節點。
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD
ceph-admin密鑰已添加。現在,我們無需使用ceph-admin節點的密碼即可訪問client2節點。
ssh client2
第4步-創建Ceph MetaData服務器
如果要運行和掛載CephFS,則需要一個ceph元數據服務器(Ceph MDS)。Ceph MDS在OSD節點上運行。我們可以使用ceph-admin節點中的ceph-deploy命令將Ceph MDS安裝到OSD節點。
登錄到ceph-admin節點並成為cephuser。
ssh root@ceph-admin
su - cephuser
轉到集群目錄並運行ceph-deploy命令以創建新的ceph元數據服務器(Ceph MDS)。我將使用“ osd1”節點作為元數據服務器。
cd cluster/
ceph-deploy mds create osd1
在osd1節點上創建MDS服務器后,我們必須使用ssh連接到該節點。
ssh osd1
接下來,為MDS服務器創建新的池,至少我們需要2個池-cephfs_data和cephfs_metadata。
在“ osd1”節點上創建新池。
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
新池已准備就緒。現在,我們可以使用命名池創建新文件系統:cephfs_data和cephfs_metadata。
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs =文件系統名稱。
完成此步驟而沒有錯誤時,請使用以下命令檢查MDS服務器。
檢查MDS服務器列表:
ceph fs ls
現在您可以看到文件系統名稱為“ cephfs”,元數據池為“ cephfs_metadata”,數據池為“ cephfs_data”。
顯示MDS狀態:
ceph mds stat
在繼續操作之前,請確保MDS已啟動並處於活動狀態。
第5步-使用內核驅動程序掛載CephFS
Ceph MDS服務器已在“ osd1”節點上創建。現在我們可以使用CephFS。在此步驟中,我們將使用mount命令將CephFS作為文件系統安裝在client2節點上。
在開始下一步之前,我們需要從client2節點上的ceph存儲庫中安裝ceph-fuse。
sudo yum -y install ceph-fuse
安裝完成后,復制用戶密鑰。在我們的默認配置中,啟用了cephx身份驗證。默認用戶為“ admin”。
使用scp命令將密鑰從MDS服務器節點“ osd1”復制到client2節點,然后更改密鑰的許可權。
ssh cephuser@osd1 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key
接下來,創建一個新的cephfs目錄並將CephFS掛載到該目錄。
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
注意:
MDS節點osd1中的默認用戶名= admin secretfile = ceph.key
您將在列表中看到一個新的類型為'ceph'的文件系統。
sudo df -hT
要卸載文件系統,請使用umount命令實用程序。
umount /mnt/cephfs
步驟6-將CephFS掛載為保險絲
成功將CephFS掛載為文件系統后,我們將CephFS掛載為Fuse(USErspace中的文件系統)。對於此設置,我們需要從監視節點“ mon1”復制配置文件“ ceph.conf”和密鑰。
在client2節點上創建一個新的ceph目錄,並復制配置文件和密鑰。
sudo mkdir -p /etc/ceph/
sudo scp root@mon1:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp root@mon1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
更改文件的權限。
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
接下來,創建一個新的保險絲目錄,並將CephFS作為Fuse掛載到“ / mnt / fuse”目錄。
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse
確保沒有錯誤,並檢查是否已安裝CephFS。
sudo df -hT
要卸載CephFS Fuse,請使用kill命令。
sudo ps -aux | grep ceph-fuse
kill -2 PID
步驟7-使用fstab掛載CephFS
在此步驟中,我們將使用fstab永久掛載CephFS。我們將編輯/ etc / fstab並使用mount命令使用內核驅動程序添加用於安裝CephFS的配置。
編輯fstab文件。
sudo vim /etc/fstab
將以下配置粘貼到文件末尾:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
保存文件並退出vim。
使用mount -a命令從fstab掛載所有磁盤,然后列出所有可用磁盤。
sudo mount -a
sudo df -hT
最后,重新引導系統並檢查可用磁盤,以確保配置是重新引導安全的。
reboot
sudo df -hT
您會看到CephFS已通過fstab自動掛載。