OpenStack(企業私有雲)萬里長征第六步——OpenStack網絡及虛擬機存儲位置


一、前言

昨天又裝了一遍OpenStack。碼農這項工作就如同人生,永遠有你想不到的意外在等着你,時而是驚喜時而是悲傷。在裝的過程中倒是很順利,只是在安裝完成之后碰到了兩個之前沒有碰到的問題,這里記錄下來以供需要之人查閱。

二、Q1 網絡問題

由於管理網絡需要訪問互聯網且虛擬機同樣需要訪問互聯網,所以管理網絡和external網絡考慮能不能放到同一個網段去。我本身對網絡這塊不是很熟悉,之前我考慮同一個服務器不同網卡如果配置同一個網段勢必會造成只有一個網卡能起作用,因為數據只可能從一個網口出去。網上也查閱了相關資料,都說理論上可以,但是這種場合最好只出現在負載均衡等情況下,想來是有道理的。

但是對於我這個愛折騰的人來說,什么東西都要親自試過了我才能確定,而且我考慮虛擬機訪問外部網絡網卡是指定好的,這樣應當不會造成沖突,於是在安裝好之后就開始實驗。

網絡配置情況是這樣的:管理網絡采用外部網絡192.168.10.0/24,虛擬機網絡無需多言,外部網絡也采用192.168.10.0/24網段,即從交換機直接接了兩根線到主節點上。

安裝好OpenStack后修改/etc/neutron/plugins/ml2/ml2_conf.ini文件,將外部網絡配置到主節點的第三塊網卡(具體參考OpenStack(企業私有雲)萬里長征第四步——DevStack整體安裝規划及使用)。而后在OpenStack中采用上述文章中的方式創建外部網絡,結果居然成功了。

說明將管理網絡和外部網絡配置成同一個網段的方案是可行的,但是此處需要注意的是在創建external網絡的時候需要設置一下地址池,選擇一個網段,防止IP沖突。

三、Q2 虛擬機存儲位置問題

新的服務器配置比較高,有兩塊固態硬盤,剩下的為機械硬盤,這樣就考慮兩塊固態硬盤做RAID 0用於安裝操作系統,其余硬盤做RAID 5用於存放數據(但是由於固態硬盤還沒有完全到貨,有幾台全部為機械硬盤,即只做了一個RAID)。在安裝前我心里就一驚,之前我沒有碰到過這種方案,因為OpenStack勢必是把虛擬機、鏡像等數據存放在操作系統目錄中的,這樣幾百G的固態硬盤顯然是不可能夠用的。

安裝完之后,果然如我所設想,在創建虛擬機的時候由於OpenStack的策略,使得虛擬機全部部署到了不包含固態硬盤的服務器上,這是因為NOVA的filter Scheduler,在創建虛擬機的時候會根據各種條件對計算節點進行打分,而后根據權重算出最有節點去部署,當然包含固態硬盤的服務器由於硬盤太小,所以分數太低而無法部署虛擬機。

碼農的職責就是無論碰到的是驚喜或者憂傷都要迎難而上,既然這樣那就嘗試着能不能把包含固態硬盤服務器的虛擬機存儲位置改到機械硬盤上。

於是在簡單的搜索之后開始嘗試。首先查到了虛擬即存放位置存儲在/etc/nova/nova.conf文件的下面兩行信息中。

instances_path = /opt/stack/data/nova/instances
state_path = /opt/stack/data/nova

這就容易了,我只需要將機械硬盤創建分區、格式化,而后掛載到一個新目錄,並修改上述虛擬機存儲位置就好了嘛。

3.1 創建分區、格式化及自動掛載

顯示所有硬盤及所屬分區情況

sudo fdisk -lu

通過此命令可以看到服務器中包含哪些硬盤,以及是否創建分區等。

對硬盤進行分區

sudo fdisk /dev/sdb

查看第一步中需要分區的硬盤,執行上述命令,將/dev/sdb替換為你要分區的硬盤。

硬盤格式化

sudo mkfs -t ext4 /dev/sdb

同樣將/dev/sdb替換為你要分區的硬盤,上述命令將分好區的硬盤格式化為ext4格式。

掛載硬盤分區

sudo mount -t ext4 /dev/sdb /devdata

同樣將/dev/sdb替換為你要分區的硬盤,並將/devdata替換為想要掛載的地方並創建該目錄,此命令將 /dev/sdb 分區掛載到目錄 /devdata。

在終端窗口中輸入如下命令查看掛載情況:

sudo df -lh

配置硬盤在系統啟動時自動掛載

1、首先查看需要自動掛載硬盤的UUID

ls -all /dev/disk/by-uuid 

2、在文件 /etc/fstab 中加入如下配置:

# /devdata was on /dev/sdb
UUID=37eaa526-5d96-4237-8468-603df5216ce9     /devdata     ext4     defaults     0     3

將上述UUID后的值替換為1中查看到的硬盤對應的UUID號,將/devdata替換為你的掛載目錄。

3.2 遷移虛擬機存儲位置

我將機械硬盤直接掛載到了/data目錄,滿心歡喜的以為將存儲位置修改成/data之后即可搞定,然而一切高興的太早,無論我怎么操作(又是將原始目錄中的內容copy到/data下,又是修改/data的所屬用戶)在OpenStack中始終無法查看虛擬機,甚至整個OpenStack幾乎崩潰。

這讓我很是着急,難道白辛苦一天又要從頭開始嗎,於是機智如我怎能不立即想到將機械硬盤直接掛載到/opt/stack/data/nova下而不去修改nova.conf配置,這樣應該就能直接解決問題了吧,說干就干。在簡單折騰之后直接成功了。So Easy。

當然此步需要注意兩點:

  1. 掛載完成之后需要在/opt/stack/data/nova目錄中創建instances目錄,否則會報找不到目錄的錯誤。
  2. 修改此目錄的權限為stack,此目錄權限可能會改成root。

所以最好是先將/opt/stack/data/nova中的內容拷至其他目錄進行備份,待掛載后再粘貼回來。當然最好的方式是先進行掛載操作,再安裝OpenStack。

四、總結

以上便是此次部署中碰到並解決的兩個實際問題,此次安裝整體較順利,相對於去年安裝Cloudera的過程,不知道要好了多少倍。大概經歷了一年之后,各方面都變化不少吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM