天天看點

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

ceph 是一個将資料存儲在單一分布式計算機叢集上的開源軟體平台。當你計劃建構一個雲時,你首先需要決定如何實作你的存儲。開源的 ceph 是紅帽原生技術之一,它基于稱為 rados 的對象存儲系統,用一組網關 api 表示塊、檔案、和對象模式中的資料。由于它自身開源的特性,這種便攜存儲平台能在公有雲和私有雲上安裝和使用。ceph 叢集的拓撲結構是按照備份和資訊分布設計的,這種内在設計能提供資料完整性。它的設計目标就是容錯、通過正确配置能運作于商業硬體和一些更進階的系統。

ceph 能在任何 linux 發行版上安裝,但為了能正确運作,它需要最近的核心以及其它最新的庫。在這篇指南中,我們會使用最小化安裝的 centos-7.0。

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

<a></a>

<code>**ceph-storage**</code>

<code>os: centos linux 7 (core)</code>

<code>ram:1 gb</code>

<code>cpu:1 cpu</code>

<code>disk: 20</code>

<code>network: 45.79.136.163</code>

<code>fqdn: ceph-storage.linoxide.com</code>

<code></code>

<code>**ceph-node**</code>

<code>network: 45.79.171.138</code>

<code>fqdn: ceph-node.linoxide.com</code>

在安裝 ceph 存儲之前,我們要在每個節點上完成一些步驟。第一件事情就是確定每個節點的網絡已經配置好并且能互相通路。

配置 hosts

要在每個節點上配置 hosts 條目,要像下面這樣打開預設的 hosts 配置檔案(lctt 譯注:或者做相應的 dns 解析)。

<code># vi /etc/hosts</code>

<code>45.79.136.163 ceph-storage ceph-storage.linoxide.com</code>

<code>45.79.171.138 ceph-node ceph-node.linoxide.com</code>

安裝 vmware 工具

工作環境是 vmware 虛拟環境時,推薦你安裝它的 open vm 工具。你可以使用下面的指令安裝。

<code># yum install -y open-vm-tools</code>

配置防火牆

如果你正在使用啟用了防火牆的限制性環境,確定在你的 ceph 存儲管理節點和用戶端節點中開放了以下的端口。

你必須在你的 admin calamari 節點開放 80、2003、以及4505-4506 端口,并且允許通過 80 号端口通路到 ceph 或 calamari 管理節點,以便你網絡中的用戶端能通路 calamari web 使用者界面。

你可以使用下面的指令在 centos 7 中啟動并啟用防火牆。

<code># systemctl start firewalld</code>

<code># systemctl enable firewalld</code>

運作以下指令使 admin calamari 節點開放上面提到的端口。

<code># firewall-cmd --zone=public --add-port=80/tcp --permanent</code>

<code># firewall-cmd --zone=public --add-port=2003/tcp --permanent</code>

<code># firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent</code>

<code># firewall-cmd --reload</code>

在 ceph monitor 節點,你要在防火牆中允許通過以下端口。

<code># firewall-cmd --zone=public --add-port=6789/tcp --permanent</code>

然後允許以下預設端口清單,以便能和用戶端以及監控節點互動,并發送資料到其它 osd。

<code># firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent</code>

如果你工作在非生産環境,建議你停用防火牆以及 selinux 設定,在我們的測試環境中我們會停用防火牆以及 selinux。

<code># systemctl stop firewalld</code>

<code># systemctl disable firewalld</code>

系統更新

現在更新你的系統并重新開機使所需更改生效。

<code># yum update</code>

<code># shutdown -r 0</code>

現在我們會建立一個單獨的 sudo 使用者用于在每個節點安裝 ceph-deploy工具,并允許該使用者無密碼通路每個節點,因為它需要在 ceph 節點上安裝軟體和配置檔案而不會有輸入密碼提示。

運作下面的指令在 ceph-storage 主機上建立有獨立 home 目錄的新使用者。

<code>[root@ceph-storage ~]# useradd -d /home/ceph -m ceph</code>

<code>[root@ceph-storage ~]# passwd ceph</code>

節點中建立的每個使用者都要有 sudo 權限,你可以使用下面展示的指令賦予 sudo 權限。

<code>[root@ceph-storage ~]# echo "ceph all = (root) nopasswd:all" | sudo tee /etc/sudoers.d/ceph</code>

<code>ceph all = (root) nopasswd:all</code>

<code>[root@ceph-storage ~]# sudo chmod 0440 /etc/sudoers.d/ceph</code>

現在我們會在 ceph 管理節點生成 ssh 密鑰并把密鑰複制到每個 ceph 叢集節點。

在 ceph-node 運作下面的指令複制它的 ssh 密鑰到 ceph-storage。

<code>[root@ceph-node ~]# ssh-keygen</code>

<code>generating public/private rsa key pair.</code>

<code>enter file in which to save the key (/root/.ssh/id_rsa):</code>

