KVM 虛擬機(jī)配置

原網(wǎng)址:http://blog.yfwz100.cn/archives/2016/10/30/cloud-kvm-setup.html

KVM 是一種全虛擬化技術(shù),由 Linux 內(nèi)核自身集成,市面上很多云服務(wù)提供商都是用該技術(shù)進(jìn)行資源的虛擬化,也是 OpenStack 等云計(jì)算架構(gòu)的虛擬化基礎(chǔ)。很不博客列出了 KVM 的安裝和使用過程谭梗,但是都不夠具體止潮,本博客在總結(jié)網(wǎng)絡(luò)博客的基礎(chǔ)上凶掰,收集整理自己遇到的坑把敢,以方便大家做參考寄摆。

安裝準(zhǔn)備

確定物理服務(wù)器支持虛擬化技術(shù):

grep vmx /proc/cpuinfo # Intel 系列
grep svm /proc/cpuinfo # AMD 系列

需要安裝 Qemu、KVM 等組件:

sudo apt-get install kvm qemu qemu-kvm libvirt-bin

如果需要安裝圖形界面技竟,還可以安裝:

sudo apt-get install virt-manager

安裝

進(jìn)行以下操作時(shí)冰肴,請(qǐng)注意當(dāng)前用戶擁有高級(jí)的讀寫權(quán)限。用 virsh 創(chuàng)建的虛擬機(jī)榔组,一般會(huì)賦予 kvm 用戶組讀寫的權(quán)限熙尉,因此,可以把當(dāng)前操作用戶加入到 kvm 組里搓扯。更簡單的辦法是使用 root 來執(zhí)行以下操作检痰。

  1. 新建硬盤鏡像:

    qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow2 20G
    
  2. 在服務(wù)器上準(zhǔn)備好 OS 的鏡像文件,例如從 http://mirrors.ustc.edu.cn 上下載锨推。

  3. 使用 virt-instal 或 virsh 進(jìn)行遠(yuǎn)程安裝

    1. 使用命令行的安裝方式

      virt-install --virt-type kvm --name=test--ram=4096 --vcpus=2 \
      --os-type=linux \
      --location=/root/rhel-server-7.0-x86_64-dvd.iso \
      --disk path=/var/lib/libvirt/images/test.qcow2,format=qcow2 \
      --network bridge:virbr0 \
      --graphics none \
      --extra-args='console=tty0 console=ttyS0,115200n8 serial'
      
    2. 使用 VNC 的方式進(jìn)行安裝:

      virt-install --virt-type kvm --name=test --ram=1024 --vcpus=1 \
      --os-type=linux \
      --location=/root/rhel-server-7.0-x86_64-dvd.iso \
      --disk /var/lib/libvirt/images/test.qcow2,format=qcow2 \
      --network bridge:brx \
      --graphics vnc,password=123456
      

      顯示 VNC 端口

      virsh vncdisplay test
      

      網(wǎng)上也有人提到 /etc/libvirt/qemu.conf 中的需要解鎖

      # vnc_listen="0.0.0.0"
      

      然后重啟 libvirtd 服務(wù)

      systemctl restart libvirtd
      
    3. 使用 virsh 來創(chuàng)建虛擬機(jī):

      創(chuàng)建虛擬機(jī)描述文件铅歼,例如 ubuntu.xml ,內(nèi)容如下:

      <domain type='kvm'>
        <name>ubuntu2</name>
        <memory>1048576</memory>
        <vcpu>1</vcpu>
        <os>
          <type arch='x86_64' machine='pc'>hvm</type>
          <boot dev='cdrom'/>
          <boot dev='hd'/>
        </os>
        <features>
          <acpi/>
          <apic/>
          <pae/>
        </features>
        <clock offset = 'localtime'/>
        <on_poweroff>destroy</on_poweroff>
        <on_reboot>restart</on_reboot>
        <on_crash>destroy</on_crash>
        <devices>
          <emulator>/usr/bin/kvm</emulator>
          <disk type='file' device='disk'>
            <driver name='qemu' type='qcow2'/>
            <source file='/home/zhi/qemu/ubuntu2.img'/>
            <target dev='hda' bus='ide'/>
          </disk>
          <disk type='file' device='cdrom'>
            <source file='/home/zhi/img/ubuntu-16.10-server-amd64.iso'/>
            <target dev='hdb' bus='ide'/>
          </disk>
          <interface type='bridge'>
            <source bridge='virbr0'/>
          </interface>
          <input type='tablet' bus='usb'/>
          <input type='mouse' bus='ps2'/>
          <graphics type ='vnc' port='-1' listen='0.0.0.0' keymap='en-us'/>
        </devices>
      </domain>
      

      其中需要注意編輯 device='cdrom'/device='disk'/interface 這幾個(gè)標(biāo)簽的內(nèi)容换可。然后執(zhí)行

      virsh define ubuntu.xml
      

      即啟動(dòng)安裝過程椎椰,可以用 VNC Viewer 進(jìn)行遠(yuǎn)程安裝。

    注:以上 3 個(gè)步驟選擇一種進(jìn)行操作即可沾鳄,其作用是等價(jià)的慨飘。其中前兩種需要安裝 virtinst 工具。

  4. 如果是通過 virbr0 這個(gè)網(wǎng)卡進(jìn)行操作的話(默認(rèn) virbr0 是 NAT 并使用 dnsmaq 來分配 IP 地址)译荞,可以通過以下命令查看生成的虛擬機(jī)的 IP 地址:

    cat /var/lib/libvirt/dnsmasq/virbr0.status
    

    注意其中的 hostname 對(duì)應(yīng)的 IP 地址瓤的。

