<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # kvm簡紹 KVM 全稱是 基于內核的虛擬機(Kernel-basedVirtual Machine),它是一個 Linux 的一個內核模塊,該內核模塊使得 Linux 變成了一個 Hypervisor: * 它由 Quramnet 開發,該公司于 2008年被 Red Hat 收購。 * 它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。 * 它從 Linux 2.6.20 起就作為一模塊被包含在 Linux 內核中。 * 它需要支持虛擬化擴展的 CPU。 * 它是完全開源的。 (1)KVM特性 嵌入到Linux正式Kernel(提高兼容性),代碼級資源調用(提高性能),虛擬機就是一個進程(內存易于管理) (2)KVM虛擬化架構 ![1.20](http://oxysobnip.bkt.clouddn.com/1.20.png) (3)KVM CPU性能優化 * 一個 KVM 虛機即一個 Linux qemu-kvm 進程,與其他Linux 進程一樣被Linux 進程調度器調度。 * KVM 虛機包括虛擬內存、虛擬CPU和虛機 I/O設備,其中,內存和 CPU 的虛擬化由 KVM 內核模塊負責實現,I/O 設備的虛擬化由 QEMU 負責實現。 * KVM戶機系統的內存是 qumu-kvm 進程的地址空間的一部分。 * KVM 虛機的 vCPU 作為 線程運行在 qemu-kvm 進程的上下文中。 CPU虛擬化 ![1.21](http://oxysobnip.bkt.clouddn.com/1.21.png) # KVM安裝 ## 檢查主機是否支持虛擬化 打開您的虛擬機的虛擬化引擎 ![1.22](http://oxysobnip.bkt.clouddn.com/1.22.png) <pre> egrep -c '(vmx|svm)' /proc/cpuinfo </pre> 命令結果大于0表示cpu支持虛擬化 ![1.23](http://oxysobnip.bkt.clouddn.com/1.23.png) 最好關閉防火墻和關閉selinux <pre> systemctl stop firewalld systemctl disable firewalld vim /etc/selinux/config 將enforcing改為disabled </pre> ## 配置本地yum源 替換CentOS默認源,默認生產環境上不了外網,所以你得想辦法用自己的內部Yum源,如果沒有,需要搭建一個。讓系統上網,然后運行下面命令: <pre> cd /etc/yum.repos.d rm -rf * wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo </pre> 在我的實驗環境中我已經搭好了本地yum源,在這里我直接使用本地yum源,下面是我的yum配置文件 ![1.24](http://oxysobnip.bkt.clouddn.com/1.24.png) ## 安裝kvm以及相應的依賴包 安裝依賴包 <pre> yum -y groupinstall "Virtualization Host" yum -y install virt-{install,viewer,manager} </pre> 相關組件介紹 【1】libvirt:操作和管理KVM虛機的虛擬化 API,使用 C 語言編寫,可以由 Python,Ruby, Perl, PHP, Java 等語言調用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。 【2】Virsh:基于 libvirt 的 命令行工具 (CLI) 【3】Virt-Manager:基于 libvirt 的 GUI 工具 kvm內核模塊 ![1.25](http://oxysobnip.bkt.clouddn.com/1.25.png) ## 配置網卡為橋接模式 <pre> cd /etc/sysconfig/network-scripts/ cp ifcfg-eno16777736 ifcfg-br0 </pre> 我的配置文件 <pre> [root@kvm network-scripts]# cat ifcfg-eno16777736 TYPE="Ethernet" DEVICE="eno16777736" NAME="eno16777736" BRIDGE=br0 [root@kvm network-scripts]# cat ifcfg-br0 TYPE=Bridge NAME=br0 DEVICE=br0 IPADDR=172.31.129.95 NETMASK=255.255.255.0 GATEWAY=172.31.129.254 </pre> ## 創建虛擬機硬盤 <pre> qemu-img create -f qcow2 /mnt/vm-test/iso/centos-7.2.qcow2 10G chown qemu:qemu /mnt/vm-test/iso/centos-7.2.qcow2 -R </pre> ## 創建虛擬機 <pre> [root@kvm iso]# virt-install --virt-type kvm --name centos-7.2 --ram 512 \ # name 是自己取得 > --vcpus 1 \ #指定cpu核數 > --cdrom=CentOS-7-x86_64-DVD-1511.iso \ #指定鏡像 > --disk centos-7.2.qcow2,format=qcow2 \ #disk參數為上面創建的磁盤 > --network network=default \ #網絡設置為默認網絡(NAT) > --graphics vnc,listen=0.0.0.0 --noautoconsole \ #運行所有網段遠程,遠程方式采用vnc > --os-type=linux --os-variant=rhel7 #指定系統類型 </pre> 橋接網卡位置 <pre> virt-install --virt-type kvm --name centos-7.2 --ram 512 --vcpus 1 --cdrom=CentOS-7-x86_64-DVD-1511.iso --disk centos7.2.qcow2,format=qcow2 --network bridge=virbr0 --vnc --vncport=5910 --vnclisten=0.0.0.0 --os-type=linux --os-variant=rhel7 </pre> ## 遠程虛擬機 查看端口:netstat –natp ![1.26](http://oxysobnip.bkt.clouddn.com/1.26.png) 在vnc輸入172.31.129.95:5900即可遠程虛擬機 # KVM命令介紹 ## virsh virsh:虛擬化交互式終端 ![1.27](http://oxysobnip.bkt.clouddn.com/1.27.png) * virsh list # 顯示本地活動虛擬機 * virsh start kvm_name # 啟動非活動虛擬機, kvm_name為你的虛擬機名字 * virsh create kvm_name.xml # 創建虛擬機(創建后,虛擬機立即執行,成為活動主機) * virsh suspend kvm_name # 暫停虛擬機 * virsh resume kvm_name # 啟動暫停的虛擬機 * virsh shutdown kvm_name # 正常關閉虛擬機 * virsh destroy kvm_name # 強制關閉虛擬機 * virsh dominfo kvm_name # 顯示虛擬機的基本信息 * virsh dumpxml kvm_name # 顯示虛擬機的當前配置文件 * virsh setmem kvm_name 51200 # 給不活動虛擬機設置內存大小 * virsh setvcpus kvm_name 4 # 給不活動虛擬機設置cpu個數 * virsh edit kvm_name # 編輯配置文件(一般用在剛定義完VM) 虛擬機配置文件路徑:/etc/libvirt/qemu ## 虛擬化vcpu操作 <pre> yum -y install numactl </pre> * nodeinfo #查看節點配置信息 * dominfo #查看虛擬機節點配置信息 * numactl --hardware #查看節點硬件信息 * numastat –c qemu-kvm * virsh - vcpuinfo kvm_name #查看運行在那個邏輯cpu上 - emulatorpin kvm_name #查看可以調度邏輯cpu - emulatorpin kvm_name 1-2 –live #限制可以調度邏輯cpu(重啟生效) ![1.28](http://oxysobnip.bkt.clouddn.com/1.28.png) 虛擬機cpu優化 vcpu單獨強制綁定 - vcpupin kvm_name 0 1 - vcpupin kvm_name 1 2 - vcpuinfo - dumpxml kvm_name 命令使用參考文章: [CPU性能監控之二-----Numa架構下進程與CPU綁定](http://hl914.blog.51cto.com/4128173/1557615/ ) [numa總結](http://blog.csdn.net/shaoyunzhe/article/details/53606584) ## 安裝acpid 默認情況下virsh工具不能對linux虛擬機進行關機操作,linux操作系統需要開啟與啟動acpid服務。在安裝KVM linux虛擬機必須配置此服務。 <pre> yum install -y acpid systemctl enable acpid </pre> ## 克隆虛擬機 (1)根據模板文件修改 - 進入對應目錄拷貝模板文件 <pre> cd /etc/libvirt/qemu cp centos-7.2.xml clone-1.xml </pre> - 修改虛擬名稱 - 刪除uuid ![1.29](http://oxysobnip.bkt.clouddn.com/1.29.png) - 指定disk ![1.30](http://oxysobnip.bkt.clouddn.com/1.30.png) - 刪除mac ![1.31](http://oxysobnip.bkt.clouddn.com/1.31.png) - 修改vnc遠程允許端口(可選) 如果您上面選擇橋接模式創建虛擬機且指定了端口5910,請您把5910改為5911,這樣可以避免與centos7.3的端口沖突 (2)復制qcow2文件 <pre> cp centos-7.2.qcow2 clone-1.qcow2 </pre> (3)virsh define 模板文件路徑 <pre> virsh define /etc/libvirt/qemu/clone-1.xml </pre> (4)啟動虛擬機 <pre> virsh start clone-1 </pre> (5)刪除克隆的虛擬機 <pre> virsh shutdown clone-1 virsh undefine clone-1 rm –rf /mnt/vm-test/clone-1.qcow2 </pre> (6)一個小坑 ![1.32](http://oxysobnip.bkt.clouddn.com/1.32.png) 這一行位置在第86行,修改配置文件時一定要刪除,不知道為什么,它會出現在CentOS7.2版本的系統中,而在CentOS7.3版本的系統中不會出現這一行代碼! ## 虛擬機快照snapshot <pre> virsh # snapshot-create-as centos-7.2 kuaizhao #創建虛擬機centos-7.2的快照,快照名字為kuaizhao Domain snapshot kuaizhao created virsh # snapshot-list centos-7.2 #顯示虛擬機快照的名稱 Name Creation Time State ------------------------------------------------------------ kuaizhao 2017-10-17 09:53:49 +0800 shutoff virsh # snapshot-revert centos-7.2 kuaizhao #恢復快照 </pre> ## 添加磁盤 (1)創建磁盤 <pre> qemu-img create -f qcow2 /mnt/vm-test/ios/testadd.qcow2 10G </pre> (2)修改配置文件 <pre> virsh edit centos-7.2 </pre> 添加以下內容并保存配置文件 ``` <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/vm-test/ios/testadd.qcow2'/> <target dev='vdb' bus='virtio'/> </disk> ``` <pre> virsh create /etc/libvirt/qemu/centos-7.2.xml virsh destroy centos-7.2 virsh start centos-7.2 </pre> 重啟后進入虛擬機查看 ![1.33](http://oxysobnip.bkt.clouddn.com/1.33.png) (3)直接擴展qcow2磁盤 qcow2格式的好處就是支持直接擴展,下面我們關閉虛擬機直接對磁盤進行擴容 # qemu-img resize clone-3.qcow2 +10G ![1.35-1](http://oxysobnip.bkt.clouddn.com/1.35-1.png) 經過前后對比,磁盤大小已由20G擴展到30G,已擴展,qcow2磁盤格式必須采用此方式進行擴展! ## kvm虛擬機的網絡模式 (1)nat網絡模式 ![1.34](http://oxysobnip.bkt.clouddn.com/1.34.png) (2)橋接模式 ![1.35](http://oxysobnip.bkt.clouddn.com/1.35.png) (3)添加NAT網絡 定義一個虛擬網絡 <pre> virsh net-define /usr/share/libvirt/networks/default.xml </pre> 添加內容 ``` <network> <name>default</name> <bridge name="virbr0" /> <forward/> <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> ``` 設置為自動啟動 <pre> virsh net-autostart default </pre> 查看網絡 <pre> brctl show </pre> 修改/etc/sysctl.conf中參數,允許ip轉發 <pre> net.ipv4.ip_forward=1 </pre> 修改虛擬機配置文件 <pre> virsh edit centos-7.2 </pre> 修改網卡鏈接模式 橋接模式 <interface type='bridge'> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> nat模式 <interface type='network'> <source network='default'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> 修改完之后,保存退出。 <pre> virsh create /etc/libvirt/qemu/centos-7.2.xml </pre> 4. 修改橋接后nat不能上網問題 默認配置文件:(virsh交互界面) ![1.36](http://oxysobnip.bkt.clouddn.com/1.36.png) 將默認配置文件修改為: <pre> vim /etc/libvirt/qemu/networks/default.xml </pre> ![1.37](http://oxysobnip.bkt.clouddn.com/1.37.png) 然后再執行如下命令 <pre> virsh # net-define /etc/libvirt/qemu/networks/default.xml virsh # net-destroy default virsh # net-start default </pre>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看