1. 程式人生 > >【Linux】Cent OS 虛擬機開機自啟動配置

【Linux】Cent OS 虛擬機開機自啟動配置

map nod ada 參考 snap can fine discover 自啟

一次斷電,導致實體機關機了,虛擬機也連不上去,只好手動來起來。

我想增加一下自啟動,讓硬件開機的時候,自動啟動虛擬機;

其實是有辦法的,嘗試了一下,也成功了,這裏簡單標記下。

virsh autostart dev

要想停止開機自啟動

virsh autostart --disable dev

註意:上面的dev是機器名稱,看下下面截圖,就明白了。

技術分享圖片

技術分享圖片

當然,virsh有很多命令可用,一般help基本都明白了。

virsh # help
Grouped commands:

 Domain Management (help keyword 
domain): attach-device attach device from an XML file attach-disk attach disk device attach-interface attach network interface autostart autostart a domain blkdeviotune Set or query a block device I
/O tuning parameters. blkiotune Get or set blkio parameters blockcommit Start a block commit operation. blockcopy Start a block copy operation. blockjob Manage active block operations blockpull Populate a disk from its backing image. blockresize Resize block device of domain. change
-media Change media of CD or floppy drive console connect to the guest console cpu-baseline compute baseline CPU cpu-compare compare host CPU with a CPU described by an XML file cpu-stats show domain cpu statistics create create a domain from an XML file define define (but dont start) a domain from an XML file desc show or set domains description or title destroy destroy (stop) a domain detach-device detach device from an XML file detach-disk detach disk device detach-interface detach network interface domdisplay domain display connection URI domfsfreeze Freeze domains mounted filesystems. domfsthaw Thaw domains mounted filesystems. domfsinfo Get information of domains mounted filesystems. domfstrim Invoke fstrim on domains mounted filesystems. domhostname print the domains hostname domid convert a domain name or UUID to domain id domif-setlink set link state of a virtual interface domiftune get/set parameters of a virtual interface domjobabort abort active domain job domjobinfo domain job information domname convert a domain id or UUID to domain name domrename rename a domain dompmsuspend suspend a domain gracefully using power management functions dompmwakeup wakeup a domain from pmsuspended state domuuid convert a domain name or id to domain UUID domxml-from-native Convert native config to domain XML domxml-to-native Convert domain XML to native config dump dump the core of a domain to a file for analysis dumpxml domain information in XML edit edit XML configuration for a domain event Domain Events inject-nmi Inject NMI to the guest iothreadinfo view domain IOThreads iothreadpin control domain IOThread affinity iothreadadd add an IOThread to the guest domain iothreaddel delete an IOThread from the guest domain send-key Send keycodes to the guest send-process-signal Send signals to processes lxc-enter-namespace LXC Guest Enter Namespace managedsave managed save of a domain state managedsave-remove Remove managed save of a domain memtune Get or set memory parameters perf Get or set perf event metadata show or set domains custom XML metadata migrate migrate domain to another host migrate-setmaxdowntime set maximum tolerable downtime migrate-compcache get/set compression cache size migrate-setspeed Set the maximum migration bandwidth migrate-getspeed Get the maximum migration bandwidth migrate-postcopy Switch running migration from pre-copy to post-copy numatune Get or set numa parameters qemu-attach QEMU Attach qemu-monitor-command QEMU Monitor Command qemu-monitor-event QEMU Monitor Events qemu-agent-command QEMU Guest Agent Command reboot reboot a domain reset reset a domain restore restore a domain from a saved state in a file resume resume a domain save save a domain state to a file save-image-define redefine the XML for a domains saved state file save-image-dumpxml saved state domain information in XML save-image-edit edit XML for a domains saved state file schedinfo show/set scheduler parameters screenshot take a screenshot of a current domain console and store it into a file set-user-password set the user password inside the domain setmaxmem change maximum memory limit setmem change memory allocation setvcpus change number of virtual CPUs shutdown gracefully shutdown a domain start start a (previously defined) inactive domain suspend suspend a domain ttyconsole tty console undefine undefine a domain update-device update device from an XML file vcpucount domain vcpu counts vcpuinfo detailed domain vcpu information vcpupin control or query domain vcpu affinity emulatorpin control or query domain emulator affinity vncdisplay vnc display guestvcpus query or modify state of vcpu in the guest (via agent) setvcpu attach/detach vcpu or groups of threads domblkthreshold set the threshold for block-threshold event for a given block device or its backing chain element Domain Monitoring (help keyword monitor): domblkerror Show errors on block devices domblkinfo domain block device size information domblklist list all domain blocks domblkstat get device block stats for a domain domcontrol domain control interface state domif-getlink get link state of a virtual interface domifaddr Get network interfaces addresses for a running domain domiflist list all domain virtual interfaces domifstat get network interface stats for a domain dominfo domain information dommemstat get memory statistics for a domain domstate domain state domstats get statistics about one or multiple domains domtime domain time list list domains Host and Hypervisor (help keyword host): allocpages Manipulate pages pool size capabilities capabilities cpu-models CPU models domcapabilities domain capabilities freecell NUMA free memory freepages NUMA free pages hostname print the hypervisor hostname maxvcpus connection vcpu maximum node-memory-tune Get or set node memory parameters nodecpumap node cpu map nodecpustats Prints cpu stats of the node. nodeinfo node information nodememstats Prints memory stats of the node. nodesuspend suspend the host node for a given time duration sysinfo print the hypervisor sysinfo uri print the hypervisor canonical URI version show version Interface (help keyword interface): iface-begin create a snapshot of current interfaces settings, which can be later committed (iface-commit) or restored (iface-rollback) iface-bridge create a bridge device and attach an existing network device to it iface-commit commit changes made since iface-begin and free restore point iface-define define an inactive persistent physical host interface or modify an existing persistent one from an XML file iface-destroy destroy a physical host interface (disable it / "if-down") iface-dumpxml interface information in XML iface-edit edit XML configuration for a physical host interface iface-list list physical host interfaces iface-mac convert an interface name to interface MAC address iface-name convert an interface MAC address to interface name iface-rollback rollback to previous saved configuration created via iface-begin iface-start start a physical host interface (enable it / "if-up") iface-unbridge undefine a bridge device after detaching its slave device iface-undefine undefine a physical host interface (remove it from configuration) Network Filter (help keyword filter): nwfilter-define define or update a network filter from an XML file nwfilter-dumpxml network filter information in XML nwfilter-edit edit XML configuration for a network filter nwfilter-list list network filters nwfilter-undefine undefine a network filter Networking (help keyword network): net-autostart autostart a network net-create create a network from an XML file net-define define an inactive persistent virtual network or modify an existing persistent one from an XML file net-destroy destroy (stop) a network net-dhcp-leases print lease info for a given network net-dumpxml network information in XML net-edit edit XML configuration for a network net-event Network Events net-info network information net-list list networks net-name convert a network UUID to network name net-start start a (previously defined) inactive network net-undefine undefine a persistent network net-update update parts of an existing networks configuration net-uuid convert a network name to network UUID Node Device (help keyword nodedev): nodedev-create create a device defined by an XML file on the node nodedev-destroy destroy (stop) a device on the node nodedev-detach detach node device from its device driver nodedev-dumpxml node device details in XML nodedev-list enumerate devices on this host nodedev-reattach reattach node device to its device driver nodedev-reset reset node device nodedev-event Node Device Events Secret (help keyword secret): secret-define define or modify a secret from an XML file secret-dumpxml secret attributes in XML secret-event Secret Events secret-get-value Output a secret value secret-list list secrets secret-set-value set a secret value secret-undefine undefine a secret Snapshot (help keyword snapshot): snapshot-create Create a snapshot from XML snapshot-create-as Create a snapshot from a set of args snapshot-current Get or set the current snapshot snapshot-delete Delete a domain snapshot snapshot-dumpxml Dump XML for a domain snapshot snapshot-edit edit XML for a snapshot snapshot-info snapshot information snapshot-list List snapshots for a domain snapshot-parent Get the name of the parent of a snapshot snapshot-revert Revert a domain to a snapshot Storage Pool (help keyword pool): find-storage-pool-sources-as find potential storage pool sources find-storage-pool-sources discover potential storage pool sources pool-autostart autostart a pool pool-build build a pool pool-create-as create a pool from a set of args pool-create create a pool from an XML file pool-define-as define a pool from a set of args pool-define define an inactive persistent storage pool or modify an existing persistent one from an XML file pool-delete delete a pool pool-destroy destroy (stop) a pool pool-dumpxml pool information in XML pool-edit edit XML configuration for a storage pool pool-info storage pool information pool-list list pools pool-name convert a pool UUID to pool name pool-refresh refresh a pool pool-start start a (previously defined) inactive pool pool-undefine undefine an inactive pool pool-uuid convert a pool name to pool UUID pool-event Storage Pool Events Storage Volume (help keyword volume): vol-clone clone a volume. vol-create-as create a volume from a set of args vol-create create a vol from an XML file vol-create-from create a vol, using another volume as input vol-delete delete a vol vol-download download volume contents to a file vol-dumpxml vol information in XML vol-info storage vol information vol-key returns the volume key for a given volume name or path vol-list list vols vol-name returns the volume name for a given volume key or path vol-path returns the volume path for a given volume name or key vol-pool returns the storage pool for a given volume key or path vol-resize resize a vol vol-upload upload file contents to a volume vol-wipe wipe a vol Virsh itself (help keyword virsh): cd change the current directory echo echo arguments exit quit this interactive terminal help print help pwd print the current directory quit quit this interactive terminal connect (re)connect to hypervisor

