主頁 > 作業系統 > 虛擬化技術之kvm管理工具virsh常用基礎命令(二)

虛擬化技術之kvm管理工具virsh常用基礎命令(二)

2020-09-10 21:48:00 作業系統

  上一篇博客我們主要聊了下virsh 管理kvm虛擬機的命令相關用法和說明,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13508231.html;今天我們來繼續說virsh 管理kvm虛擬機的話題;

  1、virsh 監控kvm虛擬機相關命令

  virsh domblklist:列出指定虛擬機上的磁盤資訊

[root@node1 ~]# virsh help domblklist
  NAME
    domblklist - 列出所有域塊

  SYNOPSIS
    domblklist <domain> [--inactive] [--details]

  DESCRIPTION
    獲取域塊設備小結

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    --inactive       獲取不活躍而不是運行的配置
    --details        type 和 device 值的附加顯示


[root@node1 ~]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 3     centos7.0                      running
 4     c2                             running
 6     generic                        running

[root@node1 ~]# virsh domblklist c2
目標     源
------------------------------------------------
vda        /kvm/images/c2.qcow2
hda        -

[root@node1 ~]# virsh domblklist generic 
目標     源
------------------------------------------------
hda        /kvm/images/cirros-0.5.0-x86_64-disk.img

[root@node1 ~]# 

  virsh domiflist:列出指定虛擬機上的所有網卡

[root@node1 ~]# virsh help domiflist
  NAME
    domiflist - 列出所有域虛擬介面

  SYNOPSIS
    domiflist <domain> [--inactive]

  DESCRIPTION
    獲取域虛擬介面小結

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    --inactive       獲取不活躍而不是運行的配置


[root@node1 ~]# virsh domiflist generic 
介面     型別     源        型號      MAC
-------------------------------------------------------
vnet2      network    default    rtl8139     52:54:00:3e:3f:71

[root@node1 ~]# virsh domiflist centos7.0 
介面     型別     源        型號      MAC
-------------------------------------------------------
vnet0      network    default    virtio      52:54:00:e3:8d:11