<code>created directory '/root/.ssh'.</code>

<code>enter passphrase (empty for no passphrase):</code>

<code>enter same passphrase again:</code>

<code>your identification has been saved in /root/.ssh/id_rsa.</code>

<code>your public key has been saved in /root/.ssh/id_rsa.pub.</code>

<code>the key fingerprint is:</code>

<code>5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node</code>

<code>the key's randomart image is:</code>

<code>+--[ rsa 2048]----+</code>

<code>[root@ceph-node ~]# ssh-copy-id ceph@ceph-storage</code>

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

要配置 pid 數目的值,我們會使用下面的指令檢查預設的核心值。預設情況下,是一個小的最大線程數 32768。

如下圖所示通過編輯系統配置檔案配置該值為一個更大的數。

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

配置并驗證了所有網絡後,我們現在使用 ceph 使用者安裝 ceph-deploy。通過打開檔案檢查 hosts 條目(lctt 譯注:你也可以用 dns 解析來完成)。

<code># vim /etc/hosts</code>

<code>ceph-storage 45.79.136.163</code>

<code>ceph-node 45.79.171.138</code>

運作下面的指令添加它的庫。

<code># rpm -uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm</code>

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

或者建立一個新檔案并更新 ceph 庫參數,别忘了替換你目前的 release 和版本号。

<code>[root@ceph-storage ~]# vi /etc/yum.repos.d/ceph.repo</code>

<code>[ceph-noarch]</code>

<code>name=ceph noarch packages</code>

<code>baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch</code>

<code>enabled=1</code>

<code>gpgcheck=1</code>

<code>type=rpm-md</code>

<code>gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc</code>

之後更新你的系統并安裝 ceph-deploy 軟體包。

我們運作下面的指令以及 ceph-deploy 安裝指令來更新系統以及最新的 ceph 庫和其它軟體包。

<code>#yum update -y &amp;&amp; yum install ceph-deploy -y</code>

使用下面的指令在 ceph 管理節點上建立一個目錄并進入新目錄,用于收集所有輸出檔案和日志。

<code># mkdir ~/ceph-cluster</code>

<code># cd ~/ceph-cluster</code>

<code># ceph-deploy new storage</code>

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

如果成功執行了上面的指令,你會看到它建立了配置檔案。

現在配置 ceph 預設的配置檔案,用任意編輯器打開它并在會影響你公共網絡的 global 參數下面添加以下兩行。

<code># vim ceph.conf</code>

<code>osd pool default size = 1</code>

<code>public network = 45.79.0.0/16</code>

現在我們準備在和 ceph 叢集關聯的每個節點上安裝 ceph。我們使用下面的指令在 ceph-storage 和 ceph-node 上安裝 ceph。

<code># ceph-deploy install ceph-node ceph-storage</code>

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

處理所有所需倉庫和安裝所需軟體包會需要一些時間。

當兩個節點上的 ceph 安裝過程都完成後,我們下一步會通過在相同節點上運作以下指令建立螢幕并收集密鑰。

<code># ceph-deploy mon create-initial</code>

如何在 CentOS 7.0 上配置 Ceph 存儲如何在 CentOS 7.0 上配置 Ceph 存儲

現在我們會設定磁盤存儲,首先運作下面的指令列出你所有可用的磁盤。

<code># ceph-deploy disk list ceph-storage</code>

結果中會列出你存儲節點中使用的磁盤,你會用它們來建立 osd。讓我們運作以下指令,請使用你的磁盤名稱。

<code># ceph-deploy disk zap storage:sda</code>

<code># ceph-deploy disk zap storage:sdb</code>

為了最後完成 osd 配置,運作下面的指令配置日志磁盤以及資料磁盤。

<code># ceph-deploy osd prepare storage:sdb:/dev/sda</code>

<code># ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1</code>

你需要在所有節點上運作相同的指令,它會清除你磁盤上的所有東西。之後為了叢集能運轉起來,我們需要使用以下指令從 ceph 管理節點複制不同的密鑰和配置檔案到所有相關節點。

<code># ceph-deploy admin ceph-node ceph-storage</code>

我們快完成了 ceph 叢集設定,讓我們在 ceph 管理節點上運作下面的指令檢查正在運作的 ceph 狀态。

<code># ceph status</code>

<code># ceph health</code>

<code>health_ok</code>

如果你在 ceph status 中沒有看到任何錯誤資訊,就意味着你成功地在 centos 7 上安裝了 ceph 存儲叢集。

在這篇詳細的文章中我們學習了如何使用兩台安裝了 centos 7 的虛拟機設定 ceph 存儲叢集,這能用于備份或者作為用于其它虛拟機的本地存儲。我們希望這篇文章能對你有所幫助。當你試着安裝的時候記得分享你的經驗。

本文來自雲栖社群合作夥伴“linux中國”,原文發表于2013-04-02.

繼續閱讀