NFS做存儲與KVM集成

origin: http://www.cnblogs.com/ilanni/p/3974323.html

以前有關NFS的文章,我們介紹的都是NFS的使用掛載等等。這篇文章我們介紹有關NFS作爲存儲使用。

既然本篇文章的主題是有關NFS的,我們還是先把NFS服務器搭建完畢。具體搭建過程可參考《爛泥:NFS存儲與VSphere配合使用》,這篇文章。

在此有關NFS配置文件/etc/exports中的幾個參數,我們需要先介紹下:

ro 該主機對該共享目錄有隻讀權限。

rw 該主機對該共享目錄有讀寫權限,需要配合no_root_squash參數使用。

root_squash 該參數爲缺省參數,客戶機用root用戶訪問該共享文件夾時,將root用戶映射成匿名用戶即nobody用戶不具有對目錄具有創建和刪除操作。

no_root_squash 客戶機用root訪問該共享文件夾時,不映射root用戶。即具有root用戶所有權限,具有對目錄具有創建和刪除操作。

all_squash 客戶機上的任何用戶訪問該共享目錄時都映射成匿名用戶。

anonuid 將客戶機上的用戶映射成指定的本地用戶ID的用戶。

anongid 將客戶機上的用戶映射成屬於指定的本地用戶組ID。

sync 資料同步寫入到內存與硬盤中。

async 資料會先暫存於內存中,而非直接寫入硬盤。

Insecure 允許從這臺機器過來的非授權訪問。

因爲NFS是做存儲使用的,所以我們必須爲共享文件配置讀寫以及root用戶權限,同時考慮到數據的安全的問題,建議還需要配置同步權限。具體配置權限如下:

clip_image001

通過上圖,我們可以看到NFS共享目錄/nfs,具有root用戶權限,同時具有可讀寫、同步的權限。而NFS共享目錄/home/datasoft/soft/iso/目錄,只具有可讀權限。爲什麼會是這樣,我們會在下面就行講解。

我們現在先來測試下,NFS共享目錄的權限。

登錄KVM服務器掛載NFS共享目錄。如下:

clip_image002

通過上圖。我們可以看到NFS的/nfs目錄掛載到KVM服務器的/nfs目錄下,/home/datasoft/soft/iso/目錄掛載到NFS的/nfs目錄下。

下面我們開始測試各自掛載目錄的權限,如下:

clip_image003

clip_image004

通過以上兩張圖可以看出,我們對在KVM服務器上對NFS共享目錄/nfs的操作都會在NFS服務器上/nfs進行同步,而且我們也具有相應的讀寫、創建、刪除權限。

clip_image005

通過上圖我們可以看到,我們在KVM服務器上對NFS共享目錄/home/datasoft/soft/iso/只具有讀權限權限,而沒有創建和刪除權限。這個也可以和我們在設置的權限相對應。

clip_image006

注意NFS共享目錄/home/datasoft/soft/iso/儘管有讀寫權限,但是因爲沒有加入no_root_squash參數,默認使用root_squash參數。儘管已經給出rw參數,但是由於不具有root用戶權限,所以沒有創建和刪除權限。

以上有關NFS共享目錄權限測試完畢後,我們現在就開始配置NFS與KVM進行集成。

有關KVM與NFS存儲我們分爲圖形界面方式和命令行方式。

我們首先來介紹命令行方式,現在把KVM的VM的硬盤創建到NFS服務器上,通過如下命令:

qemu-img create -f qcow2 /nfs/nfs.img 20G

ifconfig eth0|grep "inet addr"|awk '{print $2}'|cut -d: -f2

clip_image007

創建完畢後,我們現在登陸NFS服務器查看剛剛生成的文件。如下:

clip_image008

通過上圖我們可以看到,現在KVM的VM硬盤已經存在NFS服務器上。

現在我們開始創建VM,使用如下命令:

virt-install -n nfs -r 2048 --os-type=linux --vcpus=1 -c /iso/CentOS-6.5-i386-minimal.iso --disk path=/nfs/nfs.img,format=qcow2,bus=ide --boot cdrom,menu=on -b br0 --vnc --vnclisten=0.0.0.0 --vncport=5993

clip_image009

但是此時會發現系統,提示如下的錯誤信息:

ERROR 內部錯誤 Process exited while reading console log output: char device redirected to /dev/pts/1

qemu-kvm: -drive file=/nfs/nfs.img,if=none,id=drive-ide0-0-0,format=qcow2,cache=none: could not open disk image /nfs/nfs.img: Permission denied

經過多次實驗,如果把VM的硬盤文件權限修改爲777,就不會報錯。如下:

clip_image010

但是這種方法你可以看到,這對VM的安全性很低的。

經過查詢資料發現,我們只需要把/etc/libvirt/qemu.conf文件中有關用戶和用戶組的註釋去掉即可,這樣就不需要修改有關VM的配置。qemu.conf 是libvirt對QEMU的驅動的配置文件,包括VNC、SPICE等和連接它們時採用的權限認證方式的配置,也包括內存大頁、SELinux、Cgroups等相關配置。

如下:vi /etc/libvirt/qemu.conf

clip_image011

修改完畢後要重啓qemu。如下:

/etc/init.d/libvirtd restart

image

然後再次創建虛擬機,如下:

clip_image014

系統沒有報錯,說明現在可以正式安裝VM。

現在通過VNC客戶端,進行系統安裝,如下:

clip_image015

以上是有關命令行下的配置,說實話命令行下配置還是比較簡單的。下面我來介紹下如何在圖形界面下使用NFS存儲,圖形界面下需要建立相應的存儲池。

注意爲了更好的實驗效果,我現在把KVM服務器上所有關NFS掛載已經卸載。

啓動KVM虛擬機管理virt-manager,如下:

clip_image016

現在我們爲KVM創建存儲池,如下:

clip_image017

clip_image018

在這個界面中,類型一定要注意,選擇netfs:網絡導出的目錄。

clip_image019

在這個界面中“目標路徑”填寫KVM服務器中你需要掛載點。我現在需要把NFS的鏡像文件權限掛載到/iso目錄下。

“主機名”中填寫NFS服務器。

“源路徑”中填寫NFS共享的目錄。

clip_image020

這個界面是我們用來存儲鏡像文件的存儲池。下面創建VM硬盤的存儲池,利用上邊同樣的方法,如下:

clip_image021

clip_image022

VM硬盤的存儲池創建完畢後,此時並沒有創建VM的硬盤文件。現在開始創建VM的硬盤文件,如下:

clip_image023

clip_image024

VM的硬盤文件創建完畢後,我們就可以新建虛擬機。如下:

clip_image025

clip_image026

clip_image027

在ISO鏡像中,我們可以選擇在前面創建的鏡像文件存儲池。

clip_image028

clip_image029

在VM的硬盤我們,可以選擇前面創建的硬盤文件。

clip_image030

clip_image031

啓動VM,開始進行安裝系統。

現在看看KVM服務器上NFS掛載情況。如下:

df –h

clip_image032

通過上圖我們可以發現,其實命令行和圖形界面配置的都是一樣的。

以上就是有關,NFS作爲存儲與KVM進行集成時的相關配置方法以及注意點。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章