[root@node1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.41  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::20c:29ff:fe9a:dbd6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9a:db:d6  txqueuelen 1000  (Ethernet)
        RX packets 113557  bytes 34709850 (33.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 111108  bytes 27361452 (26.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 132700  bytes 348628216 (332.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 132700  bytes 348628216 (332.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:45:06:15  txqueuelen 1000  (Ethernet)
        RX packets 2042  bytes 130515 (127.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1028  bytes 83137 (81.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fee3:8d11  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:e3:8d:11  txqueuelen 1000  (Ethernet)
        RX packets 571  bytes 46596 (45.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11055  bytes 593226 (579.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fee3:8521  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:e3:85:21  txqueuelen 1000  (Ethernet)
        RX packets 314  bytes 24074 (23.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6210  bytes 333740 (325.9 KiB)
        TX errors 0  dropped 4072 overruns 0  carrier 0  collisions 0

vnet2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fe3e:3f71  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:3e:3f:71  txqueuelen 1000  (Ethernet)
        RX packets 741  bytes 56211 (54.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4711  bytes 248155 (242.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@node1 ~]# 

  提示:從上面的資訊可以看到kvm虛擬機上的網卡都對應在宿主機上的一個虛擬網卡 ;

  virsh domifaddr:獲取指定虛擬機上的ip地址

[root@node1 ~]# virsh help domifaddr
  NAME
    domifaddr - Get network interfaces' addresses for a running domain

  SYNOPSIS
    domifaddr <domain> [--interface <string>] [--full] [--source <string>]

  DESCRIPTION
    Get network interfaces' addresses for a running domain

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    --interface <string>  network interface name
    --full           always display names and MACs of interfaces
    --source <string>  address source: 'lease', 'agent', or 'arp'


[root@node1 ~]# virsh domifaddr c2           
 名稱     MAC 地址           Protocol     Address
-------------------------------------------------------------------------------
 vnet1      52:54:00:e3:85:21    ipv4         192.168.122.168/24

[root@node1 ~]# virsh domifaddr centos7.0 
 名稱     MAC 地址           Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:e3:8d:11    ipv4         192.168.122.222/24

[root@node1 ~]# virsh domifaddr generic 
 名稱     MAC 地址           Protocol     Address
-------------------------------------------------------------------------------
 vnet2      52:54:00:3e:3f:71    ipv4         192.168.122.4/24

[root@node1 ~]# 

  virsh domifstat:統計指定虛擬機上的指定網卡狀態資訊

[root@node1 ~]# virsh help domifstat
  NAME
    domifstat - 獲得域網路介面狀態

  SYNOPSIS
    domifstat <domain> <interface>

  DESCRIPTION
    獲得運行域的網路介面狀態,

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    [--interface] <string>  interface device specified by name or MAC Address


[root@node1 ~]# virsh domiflist c2
介面     型別     源        型號      MAC
-------------------------------------------------------
vnet1      network    default    virtio      52:54:00:e3:85:21

[root@node1 ~]# virsh  domifstat c2 vnet1 
vnet1 rx_bytes 345156
vnet1 rx_packets 6429
vnet1 rx_errs 0
vnet1 rx_drop 4072
vnet1 tx_bytes 24206
vnet1 tx_packets 316
vnet1 tx_errs 0
vnet1 tx_drop 0

[root@node1 ~]#

  virsh dominfo:獲取指定虛擬機的簡要資訊

[root@node1 ~]# virsh  help dominfo
  NAME
    dominfo - 域資訊

  SYNOPSIS
    dominfo <domain>

  DESCRIPTION
    回傳這個域的基本資訊,

  OPTIONS
    [--domain] <string>  domain name, id or uuid


[root@node1 ~]# virsh dominfo c2
Id:             4
名稱:       c2
UUID:           10d61aa8-b0fa-4433-a733-00a8721bee01
OS 型別:    hvm
狀態:       running
CPU:          2
CPU 時間:   188.1s
最大記憶體: 2097152 KiB
使用的記憶體: 2097152 KiB
持久:       是
自動啟動: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 0

[root@node1 ~]# 

  virsh dommemstat:獲取指定虛擬機記憶體相關狀態資訊

[root@node1 ~]# virsh help dommemstat
  NAME
    dommemstat - 獲取域的記憶體統計

  SYNOPSIS
    dommemstat <domain> [--period <number>] [--config] [--live] [--current]

  DESCRIPTION
    獲取運行域的記憶體統計

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    --period <number>  以秒為單位設定集合期限
    --config         影響下一次引導
    --live           影響運行的域
    --current        影響當前域


[root@node1 ~]# virsh  dommemstat c2 
actual 2097152
swap_in 0
swap_out 0
major_fault 201
minor_fault 176924
unused 1761832
available 1883456
last_update 1597490486
rss 455384

[root@node1 ~]# virsh  dommemstat centos7.0 
actual 2097152
swap_in 0
swap_out 0
major_fault 179
minor_fault 169193
unused 1761272
available 1883456
last_update 1597480749
rss 560324

[root@node1 ~]# 

  virsh domstate:獲取指定虛擬機的狀態資訊

[root@node1 ~]# virsh help domstate
  NAME
    domstate - 域狀態

  SYNOPSIS
    domstate <domain> [--reason]

  DESCRIPTION
    回傳某個域的狀態,

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    --reason         同時輸出狀態原因


[root@node1 ~]# virsh  domstate centos7.0 
running

[root@node1 ~]# virsh  domstate centos7.0 --reason 
running (已引導)

[root@node1 ~]# 

  virsh domstats:顯示指定虛擬機的詳細狀態資訊,如果不指定虛擬機名稱表示顯示當前宿主機上的所有虛擬機的詳細狀態資訊

[root@node1 ~]# virsh help domstats
  NAME
    domstats - get statistics about one or multiple domains

  SYNOPSIS
    domstats [--state] [--cpu-total] [--balloon] [--vcpu] [--interface] [--block] [--perf] [--list-active] [--list-inactive] [--list-persistent] [--list-transient] [--list-running] [--list-paused] [--list-shutoff] [--list-other] [--raw] [--enforce] [--backing] [--nowait] [<domain>]...

  DESCRIPTION
    Gets statistics about one or more (or all) domains

  OPTIONS
    --state          report domain state
    --cpu-total      report domain physical cpu usage
    --balloon        report domain balloon statistics
    --vcpu           report domain virtual cpu information
    --interface      report domain network interface information
    --block          report domain block device statistics
    --perf           report domain perf event statistics
    --list-active    list only active domains
    --list-inactive  list only inactive domains
    --list-persistent  list only persistent domains
    --list-transient  list only transient domains
    --list-running   list only running domains
    --list-paused    list only paused domains
    --list-shutoff   list only shutoff domains
    --list-other     list only domains in other states
    --raw            do not pretty-print the fields
    --enforce        enforce requested stats parameters
    --backing        add backing chain information to block stats
    --nowait         report only stats that are accessible instantly
    <domain>         list of domains to get stats for


[root@node1 ~]# virsh domstats centos7.0 
Domain: 'centos7.0'
  state.state=1
  state.reason=1
  cpu.time=108764965089
  cpu.user=850000000
  cpu.system=14010000000
  balloon.current=2097152
  balloon.maximum=2097152
  balloon.swap_in=0
  balloon.swap_out=0
  balloon.major_fault=187
  balloon.minor_fault=174029
  balloon.unused=1758704
  balloon.available=1883456
  balloon.last-update=1597581679
  balloon.rss=561212
  vcpu.current=2
  vcpu.maximum=2
  vcpu.0.state=1
  vcpu.0.time=39050000000
  vcpu.0.wait=0
  vcpu.1.state=1
  vcpu.1.time=14570000000
  vcpu.1.wait=0
  net.count=1
  net.0.name=vnet1
  net.0.rx.bytes=142006
  net.0.rx.pkts=2577
  net.0.rx.errs=0
  net.0.rx.drop=0
  net.0.tx.bytes=17972
  net.0.tx.pkts=222
  net.0.tx.errs=0
  net.0.tx.drop=0
  block.count=2
  block.0.name=vda
  block.0.path=/var/lib/libvirt/images/centos7.0.qcow2
  block.0.rd.reqs=6517
  block.0.rd.bytes=150312448
  block.0.rd.times=32776473520
  block.0.wr.reqs=647
  block.0.wr.bytes=13009920
  block.0.wr.times=10069609744
  block.0.fl.reqs=238
  block.0.fl.times=938612582
  block.0.allocation=16855924224
  block.0.capacity=21474836480
  block.0.physical=21478379520
  block.1.name=hda
  block.1.rd.reqs=3
  block.1.rd.bytes=82
  block.1.rd.times=227269
  block.1.wr.reqs=0
  block.1.wr.bytes=0
  block.1.wr.times=0
  block.1.fl.reqs=0
  block.1.fl.times=0
  block.1.allocation=0
  block.1.physical=0

[root@node1 ~]#

  提示:如果想知獲取某一物件的的詳細資訊可以在后面跟對應的選項來做過濾;

[root@node1 ~]# virsh domstats centos7.0 --interface  --balloon
Domain: 'centos7.0'
  balloon.current=2097152
  balloon.maximum=2097152
  balloon.swap_in=0
  balloon.swap_out=0
  balloon.major_fault=187
  balloon.minor_fault=174029
  balloon.unused=1758704
  balloon.available=1883456
  balloon.last-update=1597581679
  balloon.rss=561468
  net.count=1
  net.0.name=vnet1
  net.0.rx.bytes=148978
  net.0.rx.pkts=2710
  net.0.rx.errs=0
  net.0.rx.drop=0
  net.0.tx.bytes=18326
  net.0.tx.pkts=227
  net.0.tx.errs=0
  net.0.tx.drop=0

[root@node1 ~]# 

  提示:如果指定多個選項,它們之間是或關系,意思是僅顯示指定選項的內容;

  virsh domif-getlink:獲取指定虛擬機的指定介面狀態

[root@node1 ~]# virsh help domif-getlink
  NAME
    domif-getlink - 獲取虛擬介面鏈接狀態

  SYNOPSIS
    domif-getlink <domain> <interface> [--config]

  DESCRIPTION
    獲取域虛擬介面鏈接狀態

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    [--interface] <string>  介面失敗 (MAC 地址)
    --config         獲取持續介面狀態


[root@node1 ~]# virsh domif-getlink c2 vnet1 
vnet1 up
[root@node1 ~]#

  virsh domblkinfo:獲取指定虛擬機的磁盤大小資訊

[root@node1 ~]# virsh domblkinfo centos7.0 
錯誤:command 'domblkinfo' requires <device> option

[root@node1 ~]# 
[root@node1 ~]# virsh help domblkinfo      
  NAME
    domblkinfo - 域塊設備大小資訊

  SYNOPSIS
    domblkinfo <domain> [--device <string>] [--human] [--all]

  DESCRIPTION
    獲取域塊設備大小資訊

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    --device <string>  阻止設備
    --human          Human readable output
    --all            display all block devices info


[root@node1 ~]# virsh domblklist c2
目標     源
------------------------------------------------
vda        /kvm/images/c2.qcow2
hda        -

[root@node1 ~]# virsh domblkinfo c2 vda
容量:       21474836480
分配:       21478375424
物理:       21478375424

[root@node1 ~]# virsh domblkinfo c2 vda --human 
容量:       20.000 GiB
分配:       20.003 GiB
物理:       20.003 GiB

[root@node1 ~]# 

  virsh domblkerror:列出指定虛擬機上的指定磁盤的錯誤資訊

[root@node1 ~]# virsh help domblkerror
  NAME
    domblkerror - 在塊設備中顯示錯誤

  SYNOPSIS
    domblkerror <domain>

  DESCRIPTION
    顯示塊設備錯誤

  OPTIONS
    [--domain] <string>  domain name, id or uuid


[root@node1 ~]# virsh  domblkerror c2 
未找到錯誤

[root@node1 ~]# virsh  domblkerror centos7.0 
未找到錯誤

[root@node1 ~]# 

  virsh domcontrol:獲取指定虛擬機上的控制介面狀態資訊

[root@node1 ~]# virsh help domcontrol
  NAME
    domcontrol - 域控制介面狀態

  SYNOPSIS
    domcontrol <domain>

  DESCRIPTION
    向域回傳控制介面狀態

  OPTIONS
    [--domain] <string>  domain name, id or uuid


[root@node1 ~]# virsh  domcontrol centos7.0 
確定

[root@node1 ~]# virsh  domcontrol generic 
確定

[root@node1 ~]#

  提示:我這里顯示的是中文,正常情況就是ok狀態;

  以上命令主要是用于監控虛擬機上的各種狀態相關的命令,我們可以基于上面的命令寫成腳本,然后實作批量的獲取多個虛擬機的狀態資訊;

  2、virsh管理網路相關命令

  virsh net-list:列出網路

[root@node1 ~]# virsh help net-list
  NAME
    net-list - 列出網路

  SYNOPSIS
    net-list [--inactive] [--all] [--persistent] [--transient] [--autostart] [--no-autostart] [--uuid] [--name] [--table]

  DESCRIPTION
    回傳網路串列

  OPTIONS
    --inactive       列出不活躍的網路
    --all            列出不活躍和活躍的網路
    --persistent     列出持久網路
    --transient      列出臨時網路
    --autostart      列出啟用 autostart 的網路
    --no-autostart   列出禁用 autostart 的網路
    --uuid           只列出 uuid
    --name           list network names only
    --table          列出表格(默認)


[root@node1 ~]# virsh net-list 
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是

[root@node1 ~]# 

  提示:默認是以表格的形式列出激活的網路,如果要指定列出某種狀態的網路,后面可以跟選項;從上面的資訊可以看到當前只有一個默認的網路,處于活躍狀態并且是自動啟動;

  virsh net-dumpxml:顯示指定網路的組態檔內容到標準輸出;

[root@node1 ~]# virsh  help net-dumpxml
  NAME
    net-dumpxml - XML 中的網路資訊

  SYNOPSIS
    net-dumpxml <network> [--inactive]

  DESCRIPTION
    把網路資訊作為一個 XML 輸出到 stdout,

  OPTIONS
    [--network] <string>  網路名或 uuid
    --inactive       顯示不活躍定義的 XML


[root@node1 ~]# virsh   net-dumpxml default
<network connections='3'>
  <name>default</name>
  <uuid>958c004e-7aa9-483e-a79e-c62884e88a08</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:45:06:15'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

[root@node1 ~]# 

  提示:通過上述命令我們可以把指定的某個網路匯出,然后基于這個網路檔案來當做模板檔案,此后如果要創建一個網路,我們直接復制這個模板,然后修改私有的資訊即可生成一個我們需要創建的網路的組態檔;

  virsh net-define:從指定xml組態檔定義一個網路或者基于指定xml來修改現有網路;類似virsh define命令的用法;

  示例:匯出現有配置,修改ip地址,然后基于這個匯出的配置來使用virsh net-define創建一個網路

[root@node1 ~]# virsh net-dumpxml default >default.xml 
[root@node1 ~]# cp default.xml test.xml
[root@node1 ~]# diff default.xml test.xml 
2,3c2
<   <name>default</name>
<   <uuid>958c004e-7aa9-483e-a79e-c62884e88a08</uuid>
---
>   <name>test</name>
9,11c8,10
<   <bridge name='virbr0' stp='on' delay='0'/>
<   <mac address='52:54:00:45:06:15'/>
<   <ip address='192.168.122.1' netmask='255.255.255.0'>
---
>   <bridge name='virbr1' stp='on' delay='0'/>
>   <mac address='52:54:00:45:06:16'/>
>   <ip address='192.168.12.1' netmask='255.255.255.0'>
13c12
<       <range start='192.168.122.2' end='192.168.122.254'/>
---
>       <range start='192.168.12.2' end='192.168.12.254'/>
[root@node1 ~]# cat test.xml 
<network connections='3'>
  <name>test</name>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:45:06:16'/>
  <ip address='192.168.12.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.12.2' end='192.168.12.254'/>
    </dhcp>
  </ip>
</network>

[root@node1 ~]# 

  提示:通常我們需要修改網路的名稱,洗掉uuid,讓其創建時自動生成,指定ip地址,修改mac地址以及dhcp地址池,網橋名稱以及網路的型別;

[root@node1 ~]# virsh help net-define                  
  NAME
    net-define - define an inactive persistent virtual network or modify an existing persistent one from an XML file

  SYNOPSIS
    net-define <file>

  DESCRIPTION
    Define or modify a persistent virtual network.

  OPTIONS
    [--file] <string>  檔案包括一個 XML網路描述


[root@node1 ~]# virsh net-define test.xml                       
從 test定義網路test.xml

[root@node1 ~]# virsh net-list 
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是

[root@node1 ~]# virsh net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 不活躍  否           是

[root@node1 ~]#

  提示:默認情況用define定義一個網路它并不會激活;

  virsh net-start:激活一個指定的非活躍網路

[root@node1 ~]# virsh help net-start
  NAME
    net-start - 開始一個(以前定義的)不活躍的網路

  SYNOPSIS
    net-start <network>

  DESCRIPTION
    開始一個網路.

  OPTIONS
    [--network] <string>  網路名或 uuid


[root@node1 ~]# virsh net-start test 
網路 test 已開始

[root@node1 ~]# virsh net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           是

[root@node1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:9a:db:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.41/24 brd 192.168.0.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe9a:dbd6/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 52:54:00:45:06:15 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:45:06:15 brd ff:ff:ff:ff:ff:ff
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN qlen 1000
    link/ether fe:54:00:3e:3f:71 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe3e:3f71/64 scope link 
       valid_lft forever preferred_lft forever
6: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN qlen 1000
    link/ether fe:54:00:e3:8d:11 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fee3:8d11/64 scope link 
       valid_lft forever preferred_lft forever
7: vnet2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN qlen 1000
    link/ether fe:54:00:e3:85:21 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fee3:8521/64 scope link 
       valid_lft forever preferred_lft forever
8: virbr1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:45:06:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.1/24 brd 192.168.12.255 scope global virbr1
       valid_lft forever preferred_lft forever
9: virbr1-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr1 state DOWN qlen 1000
    link/ether 52:54:00:45:06:16 brd ff:ff:ff:ff:ff:ff
[root@node1 ~]# 

  提示:可以看到指定test網路已經激活并且在宿主機上創建了一個virbr1的網橋和virbr1-nic的網卡,其實virbr1就是我們在組態檔中指定的網橋,在組態檔中指定的網橋必須未使用,如果指定網橋不存在則創建,而virbr1-nic這張網卡就是直接橋接到virbr1上;

  測驗:創建一個基于test網路的虛擬機,名為c3

[root@node1 ~]# cd /etc/libvirt/qemu/
[root@node1 qemu]# ls
autostart  c2.xml  centos7.0.xml  generic.xml  networks
[root@node1 qemu]# cp c2.xml c3.xml
[root@node1 qemu]# cd /kvm/images/
[root@node1 images]# ls
c1.qcow2  c2.qcow2  cirros-0.5.0-x86_64-disk.img
[root@node1 images]# cp c2.qcow2 c3.qcow2
[root@node1 images]# diff /etc/libvirt/qemu/c2.xml /etc/libvirt/qemu/c3.xml 
9c9
<   <name>c2</name>
---
>   <name>c3</name>
40c40
<       <source file='/kvm/images/c2.qcow2'/>
---
>       <source file='/kvm/images/c3.qcow2'/>
73,74c73,74
<       <mac address='52:54:00:e3:85:21'/>
<       <source network='default'/>
---
>       <mac address='52:54:00:e3:86:e1'/>
>       <source network='test'/>
[root@node1 images]# virsh define /etc/libvirt/qemu/c3.xml
定義域 c3(從 /etc/libvirt/qemu/c3.xml)

[root@node1 images]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 1     generic                        running
 2     centos7.0                      running
 3     c2                             running
 -     c3                             關閉

[root@node1 images]# virsh start c3
域 c3 已開始

[root@node1 images]# 

  驗證:連接至c3控制臺,查看其ip地址是否是test網路?是否能夠ping通virbr1?網關是否是virbr1?

[root@node1 images]# virsh domifaddr c3
 名稱     MAC 地址           Protocol     Address
-------------------------------------------------------------------------------
 vnet3      52:54:00:e3:86:e1    ipv4         192.168.12.179/24

[root@node1 images]# ssh 192.168.12.179
The authenticity of host '192.168.12.179 (192.168.12.179)' can't be established.
ECDSA key fingerprint is SHA256:heUVB8InZ+56B+vMgUz+B7Uus4EgklEU9DVeywf1Z7s.
ECDSA key fingerprint is MD5:0b:b1:75:a4:2b:ba:cf:f1:ac:51:cb:76:2a:74:89:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.12.179' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last login: Sun Aug 16 09:46:30 2020
[root@localhost ~]# ping 192.168.12.1
PING 192.168.12.1 (192.168.12.1) 56(84) bytes of data.
64 bytes from 192.168.12.1: icmp_seq=1 ttl=64 time=0.514 ms
64 bytes from 192.168.12.1: icmp_seq=2 ttl=64 time=0.585 ms
^C
--- 192.168.12.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.514/0.549/0.585/0.042 ms
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.12.1    0.0.0.0         UG    100    0        0 eth0
192.168.12.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0
[root@localhost ~]# exit
登出
Connection to 192.168.12.179 closed.
[root@node1 images]# 

  提示:從上面的資訊可以看到基于test網路創建的虛擬機,其內部獲取的地址是我們在test網路組態檔中指定的dhcp地址池,網關地址是virbr1的地址;

[root@node1 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.525400450615       yes             virbr0-nic
                                                        vnet0
                                                        vnet1
                                                        vnet2
virbr1          8000.525400450616       yes             virbr1-nic
                                                        vnet3
[root@node1 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 239 packets, 21179 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 68 packets, 8639 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 86 packets, 6827 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 86 packets, 6827 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    2   180 RETURN     all  --  *      *       192.168.12.0/24      224.0.0.0/24        
    1   328 RETURN     all  --  *      *       192.168.12.0/24      255.255.255.255     
   29  1740 MASQUERADE  tcp  --  *      *       192.168.12.0/24     !192.168.12.0/24      masq ports: 1024-65535
   94  7144 MASQUERADE  udp  --  *      *       192.168.12.0/24     !192.168.12.0/24      masq ports: 1024-65535
    1    84 MASQUERADE  all  --  *      *       192.168.12.0/24     !192.168.12.0/24     
    2   267 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
    0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
   80  4800 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
  269 20444 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24    
[root@node1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.12.0    0.0.0.0         255.255.255.0   U     0      0        0 virbr1
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@node1 ~]# ip a l vnet3
10: vnet3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr1 state UNKNOWN qlen 1000
    link/ether fe:54:00:e3:86:e1 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fee3:86e1/64 scope link 
       valid_lft forever preferred_lft forever
[root@node1 ~]# 

  提示:如果我們在基于test網路創建虛擬機,它也會把虛擬機的虛擬網卡橋接到virbr1上,如果我們指定的網路型別是nat型別并開啟了dhcp,它默認會把虛擬機的網關指向virbr1;并且在宿主機上的iptables的nat表中會添加SNAT規則,正因為這些iptables規則才使得虛擬機可以上外網;

  virsh net-info:查看指定網路的簡要資訊

[root@node1 ~]# virsh help net-info
  NAME
    net-info - 網路資訊

  SYNOPSIS
    net-info <network>

  DESCRIPTION
    回傳關于這個網路的基本資訊,

  OPTIONS
    [--network] <string>  網路名或 uuid


[root@node1 ~]# virsh net-info test
名稱:       test
UUID:           be2af58a-c8cd-4b73-8ee3-36cb3fe9566b
活躍:       是
持久:       是
自動啟動: 否
橋接:       virbr1

[root@node1 ~]# 

  virsh net-autostart:標記指定網路為自動啟動

[root@node1 ~]# virsh help net-autostart
  NAME
    net-autostart - 自動開始網路

  SYNOPSIS
    net-autostart <network> [--disable]

  DESCRIPTION
    設定一個網路在啟動時自動開始.

  OPTIONS
    [--network] <string>  網路名或 uuid
    --disable        禁止自動啟動


[root@node1 ~]# virsh net-autostart test 
網路test標記為自動啟動

[root@node1 ~]# virsh net-info test      
名稱:       test
UUID:           be2af58a-c8cd-4b73-8ee3-36cb3fe9566b
活躍:       是
持久:       是
自動啟動: 是
橋接:       virbr1

[root@node1 ~]# 

  virsh net-name:把指定uuid決議成名稱

[root@node1 ~]# virsh net-info test    
名稱:       test
UUID:           be2af58a-c8cd-4b73-8ee3-36cb3fe9566b
活躍:       是
持久:       是
自動啟動: 是
橋接:       virbr1

[root@node1 ~]# virsh help net-name    
  NAME
    net-name - 把一個網路UUID 轉換為網路名

  SYNOPSIS
    net-name <network>

  OPTIONS
    [--network] <string>  網路uuid


[root@node1 ~]# virsh net-name be2af58a-c8cd-4b73-8ee3-36cb3fe9566b
test

[root@node1 ~]# 

  virsh net-uuid:把指定網路名稱決議成uuid

[root@node1 ~]# virsh help net-uuid
  NAME
    net-uuid - 把一個網路名轉換為網路UUID

  SYNOPSIS
    net-uuid <network>

  OPTIONS
    [--network] <string>  網路名


[root@node1 ~]# virsh net-uuid test 
be2af58a-c8cd-4b73-8ee3-36cb3fe9566b

[root@node1 ~]#

  virsh net-dhcp-leases:顯示指定網路的dhcp的租賃資訊;

[root@node1 ~]# virsh help net-dhcp-leases
  NAME
    net-dhcp-leases - print lease info for a given network

  SYNOPSIS
    net-dhcp-leases <network> [--mac <string>]

  DESCRIPTION
    Print lease info for a given network

  OPTIONS
    [--network] <string>  網路名或 uuid
    --mac <string>   MAC 地址


[root@node1 ~]# virsh  net-dhcp-leases test 
 Expiry Time          MAC 地址         Protocol  IP address                Hostname        Client ID or DUID
-------------------------------------------------------------------------------------------------------------------
 2020-08-16 23:27:20  52:54:00:e3:86:e1  ipv4      192.168.12.179/24         -               -

[root@node1 ~]# virsh  net-dhcp-leases default 
 Expiry Time          MAC 地址         Protocol  IP address                Hostname        Client ID or DUID
-------------------------------------------------------------------------------------------------------------------
 2020-08-16 23:32:45  52:54:00:3e:3f:71  ipv4      192.168.122.4/24          cirros          01:52:54:00:3e:3f:71
 2020-08-16 23:11:38  52:54:00:e3:85:21  ipv4      192.168.122.168/24        -               -
 2020-08-16 23:14:35  52:54:00:e3:8d:11  ipv4      192.168.122.222/24        -               -

[root@node1 ~]# 

  virsh net-edit:編輯指定虛擬機的組態檔;

  提示:使用virsh net-edit,它默認就會去打開指定網路的組態檔,我們可以編輯這個組態檔來創建一個網路,也可以更改對應網路的配置,然后重讀組態檔使對應配置生效;

  編輯test網路組態檔的dhcp地址池地址和virbr1的地址;

[root@node1 ~]# virsh net-edit test
<network>
  <name>test</name>
  <uuid>f9452d96-55fa-4dbf-ad9c-b1ba99b7f2ad</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:45:06:16'/>
  <ip address='192.168.11.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.11.2' end='192.168.11.254'/>
    </dhcp>
  </ip>
</network>
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
"/tmp/virshJaE8MT.xml" 16L, 413C written
已編輯網路 test XML 配置

[root@node1 ~]# cat /etc/libvirt/qemu/networks/test.xml 
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh net-edit test
or other application using the libvirt API.
-->

<network>
  <name>test</name>
  <uuid>f9452d96-55fa-4dbf-ad9c-b1ba99b7f2ad</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:45:06:16'/>
  <ip address='192.168.11.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.11.2' end='192.168.11.254'/>
    </dhcp>
  </ip>
</network>
[root@node1 ~]# virsh net-info test
名稱:       test
UUID:           f9452d96-55fa-4dbf-ad9c-b1ba99b7f2ad
活躍:       是
持久:       是
自動啟動: 否
橋接:       virbr1

[root@node1 ~]# ip a l virbr1
13: virbr1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:45:06:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.1/24 brd 192.168.12.255 scope global virbr1
       valid_lft forever preferred_lft forever
[root@node1 ~]#

  提示:默認修改了指定活躍網路的組態檔后是不會馬上生效的;創建持久網路后,默認組態檔存放在/etc/libvirt/qemu/network/目錄下和對應網路名稱同名的xml格式檔案;

  讓指定網路重讀組態檔生效

[root@node1 ~]# virsh net-list 
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           是

[root@node1 ~]# virsh net-destroy test 
網路 test 被洗掉

[root@node1 ~]# virsh net-list         
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是

[root@node1 ~]# virsh net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 不活躍  否           是

[root@node1 ~]# virsh net-start test 
網路 test 已開始

[root@node1 ~]# ip a l virbr1
15: virbr1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:45:06:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.1/24 brd 192.168.11.255 scope global virbr1
       valid_lft forever preferred_lft forever
[root@node1 ~]# 

  提示:讓其重讀組態檔的方式我們只有重啟網路,所以上面的操作上先停止對應網路,然后在啟動對應網路;virsh net-destory命令是洗掉指定活躍狀態的網路,就相當于停止操作;

  驗證:對應網路上的虛擬機地址會發生更新嗎?

[root@node1 ~]# virsh domifaddr c3
 名稱     MAC 地址           Protocol     Address
-------------------------------------------------------------------------------

[root@node1 ~]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 1     generic                        running
 2     centos7.0                      running
 3     c2                             running
 4     c3                             running

[root@node1 ~]# virsh destroy c3
域 c3 被洗掉

[root@node1 ~]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 1     generic                        running
 2     centos7.0                      running
 3     c2                             running
 -     c3                             關閉

[root@node1 ~]# virsh start c3  
域 c3 已開始

[root@node1 ~]# virsh domifaddr c3
 名稱     MAC 地址           Protocol     Address
-------------------------------------------------------------------------------
 vnet3      52:54:00:e3:86:e1    ipv4         192.168.11.179/24

[root@node1 ~]# 

  提示:對應網路上的虛擬機如果不重啟,它默認會獲取不到地址;其實上述重啟可以使用virsh reboot命令;

  利用virsh edit來生成一個網路

[root@node1 ~]# virsh net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           是

[root@node1 ~]# virsh net-edit test 
  <uuid>f9452d96-55fa-4dbf-ad9c-b1ba99b7f2ad</uuid>
<network>
  <name>test1</name>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr2' stp='on' delay='0'/>
  <mac address='52:54:10:45:06:16'/>
  <ip address='192.168.10.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.10.2' end='192.168.10.254'/>
    </dhcp>
  </ip>
</network>
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
"/tmp/virshWqhNS8.xml" 15L, 362C written
已編輯網路 test1 XML 配置

[root@node1 ~]# ll /etc/libvirt/qemu/networks/
總用量 12
drwx------ 2 root root  25 8月  16 22:59 autostart
-rw------- 1 root root 576 8月  13 23:31 default.xml
-rw------- 1 root root 641 8月  16 23:23 test1.xml
-rw------- 1 root root 639 8月  16 23:09 test.xml
[root@node1 ~]# diff /etc/libvirt/qemu/networks/test.xml /etc/libvirt/qemu/networks/test1.xml 
4c4
<   virsh net-edit test
---
>   virsh net-edit test1
9,10c9,10
<   <name>test</name>
<   <uuid>f9452d96-55fa-4dbf-ad9c-b1ba99b7f2ad</uuid>
---
>   <name>test1</name>
>   <uuid>8dbdad99-91c5-435b-95b7-02179597f39e</uuid>
16,18c16,18
<   <bridge name='virbr1' stp='on' delay='0'/>
<   <mac address='52:54:00:45:06:16'/>
<   <ip address='192.168.11.1' netmask='255.255.255.0'>
---
>   <bridge name='virbr2' stp='on' delay='0'/>
>   <mac address='52:54:10:45:06:16'/>
>   <ip address='192.168.10.1' netmask='255.255.255.0'>
20c20
<       <range start='192.168.11.2' end='192.168.11.254'/>
---
>       <range start='192.168.10.2' end='192.168.10.254'/>
[root@node1 ~]# virsh net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           是
 test1                不活躍  否           是

[root@node1 ~]#

  提示:從上面的演示我們可以看到,當我們修改了網路組態檔中的網路名稱,ip地址,網橋名稱,mac,dhcp地址池然后保存,它就會在對應目錄下生成一個我們之前修改后的網路組態檔,并把我們的配置立刻應用到系統(define操作,不需要我們手動去define,它自動會define一個非活躍的持久網路);

  virsh net-create:從指定xml檔案創建一個非持久的臨時網路,并激活;

[root@node1 ~]# virsh help net-create
  NAME
    net-create - 從一個 XML 檔案創建一個網路

  SYNOPSIS
    net-create <file>

  DESCRIPTION
    創建一個網路

  OPTIONS
    [--file] <string>  檔案包括一個 XML網路描述


[root@node1 ~]# cat test.xml 
<network connections='3'>
  <name>test2</name>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr3' stp='on' delay='0'/>
  <mac address='52:54:00:45:06:17'/>
  <ip address='192.168.17.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.17.2' end='192.168.17.254'/>
    </dhcp>
  </ip>
</network>

[root@node1 ~]# ll /etc/libvirt/qemu/networks/
總用量 12
drwx------ 2 root root  25 8月  16 22:59 autostart
-rw------- 1 root root 576 8月  13 23:31 default.xml
-rw------- 1 root root 641 8月  16 23:23 test1.xml
-rw------- 1 root root 639 8月  16 23:09 test.xml
[root@node1 ~]# virsh net-create test.xml 
從test2創建網路test.xml 

[root@node1 ~]# virsh net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           是
 test1                不活躍  否           是
 test2                活動     否           否

[root@node1 ~]# ll /etc/libvirt/qemu/networks/
總用量 12
drwx------ 2 root root  25 8月  16 22:59 autostart
-rw------- 1 root root 576 8月  13 23:31 default.xml
-rw------- 1 root root 641 8月  16 23:23 test1.xml
-rw------- 1 root root 639 8月  16 23:09 test.xml
[root@node1 ~]# 

  提示:這里提示下define出來的網路默認是持久的,create出來的網路不是持久的,所謂持久就是是否在/etc/libvirt/qemu/network/目錄下生成組態檔,有組態檔的網路我們稱它為持久網路,沒有組態檔的網路我們稱它為臨時網路;

  virsh net-undefine:將指定持久網路取消定義,所謂取消定義就是轉為非持久網路;

[root@node1 ~]# virsh help net-undefine
  NAME
    net-undefine - undefine a persistent network

  SYNOPSIS
    net-undefine <network>

  DESCRIPTION
    Undefine the configuration for a persistent network.

  OPTIONS
    [--network] <string>  網路名或 uuid


[root@node1 ~]# virsh net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           是
 test1                不活躍  否           是
 test2                活動     否           否

[root@node1 ~]# ll /etc/libvirt/qemu/networks/
總用量 12
drwx------ 2 root root  25 8月  16 22:59 autostart
-rw------- 1 root root 576 8月  13 23:31 default.xml
-rw------- 1 root root 641 8月  16 23:23 test1.xml
-rw------- 1 root root 639 8月  16 23:09 test.xml
[root@node1 ~]# virsh net-undefine test1
網路 test1 已經被取消定義

[root@node1 ~]# virsh net-list --all          
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           是
 test2                活動     否           否

[root@node1 ~]# ll /etc/libvirt/qemu/networks/
總用量 8
drwx------ 2 root root  25 8月  16 22:59 autostart
-rw------- 1 root root 576 8月  13 23:31 default.xml
-rw------- 1 root root 639 8月  16 23:09 test.xml
[root@node1 ~]# virsh net-undefine test
網路 test 已經被取消定義

[root@node1 ~]# virsh net-list --all          
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 test                 活動     否           否
 test2                活動     否           否

[root@node1 ~]# ll /etc/libvirt/qemu/networks/
總用量 4
drwx------ 2 root root  25 8月  16 22:59 autostart
-rw------- 1 root root 576 8月  13 23:31 default.xml
[root@node1 ~]#

  提示:net-undefine會把活躍狀態的持久網路修改成非持久,它的操作就是把對應組態檔洗掉,并不會洗掉活躍的網路實體;將非活躍的持久化網路,它會洗掉其組態檔和網路實體;

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/3565.html

標籤:Linux

上一篇:docker環境安裝,鏡像和容器常用命令

下一篇:搭建一個開源專案10-Kubernetes集群部署(上)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more