補充部分Virsh操作命令,如下:

libvirt是一個通用的虛擬化框架,支持xen,kvm,lxc多種虛擬化技術,本文作為一個筆記。

設置LXC為默認(默認為qemu)

export LIBVIRT_DEFAULT_URI=lxc:///

virsh -c lxc:/// 可省略

網絡設置

NAT

NAT是libvirt默認自帶,叫做default,通過下面的 命令查看

virsh net-list

假設宿主機有兩個網卡,eth0為內網,eth1為外網,我們可以為容器橋接出兩個接口:

#cat lan.xml

<network>
   <name>lan</name>
   <forward mode="bridge" />
      <interface dev="eth0" />
 </network>

#cat wan.xml

<network>
  <name>wan</name>
     <forward mode="bridge" />
       <interface dev="eth1" />
  </network>
導入配置
virsh net-define lan.xm
virsh net-define wan.xml

開啟網卡

virsh net-start lan
virsh net-autostart lan
virsh net-start wan
virsh net-autostart wan

應用容器

應用容器共享宿主機的各種資源,包括內核,各種軟件包,各種庫,它僅有一個獨立的運行空間,像是一個沙箱環境。

創建一個名為web的應用容器

cat web.xml

<domain type="lxc">
   <name>web</name>
      <memory>102400</memory>
      <os>
         <type>exec</type>
         <init>/bin/sh</init>
       </os>
     <device>
        <console type="pty" />
     </device>
 </domain>

