您好,登錄后才能下訂單哦!
這篇文章主要介紹了Ubuntu 16.04中怎么安裝Ceph存儲集群的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Ubuntu 16.04中怎么安裝Ceph存儲集群文章都會有所收獲,下面我們一起來看看吧。
Ceph是一個可靠、自動重均衡、自動恢復的分布式存儲系統,其主要特點就是分布式存儲,在存儲每一個數據時,都會通過計算得出該數據存儲的位置,本篇文章我分享一下在 Ubuntu 16.04 服務器上安裝建立一個 Ceph 集群。Ceph 集群包括這些組件:
Ceph OSD (ceph-osd) – 控制數據存儲,數據復制和恢復。Ceph 集群需要至少兩個 Ceph OSD 服務器。這次安裝中我們將使用三個 Ubuntu 16.04 服務器。
Ceph Monitor (ceph-mon) – 監控集群狀態并運行 OSD 映射 和 CRUSH 映射。這里我們使用一個服務器。
Ceph Meta Data Server (ceph-mds) – 如果你想把 Ceph 作為文件系統使用,就需要這個。
6 個安裝了 Ubuntu 16.04 的服務器節點
所有節點上的 root 權限
我將使用下面這些 hostname /IP 安裝:
主機名 IP 地址ceph-admin 10.0.15.10mon1 10.0.15.11osd1 10.0.15.21osd2 10.0.15.22osd3 10.0.15.23client 10.0.15.15
這次安裝,我將配置所有的 6 個節點來準備安裝 Ceph 集群軟件。所以你必須在所有節點運行下面的命令。然后確保所有節點都安裝了 ssh-server。
在所有節點創建一個名為 cephuser 的新用戶
useradd -m -s /bin/bash cephuserpasswd cephuser
創建完新用戶后,我們需要給 cephuser 配置無密碼的 sudo 權限。這意味著 cephuser 可以不先輸入密碼而獲取到 sudo 權限運行。
運行下面的命令來完成配置。
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuserchmod 0440 /etc/sudoers.d/cephusersed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
安裝 NTP 來同步所有節點的日期和時間。先運行 ntpdate 命令通過 NTP 設置日期。我們將使用 US 池的 NTP 服務器。然后開啟并使 NTP 服務在開機時啟動。
sudo apt-get install -y ntp ntpdate ntp-docntpdate 0.us.pool.ntp.orghwclock --systohcsystemctl enable ntpsystemctl start ntp
如果你正在 VMware 里運行所有節點,你需要安裝這個虛擬化工具。
sudo apt-get install -y open-vm-tools
在這個教程,我們需要 python 包來建立 ceph 集群。安裝 python 和 python-pip。
sudo apt-get install -y python python-pip parted
用 vim 編輯器編輯所有節點的 hosts 文件。
vim /etc/hosts
粘帖如下配置:
10.0.15.10 ceph-admin10.0.15.11 mon110.0.15.21 ceph-osd110.0.15.22 ceph-osd210.0.15.23 ceph-osd310.0.15.15 ceph-client
保存 hosts 文件,然后退出 vim 編輯器。
現在你可以試著在兩個服務器間 ping 主機名來測試網絡連通性。
ping -c 5 mon1
Ceph cluster Installation on Ubuntu 16.04
這一步,我們將配置 ceph-admin 節點。管理節點是用來配置監控節點和 osd 節點的。登錄到 ceph-admin 節點然后使用 cephuser 用戶。
ssh root@ceph-adminsu - cephuser
管理節點用來安裝配置所有集群節點,所以 ceph-admin 上的用戶必須有不使用密碼連接到所有節點的權限。我們需要為 ‘ceph-admin’ 節點的 cephuser 用戶配置無密碼 SSH 登錄權限。
生成 cephuser 的 ssh 密鑰。
ssh-keygen
讓密碼為空。
下面,為 ssh 創建一個配置文件
vim ~/.ssh/config
粘帖如下配置:
Host ceph-admin Hostname ceph-admin User cephuserHost mon1 Hostname mon1 User cephuserHost ceph-osd1 Hostname ceph-osd1 User cephuserHost ceph-osd2 Hostname ceph-osd2 User cephuserHost ceph-osd3 Hostname ceph-osd3 User cephuserHost ceph-client Hostname ceph-client User cephuser
保存文件并退出 vim。
Ceph-admin configuration
改變配置文件權限為 644。
chmod 644 ~/.ssh/config
現在使用 ssh-copy-id 命令增加密鑰到所有節點。
ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1 >> ~/.ssh/known_hostsssh-copy-id ceph-osd1ssh-copy-id ceph-osd2ssh-copy-id ceph-osd3ssh-copy-id mon1
當請求輸入密碼時輸入你的 cephuser 密碼。
Ceph-admin deploy ssh key to all cluster nodes
現在嘗試從 ceph-admin 節點登錄 osd1 服務器,測試無密登錄是否正常。
ssh ceph-osd1
SSH Less password from ceph-admin to all nodes cluster
出于安全原因,我們需要在服務器打開防火墻。我們更愿使用 Ufw(不復雜防火墻)來保護系統,這是 Ubuntu 默認的防火墻。在這一步,我們在所有節點開啟 ufw,然后打開 ceph-admin、ceph-mon 和 ceph-osd 需要使用的端口。
登錄到 ceph-admin 節點,然后安裝 ufw 包。
ssh root@ceph-adminsudo apt-get install -y ufw
打開 80,2003 和 4505-4506 端口,然后重啟防火墻。
sudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 2003/tcpsudo ufw allow 4505:4506/tcp
開啟 ufw 并設置開機啟動。
sudo ufw enable
UFW Firewall with Ceph service
從 ceph-admin 節點,登錄到監控節點 mon1 然后安裝 ufw。
ssh mon1sudo apt-get install -y ufw
打開 ceph 監控節點的端口然后開啟 ufw。
sudo ufw allow 22/tcpsudo ufw allow 6789/tcpsudo ufw enable
最后,在每個 osd 節點 ceph-osd1、ceph-osd2 和 ceph-osd3 上打開這些端口 6800-7300。
從 ceph-admin 登錄到每個 ceph-osd 節點安裝 ufw。
ssh ceph-osd1sudo apt-get install -y ufw
在 osd 節點打開端口并重啟防火墻。
sudo ufw allow 22/tcpsudo ufw allow 6800:7300/tcpsudo ufw enable
ufw 防火墻配置完成。
這個教程里,我們有 3 個 OSD 節點,每個節點有兩塊硬盤分區。
/dev/sda 用于根分區
/dev/sdb 空閑分區 – 20GB
我們要使用 /dev/sdb 作為 ceph 磁盤。從 ceph-admin 節點,登錄到所有 OSD 節點,然后格式化 /dev/sdb 分區為 XFS 文件系統。
ssh ceph-osd1ssh ceph-osd2ssh ceph-osd3
使用 fdisk 命令檢查分區表。
sudo fdisk -l /dev/sdb
格式化 /dev/sdb 分區為 XFS 文件系統,使用 parted 命令創建一個 GPT 分區表。
sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
下面,使用 mkfs 命令格式化分區為 XFS 格式。
sudo mkfs.xfs -f /dev/sdb
現在檢查分區,然后你會看見一個 XFS 文件系統的 /dev/sdb 分區。
sudo fdisk -s /dev/sdbsudo blkid -o value -s TYPE /dev/sdb
Format partition ceph OSD nodes
在這步,我們將從 ceph-admin 安裝 Ceph 到所有節點。馬上開始,先登錄到 ceph-admin 節點。
ssh root@ceph-adminsu - cephuser
首先我們已經在系統上安裝了 python 和 python-pip。現在我們需要從 pypi python 倉庫安裝 Ceph 部署工具 ‘ceph-deploy’。
用 pip 命令在 ceph-admin 節點安裝 ceph-deploy 。
sudo pip install ceph-deploy
注意: 確保所有節點都已經更新。
ceph-deploy 工具已經安裝完畢后,為 Ceph 集群配置創建一個新目錄。
創建一個新集群目錄。
mkdir clustercd cluster/
下一步,用 ceph-deploy 命令通過定義監控節點 mon1 創建一個新集群。
ceph-deploy new mon1
命令將在集群目錄生成 Ceph 集群配置文件 ceph.conf。
Generate new ceph cluster configuration
用 vim 編輯 ceph.conf。
vim ceph.conf
在 [global] 塊下,粘貼下面的配置。
# Your network addresspublic network = 10.0.15.0/24osd pool default size = 2
保存文件并退出編輯器。
現在用一個命令從 ceph-admin 節點安裝 Ceph 到所有節點。
ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1
命令將自動安裝 Ceph 到所有節點:mon1、osd1-3 和 ceph-admin – 安裝將花一些時間。
現在到 mon1 節點部署監控節點。
ceph-deploy mon create-initial
命令將創建一個監控密鑰,用 ceph 命令檢查密鑰。
ceph-deploy gatherkeys mon1
Deploy key ceph
在所有節點上安裝了 Ceph 之后,現在我們可以增加 OSD 守護進程到該集群。OSD 守護進程將在磁盤 /dev/sdb 分區上創建數據和日志 。
檢查所有 osd 節點的 /dev/sdb 磁盤可用性。
ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3
disk list of osd nodes
你將看見我們之前創建 XFS 格式的 /dev/sdb。
下面,在所有 OSD 節點上用 zap 選項刪除該分區表。
ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
這個命令將刪除所有 Ceph OSD 節點的 /dev/sdb 上的數據。
現在準備所有 OSD 節點,請確保結果沒有報錯。
ceph-deploy osd prepare ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
當你看到 ceph-osd1-3 結果已經準備好供 OSD 使用,就表明命令已經成功。
Prepare the ceph-osd nodes
用下面的命令激活 OSD:
ceph-deploy osd activate ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
現在你可以再一次檢查 OSDS 節點的 sdb 磁盤。
ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3
Ceph osds activated
結果是 /dev/sdb 現在已經分為兩個區:
/dev/sdb1 – Ceph Data
/dev/sdb2 – Ceph Journal
或者你直接在 OSD 節點山檢查。
ssh ceph-osd1sudo fdisk -l /dev/sdb
Ceph OSD nodes were created
接下來,部署管理密鑰到所有關聯節點。
ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-osd3
在所有節點運行下面的命令,改變密鑰文件權限。
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Ceph 集群在 Ubuntu 16.04 已經創建完成。
在第 4 步,我們已經安裝并創建了一個新 Ceph 集群,然后添加了 OSD 節點到集群。現在我們應該測試集群確保它如期工作。
從 ceph-admin 節點,登錄到 Ceph 監控服務器 mon1。
ssh mon1
運行下面命令來檢查集群是否健康。
sudo ceph health
現在檢查集群狀態。
sudo ceph -s
你可以看到下面返回結果:
Ceph Cluster Status
確保 Ceph 健康狀態是 OK 的,有一個監控節點 mon1 IP 地址為 ‘10.0.15.11’。有 3 個 OSD 服務器都是 up 狀態并且正在運行,可用磁盤空間為 45GB – 3x15GB 的 Ceph 數據 OSD 分區。
我們在 Ubuntu 16.04 建立一個新 Ceph 集群成功。
關于“Ubuntu 16.04中怎么安裝Ceph存儲集群”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Ubuntu 16.04中怎么安裝Ceph存儲集群”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。