1.安裝帶有NVMe支持的qemu.
1.1 $:git clone https://github.com/OpenChannelSSD/qemu-nvme.git
1.2 git下載完成后執(zhí)行命令配置,編譯,安裝
$:cd qemu-nvme
$:./configure --enable-linux-aio --target-list=x86_64-softmmu --enable-kvm
$:make
$:make install
2.創(chuàng)建qemu虛擬機(jī)
2.1創(chuàng)建空白磁盤
$:qemu-img create -f raw ubuntu.raw 50G
(有空間就建大點,如何你想在虛擬機(jī)內(nèi)部編譯內(nèi)核,磁盤一定要建大點)棕兼;
2.2, 檢查KVM是否可用
QEMU使用KVM來提升虛擬機(jī)性能上陕,如果不啟用KVM會導(dǎo)致性能損失。要使用KVM,首先要檢查硬件是否有虛擬化支持:
$:grep -E 'vmx|svm' /proc/cpuinfo`
如果有輸出則表示硬件有虛擬化支持衷快。其次要檢查kvm模塊是否已經(jīng)加載:
$:lsmod | grep kvm
kvm_intel 142999 0
kvm 444314 1 kvm_intel
如果kvm_intel/kvm_amd买喧、kvm模塊被顯示出來傍睹,則kvm模塊已經(jīng)加載简逮。最好要確保qemu在編譯的時候使能了KVM,即在執(zhí)行configure腳本的時候加入了--enable-kvm選項今缚。
2.3裝系統(tǒng)
啟動虛擬機(jī)安裝操作系統(tǒng)消别。
執(zhí)行下面的命令啟動帶有cdrom的虛擬機(jī):
$:qemu-system-x86_64 -m 2048 -enable-kvm ubuntu.raw -cdrom ~/ubuntu.iso ?
-m 指定虛擬機(jī)內(nèi)存大小抛蚤,默認(rèn)單位是MB, -enable-kvm使用KVM進(jìn)行加速,-cdrom添加fedora的安裝鏡像寻狂∷昃可在彈出的窗口中操作虛擬機(jī),安裝操作系統(tǒng), ubuntu.raw為之前用qemu-img創(chuàng)建的的空白磁盤,安裝完成后重起虛擬機(jī)便會從硬盤(ubuntu.raw)啟動蛇券。之后再啟動虛擬機(jī)只需要執(zhí)行:
$:qemu-system-x86_64 -m 2048 -enable-kvm ubuntu.raw
3.給虛擬機(jī)換內(nèi)核
開發(fā)需在上帶有nvme的支持的內(nèi)核,執(zhí)行下列命令
$:git clone https://github.com/OpenChannelSSD/linux.git
$:cd linux
$:git checkout pblk-cnex
$:make menuconfig ?//執(zhí)行命令后,會出現(xiàn)圖形界面的內(nèi)核配置選項,需進(jìn)入device drive中將nvme支持模塊選項,并保存,可參考http://blog.csdn.net/trochiluses/article/details/9663743?編譯內(nèi)核
$:make bzImage?
$:make modules
$:make modules_install
$:make install
4.創(chuàng)建一個空白文件充當(dāng)nvme設(shè)備
$:dd if=/dev/zero of=blknvme bs=1M count=1024
5.ssh登入虛擬機(jī)(非必須)
宿主機(jī)需要用ssh登入訪問虛擬機(jī)缀壤,可以采取兩種方式
5.1: 端口映射
把虛擬機(jī)的22端口映射到宿主機(jī)的其他還未使用的端口(ex:2223),方法就是在虛擬機(jī)啟動命令中添加參數(shù)-redir tcp:2223::22
這時宿主機(jī)通過命令
$:ssh -p 2223 用戶名@127.0.0.1
就可以ssh登入訪問虛擬機(jī)了。
5.2:建立網(wǎng)橋:
首先在宿主機(jī)上執(zhí)行下列命令纠亚,安裝含有建立虛擬網(wǎng)絡(luò)設(shè)備 ( TAP interfaces ) 的工具 uml-utilities 和橋接工具 bridge-utils:
$:sudo apt-get? install uml-utilities
$:sudo apt-get? install bridge-utils
$:lsmod | grep tun #查看是否加載tun模塊
$:modprobe tun #加載tun模塊
然后執(zhí)行下列命令編輯 /etc/network/interfaces文件,(請先備份),建立一個名叫 "br0" 的橋:
$:sudo vim /etc/network/interfaces
#添加如下內(nèi)容
auto br0
iface br0 inet static ? ? ?#在這里網(wǎng)橋我用的靜態(tài)IP塘慕,使用靜態(tài)的話,就需要把你宿主機(jī)的ip地址菜枷,當(dāng)前網(wǎng)絡(luò)的網(wǎng)關(guān)等信息設(shè)置到這個網(wǎng)橋上
address 192.168.1.2 ? #ip地址需根據(jù)本機(jī)所在的網(wǎng)絡(luò)修改設(shè)置
netmask 255.255.255.0? #ip地址需根據(jù)本機(jī)所在的網(wǎng)絡(luò)修改設(shè)置
network 192.168.1.0? #ip地址需根據(jù)本機(jī)所在的網(wǎng)絡(luò)修改設(shè)置
broadcast 192.168.1.255? #ip地址需根據(jù)本機(jī)所在的網(wǎng)絡(luò)修改設(shè)置
gateway 192.168.1.1? #ip地址需根據(jù)本機(jī)所在的網(wǎng)絡(luò)修改設(shè)置
bridge_ports? eth0? #然后讓eth0網(wǎng)卡上的端口都通過這個橋苍糠。
保持后重啟網(wǎng)絡(luò)服務(wù),或者重啟宿主機(jī)啤誊。
重啟后執(zhí)行下列命令/etc/ 文件夾下新建一個qemu-ifup腳本
$:sudo vim /etc/qemu-ifup
內(nèi)容如下:
#!/bin/bash
#This is a qemu-ifup script for bridging.
#You can use it when starting a KVM guest with bridge mode network.
#set your bridge name
switch=br0
if [ -n "$1" ]; then
#create a TAP interface; qemu will handle it automatically.
#tunctl -u $(whoami) -t $1
#start up the TAP interface
ip link set $1 up
sleep 1
#add TAP interface to the bridge
brctl addif ${switch} $1
exit 0
else
echo "Error: no interface specified"
exit 1
fi
并且執(zhí)行下列命令給以可執(zhí)行權(quán)限岳瞭。
$:sudo chmod 777 /etc/qemu-ifup
然后在啟動命令中添加參數(shù)? -net nic -net tap,script=/etc/qemu-ifup 啟動虛擬機(jī)? 這樣啟動的虛擬機(jī)就有一個和宿主機(jī)同一個網(wǎng)段的ip地址,直接訪問就可以了蚊锹。
出現(xiàn)錯誤可以參考http://www.361way.com/qemu-kvm-bridge-net/4760.html
配置好后就可以執(zhí)行下列命令啟動虛擬機(jī).
$:sudo qemu-system-x86_64 -m 4096 -smp 4? -enable-kvm -hda ubuntu.raw ?-drive file=blknvme,if=none,id=blknvme -device nvme,drive=./blknvme,serial=deadbeef,namespaces=1,lver=1,nlbaf=5,lba_index=3,mdts=10,lnum_lun=4,lnum_pln=1 -net nic,macaddr=54:52:d5:ab:83:10 -net tap,script=/etc/qemu-ifup
-m 指定虛擬機(jī)內(nèi)存大小,默認(rèn)單位是MB, -smp 是設(shè)置虛擬機(jī)的cpu核數(shù), -enable-kvm 是使用KVM進(jìn)行加速瞳筏,-hda 是指定磁盤(用qemu-img創(chuàng)建的) -drive 設(shè)置設(shè)備(用dd創(chuàng)建的充當(dāng)nvme設(shè)備的文件) -device 設(shè)置設(shè)備的屬性 -net 設(shè)置mac地址 以及網(wǎng)卡啟動腳本(/etc/qemu-ifup)?
6.建立宿主機(jī)和虛擬機(jī)間的共享文件夾(非必須)
采用的是Samba這種方式
6.1在宿主機(jī)上執(zhí)行下列命令安裝samba
$:sudo apt-get install samba
$:sudo apt-get install cifs-utils
6.2 在宿主機(jī)上執(zhí)行下列命令創(chuàng)建共享目錄
$:mkdir /home/raohui/share? (這個目錄自定義名字和路徑)
$:sudo chmod 777 /home/raohui/share
6.3 在宿主機(jī)上執(zhí)行下列命令創(chuàng)建Ubuntu samba配置文件
(1)保存現(xiàn)有的配置文件
$:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
(2)修改現(xiàn)配置文件
$:sudo gedit /etc/samba/smb.conf
(3)在smb.conf最后添加
[share]
path = /home/raohui/share ?
available = yes
browsealbe = yes
public = yes
writable = yes
6.4 創(chuàng)建Ubuntu samba帳戶
$:sudo touch /etc/samba/smbpasswd
$:sudo smbpasswd 用戶名 ? ?(然后根據(jù)提示輸入密碼)
6.5虛擬機(jī)中執(zhí)行下列命令,mount宿主機(jī)中的共享文件夾
$:mkdir shareDir #創(chuàng)建掛在點
$:sudo mount -t cifs -o username=用戶名,password=密碼? //宿主機(jī)IP地址/share? ./shareDir
可以參考這個鏈接把上面命令設(shè)置為開機(jī)運(yùn)行