導入virsh

virsh define web.xml

開機啟動

virsh autostart web

進入容器

virsh console web

編輯容器配置

virsh edit web

刪除容器

virsh undefine web

操作系統容器

操作系統容器除了Linux內核,自己包含一整套運行環境,像是一個chroot環境。

操作系統容器創建稍稍復雜一點

1、創建根目錄

mkdir -p /lxc/centos7

2、下載並解壓鏡像 http://images.linuxcontainers.org/images/centos/7/amd64/default/20140807_02:37/rootfs.tar.xz

cd /lxc/centos7
wget   xxx
xz -d rootfs.tar.xz
tar xvf rootfs.tar

3、創建xml模板

cat centos7.xml

<domain type="lxc">
 <name>centos7</name>
 <memory unit="KiB">1048576</memory>
 <currentMemory unit="KiB">1048576</currentMemory>
 <resource>
   <partition>/machine</partition>
 </resource>
 <os>
 <clock offset=‘utc‘ />
 <on_poweroff>destory</on_poweroff>
 <on_reboot>restart</on_reboot>
 <on_crash>restart<on_crash>
</devices>
 <emulator>/usr/lib/libvirt/libvirt_lxc</emulator>
 <filesystem type=‘mount‘ accessmode=‘passthrough‘>
   <source dir=‘/lxc/centos7‘/>
   <target dir=‘/‘/>
  </filesystem>
  <interface type=‘network‘>
   <mac address=‘00:16:3e:52:87:f1‘/>
    <source network=‘lan‘/>
   </interface>
   <console type=‘pty‘>
     <target type=‘lxc‘ port=‘0‘/>
    </console>
   </devices>
  </domain>

導入容器

virsh define centos7.xml

啟動容器

virsh start centos7
virsh autostart centos7

進入容器

virsh console centos7

停止開機啟動

virsh autostart --disable centos7

退出lxc console

ctrl+]

另外,補充一個服務自啟動的,可以參考,比較簡單,就兩條命令好了,剛才順手也添加了一下。

vi /etc/rc.d/rc.local

touch /var/lock/subsys/local

/home/bgop/start_redis.sh &
/home/bgop/start_nexus.sh &

shell如下:

[root@localhost ~]# cat /home/bgop/start_redis.sh
#/bin/sh
/usr/local/bin/redis-server /mnt/softwares/redis-2.8.3/redis.conf

[root@localhost ~]# cat /home/bgop/start_nexus.sh
#/bin/sh
/mnt/softwares/nexus-2.14.4-03/bin/nexus

目前機器正常,下次斷電後,補充測試結果

【Linux】Cent OS 虛擬機開機自啟動配置