啟動(dòng)

可以使用 virsh 來管理虛擬機(jī),其中比較常見的命令有

virsh start    VM_ID  # 啟動(dòng)虛擬機(jī)
      shutdown VM_ID  # 關(guān)閉虛擬機(jī)
      destroy  VM_ID  # 強(qiáng)制關(guān)閉虛擬機(jī)
      edit     VM_ID  # 更改虛擬機(jī)的配置

另外一個(gè)值得一提的功能是在線遷移(live migration)吞歼。

virsh migrate  VM_ID  DEST_URI --live

需要注意圈膏,在線遷移需要對(duì)方 QEMU 支持,最好在兩個(gè)相同版本的 QEMU 服務(wù)器之間遷移篙骡,否則容易出錯(cuò)稽坤。其中 DEST_URI 的寫法是 qemu+ssh://IP_ADDR/system ,詳細(xì)文檔見 virsh migrate --help糯俗。

常見問題

  1. error: internal error Attempt to migrate guest to the same host 00020003-0004-0005-0006-000700080009

    應(yīng)該是服務(wù)器提供商的問題尿褪,重新生成一下 UUID :

    sed -i "/#host_uuid/ahost_uuid = \"`uuidgen`\"" /etc/libvirt/libvirtd.conf
    

    然后重啟 libvirtd 服務(wù):

    service libvirt-bin restart
    
  2. error: internal error: process exited while connecting to monitor: qemu-system-x86_64: -machine pc-i440fx-2.2,accel=kvm,usb=off: Unsupported machine type

    這個(gè)錯(cuò)誤在動(dòng)態(tài)遷移(在線遷移,live migration)的時(shí)候會(huì)遇到叶骨,接收方的 QEMU 版本較低茫多,不支持該版本的虛擬機(jī)。

  3. Cannot recv data: Value too large for defined data type

    很可能是因?yàn)檎{(diào)用的某個(gè)程序忽刽、某個(gè)庫出現(xiàn)錯(cuò)誤了天揖,因?yàn)檫@個(gè)錯(cuò)誤很廣泛夺欲。我當(dāng)時(shí)遇到這個(gè)問題是因?yàn)?ssh 的鑰匙沒配置好。建議重新生成秘鑰今膊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末些阅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子斑唬,更是在濱河造成了極大的恐慌市埋,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恕刘,死亡現(xiàn)場(chǎng)離奇詭異缤谎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)褐着,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門坷澡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人含蓉,你說我怎么就攤上這事频敛。” “怎么了馅扣?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵斟赚,是天一觀的道長。 經(jīng)常有香客問我差油,道長拗军,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任厌殉,我火速辦了婚禮食绿,結(jié)果婚禮上侈咕,老公的妹妹穿的比我還像新娘公罕。我一直安慰自己,他們只是感情好耀销,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布楼眷。 她就那樣靜靜地躺著,像睡著了一般熊尉。 火紅的嫁衣襯著肌膚如雪罐柳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天狰住,我揣著相機(jī)與錄音张吉,去河邊找鬼。 笑死催植,一個(gè)胖子當(dāng)著我的面吹牛肮蛹,可吹牛的內(nèi)容都是我干的勺择。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼伦忠,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼省核!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起昆码,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤气忠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后赋咽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旧噪,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年脓匿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舌菜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亦镶,死狀恐怖日月,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缤骨,我是刑警寧澤爱咬,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站绊起,受9級(jí)特大地震影響精拟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜虱歪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一蜂绎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧笋鄙,春花似錦师枣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至找岖,卻和暖如春陨倡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背许布。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工兴革, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜜唾。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓杂曲,卻偏偏與公主長得像箕昭,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子解阅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容