libvirt 問題解決記錄集 更新中

2021-07-02 17:13:24 字數 4328 閱讀 4169

本篇記錄在使用libvirt的時候遇到的一些情況,即解決方法.

1

2

3

[root@localhost vm]# virsh start centos

error: failed to start domain centos

error: internal error process exited while connecting to monitor: qemu-system-x86_64: -drive file=/home/d/shixun/vm/vdisk.img,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /home/d/shixun/vm/vdisk.img: permission denied

解決:/etc/libvirt/qemu.conf

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

# some examples of valid values are:

#

# user = "qemu" # a user named "qemu"

# user = "+0" # super user (uid=0)

# user = "100" # a user named "100" or a user with uid=100

#

user = "root"

# the group for qemu processes run by the system instance. it can be

# specified in a similar way to user.

group = "root"

# whether libvirt should dynamically change file ownership

# to match the configured user/group above. defaults to 1.

# set to 0 to disable file ownership changes.

dynamic_ownership = 0

我的這個沒能解決問題

/etc/init.d/libvirtd restart 不管用

在使用virsh對虛擬機器進行動態遷移時,虛擬機器沒有開啟.於是就去開啟虛擬機器,但是卻發現無法執行.

1

2

3

error starting domain: timed out during operation: cannot acquire state change lock

libvirterror: timed out during operation: cannot acquire state change lock

我進行了以下的步驟

1

2

3

4

5

6

7

8

9

virsh undefine centos

####login as a root user and kill the libvirtd.

killall -9 libvirtd

rm /var/run/libvirtd.pid   ##### remove the libvirtd pid file.

/etc/init.d/libvirtd  restart   #### restart libvirtd.

在嘗試上面的操作後,不起作用.

修改一下的domain的xml檔案中的name標籤,給虛擬機器改個名字,期間我還刪除了domain的xml檔案裡的qemu:commandline裡面資訊,重新define後就可以執行了.

在進行遷移的時候使用命令 virsh migrate –live ubuntu qemu+ssh://dest_ip/system

1

error: internal hostname on destination resolved to localhost, but migration requires an fqdn

解決:ssh進入到dest host機器,執行hostname domain 就好了.其中domian是乙個網域名稱.將接下來就可以進行遷移了.

啟動nfs服務,出現問題

1

failed to issue method call: unit nfsserver.service failed to load: no such file or directory. see system logs and 'systemctl status nfsserver.service' for details.

解決:按照教程來就好了

1

2

3

4

5

6

# vim /etc/exports

/var/lib/libvirt/images *.example.com(rw,no_root_squash,sync)

# service nfs start

# mount -t nfs storage_host:/var/lib/libvirt/images /var/lib/libvirt/images

當去mount遠端的nfs伺服器,出現問題了.

mount.nfs: access denied by server while mounting 211.87.***.53:/mnt/nfs

解決:原來發現,在/etc/exports中,沒有將/mnt/nfs新增進去,只能將裡面有的資料夾才能mount到本機來.

可以先umoutn /mnt/nfs ,然後在mount看看能否成功

virsh shutdown 關閉虛擬機器沒起作用

解決:需要在虛擬機器裡安裝一些東西

1

2

3

yum install acpid

chkconfig acpid on

service acpid start

當我去遠端查詢資訊的時候,virsh -c qemu+ssh: list的時候出現了下面的問題.

1

2

3

error: failed to connect to the hypervisor

error: no valid connection

error: end of file while reading data: : input/output error

檢視日誌cat /var/log/secure | grep sshd發現是我這裡主動發出斷開的.難道是檢測到libvirtd有些問題導致的?

當時使用virt-manage可以查詢到遠端的資訊.估計是sshd出現的問題把.

解決:我沒有重新安裝sshd,我是通過tcp協議進行遷移的,因為是做測試,所以沒有考慮安全的問題.具體使用tcp進行遷移,檢視virsh使用qemu+tcp訪問遠端libvirtd .

node問題解決集

1 db.collection is not a function?當遇到這個錯誤的時候,反應過來應該是版本問題,因為在mongodb3.0版本以後,資料庫名從connect移除。而mongoose用的是2.2.33版本的mongodb,所以不存在這個問題,而解決方案有 1.1 降級到2.2的版本 ...

關於記錄集問題

關於記錄集問題 delphi windows sdk api 請問當我讀取記錄集的時候不用以下方式,我想一次讀取兩條記錄,然後再迴圈下面兩個,依次類推,應當怎麼做啊,謝謝各位了!while not adoquery.eof do begin next 每次只能讀取一條記錄 end 在迴圈內部執行兩次...

關於記錄集問題

關於記錄集問題 delphi windows sdk api 請問當我讀取記錄集的時候不用以下方式,我想一次讀取兩條記錄,然後再迴圈下面兩個,依次類推,應當怎麼做啊,謝謝各位了!while not adoquery.eof do begin next 每次只能讀取一條記錄 end 在迴圈內部執行兩次...