VMware虛擬化kvm安裝部署總結

来源:https://www.cnblogs.com/zs-007/archive/2019/08/21/11387578.html
-Advertisement-
Play Games

虛擬化 1、環境 Centos7.3 關閉selinux,關閉防火牆 2、虛擬化環境配置 2.1 kvm部署安裝 1、 VMware 配置橋接模式 2、bios開啟虛擬機,以本地台式機為例, 重啟動電腦,一直按Del鍵,進入BIOS設置。詳情參考https://jingyan.baidu.com/a ...


虛擬化

1、環境

Centos7.3

關閉selinux,關閉防火牆

2、虛擬化環境配置

2.1 kvm部署安裝

1、 VMware 配置橋接模式

2、bios開啟虛擬機,以本地台式機為例,

重啟動電腦,一直按Del鍵,進入BIOS設置。詳情參考https://jingyan.baidu.com/article/4e5b3e190066c091901e2482.html

 

 查看是否支持虛擬機

#egrep '(vmx|svm)' --color=always /proc/cpuinfo

3、配置epel  yum源

4、安裝kvm軟體包

yum install qemu-kvm qemu-kvm-tools  libvirt virt-manager virt-install openssh-askpass –y

//qeum 虛擬化軟體,可以虛擬不同的CPU,以及模擬網卡、音效卡、PCI設備等

//libvirt 用於管理KVM的工具

//virt-install 命令行安裝虛擬機工具

//virt-manager 圖形化管理虛擬機工具

//openssh-askpass 遠程連接KVM主機

 

5、啟動libvirt管理KVM工具

#       systemctl enable libvirtd.service

#       systemctl start libvirtd.service

 

上傳ios文件到對應目錄,創建/opt/images(可以自定義位置)目錄放置磁碟空間文件

 

預設kvm配置文件位置

/etc/libvirt/qemu/

 

磁碟空間

KVM虛擬機中有兩種磁碟格式:

raw格式: 直接占用物理磁碟, 寫入快, 性能優, 但占用空間(預設格式)
Qcow2格式: 使用多少占多少磁碟, 支持壓縮、快照、鏡像

 

2.2 創建kvm虛擬機

Xshell 使用命令

宿主機使用Virt-manager命令進入圖形化界面安裝

註意當使用virt-manager管理工具管理虛擬機時可能會出現鍵盤輸入的鍵與顯示的鍵不同這種現象

此時只須修改虛擬機詳情中的VNC欄中Keymap屬性,將內容修改成en-us

修改完成後需要重新啟動虛擬機

若在虛擬機運行時修改不成功,可將虛擬機關閉,然後在虛擬機關閉狀態下修改即可

步驟一:新建名為rhel7.2的虛擬機

1)在“虛擬系統管理器”中單擊左上方“創建新虛擬機”按鈕(如圖-3所示)。

 

 

圖-3

2)彈出“新建虛擬機”嚮導,選擇“本地安裝介質”(如圖-4所示),單擊“前進”。

 

 

圖-4

3)接下來“定位安裝介質”,請正確指定RHEL7系統的ISO光碟鏡像文件位置(如圖-5所示),確認自動識別到操作系統類型,單擊“前進”。

 

 

圖-5

4)選擇記憶體和CPU設置,建議為虛擬機分配記憶體不小於1024MB(如圖-6所示),單擊“前進”。

 

 

圖-6

5)為虛擬機啟用存儲,例如分配一個40GiB的磁碟(如圖-7所示),單擊“前進”。

 

 

圖-7

6)為虛擬機命名,設為rhel7.2(如圖-8所示),單擊“完成”。

 

 

圖-8

步驟二:為虛擬機rhel7.2安裝操作系統

1)確認新虛擬機從光碟引導

上述設置全部完成後,將會自動開啟新虛擬機,併進入安裝過程(如圖-9所示)。

 

 

圖-9

2)完成後續手動安裝過程

具體過程與普通安裝相同,註意禁用防火牆、禁用SELinux機制。

3)確認安裝結果

新裝的虛擬機rhel7.2可以正常啟動、登錄。

在“虛擬系統管理器”中也能夠看到此虛擬機(如圖-10所示)。

 

 

圖-10

 

關閉selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

關閉防火牆(測試開發環境)

systemctl stop firewalld.service

systemctl disable firewalld

時間同步

yum install -y wget ntpdate net-tools

ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime

/usr/sbin/ntpdate  cn.pool.ntp.org

echo "0 */3 * * * /usr/sbin/ntpdate cn.pool.ntp.org; /sbin/hwclock -w >/dev/null" >>/var/spool/cron/root

 

添加阿裡雲yun源和epel源

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

修改最大進程數和最大文件打開數

vi /etc/security/limits.conf

* soft nproc 65535

* hard nproc 65535 * soft nofile 65536 * hard nofile 65536

noproc   是代表最大進程數

nofile     是代最大文件打開數

 

關閉當前shell,重新打開就生效,不需要重啟系統

 

清空/etc/issue /etcissue.net,去除系統及內核版本登錄前的屏幕顯示

echo > /etc/issue

echo > /etc/issue.net

 

 

 

 

3、KVM虛擬機的管理主要是通過virsh命令對虛擬機進行管理。

1.  查看KVM虛擬機配置文件及運行狀態

(1) KVM虛擬機預設配置文件位置: /etc/libvirt/qemu/

autostart目錄是配置kvm虛擬機開機自啟動目錄。

(2) virsh命令幫助

# virsh –help

3.1 常用命令

1)virsh nodeinfo:查看KVM節點(伺服器)信息

2)virsh list –all   查看kvm虛擬機狀態

3)virsh start oeltest01   KVM虛擬機開機

4)virsh shutdown oeltest01  KVM虛擬機關機

5)virsh destroy  oeltest01   強制關閉電源

6)virsh reboot oeltest01   將指定的虛擬機重啟

7)virsh create /etc/libvirt/qemu/wintest01.xml通過配置文件啟動虛擬機

8)virsh autostart oeltest01  配置開機自啟動虛擬機

9)virsh autostart —disable Name  /關閉虛擬機隨系統啟動

10)virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml   導出KVM虛擬機配置文件

11)virsh undefine wintest01 該命令只是刪除wintest01的配置文件,並不刪除虛擬磁碟文件12)virsh dominfo 虛擬機名稱:查看指定虛擬機的信息

13)virsh edit wintest01 編輯KVM虛擬機配置文件

14)virsh suspend oeltest01 掛起伺服器

15) virsh  resume oeltest01 恢復伺服器

3.2 VM虛擬機擴容

KVM虛擬機中有兩種磁碟格式:

raw格式: 直接占用物理磁碟, 寫入快, 性能優, 但占用空間
Qcow2格式: 使用多少占多少磁碟, 支持壓縮、快照、鏡像
註意:raw不支持快照, Qcow2支持快照, 但兩者文件類型是可以相互間轉換

無論磁碟是raw qcow2格式, 擴展思路如下

1.新添加一塊磁碟加入至需要擴容的虛擬主機
2.使用lvm邏輯捲管理方式進行擴展

1.查看當前KVM虛擬機所使用的虛擬磁碟

[root@kvm-node1 ~]# virsh domblklist centos7u4-node1

Target     Source

------------------------------------------------

vda        /data/centos7u4-node1.qcow2

 

2.創建一塊qcow2虛擬磁碟

[root@kvm-node1 ~]# qemu-img create -f qcow2 /data/centos7u4-node1-disk2.qcow2 10G

3.線上添加虛擬磁碟

//線上添加

[root@kvm-node1 ~]# virsh attach-disk centos7u4-node1 /data/centos7u4-node1-disk2.qcow2 vdb --cache=none --subdriver=qcow2

Disk attached successfully

 

//查看新增磁碟狀態

[root@kvm-node1 ~]# virsh domblklist centos7u4-node1

Target     Source

------------------------------------------------

vda        /data/centos7u4-node1.qcow2

vdb        /data/centos7u4-node1-disk2.qcow2

 

//修改配置文件,防止重啟kvm後新加磁碟丟失, 新增如下配置

[root@kvm-node1 ~]# virsh edit centos7u4-node1

<disk type='file' device='disk'>    

  <driver name='qemu' type='qcow2' cache='none'/>     

  <source file='/data/centos7u4-node1-disk2.qcow2'/>     

  <target dev='vdb' bus='virtio'/>     

 </disk>

4.通過vnc連接KVM虛擬機進行磁碟擴容

5.擴容步驟如下,直接把vdb全部加到邏輯分區裡面

mkfs.xfs /dev/sdb   #格式化新硬碟

pvcreate /dev/vdb   #初始化物理捲

vgextend centos   /dev/vdb  #將初始化過的分區加入到虛擬捲組centos (捲和捲組的命令可以通過 vgdisplay )

lvextend -l +100%FREE /dev/centos/root    擴展已有捲的容量是通過vgdisplay查看的free的大小)

xfs_growfs /dev/centos/root  # CentOS 7 下麵 由於使用的是 XFS,

resize2fs /dev/mapper/centos-root  # CentOS 6 下麵 由於使用的是 XFS

 

 

 

3.3 VM虛擬機性能調整

調大記憶體、增加cpu個數

1、關閉虛機

#       virsh shutdown vm

2、編輯虛擬機配置文件,調整

#       virsh edit test01          

找到“memory”和“vcpu”標簽,將

<name>test01</name>

  <uuid>2220a6d1-a36a-4fbb-8523-e078b3dfe795</uuid>

  <memory unit='KiB'> 1048576</memory>

  <currentMemory unit='KiB'> 1048576</currentMemory>

  <vcpu placement='static'>1</vcpu>

改為:

<name>centos73</name>

  <uuid>2220a6d1-a36a-4fbb-8523-e078b3dfe795</uuid>

  <memory unit='KiB'> 2097152</memory>

  <currentMemory unit='KiB'> 2097152</currentMemory>

  <vcpu placement='static'>2</vcpu>

3、重定義使配置生效   

#       virsh define /etc/libvirt/qemu/test01.xml   

4、開啟虛擬機

#       virsh start test01

調整前虛擬機信息

 

 

調整後虛擬機信息

 

 

 

 

 

 

 

3.4 kvm克隆

3.4.1 KVM主機本機虛擬機直接克隆

(克隆機器必須是關機狀態)

virt-clone -o z7-013-251-template -n test01 -f /kvm/test01.img

說明:以z7-013-251-template做為源,克隆test01虛擬機,並創建名稱為test01虛擬機,使用磁碟文件/kvm/test01.img

 

#virsh start test01   #啟動test01

配置開機自啟動虛擬機

# virsh autostart test01

virt-manager進入克隆的虛擬機,修改克隆機器的IP地址(事先ping一下,確認IP可以使用,不要和其他IP衝突), 修改hostname主機名等

測試模板機(修改時區,時間同步,關閉selinux,關閉防火牆,關閉postfix服務)

 

3.4.2 通過圖形化界面克隆

在宿主伺服器中輸入命令virt-manager,喚出圖形界面

打開操作界面,右擊現有的虛擬機進行克隆

 

虛擬機命名規則:

test-014-004-gaia—測試

dev-016-004-gaia—開發

 

u  打開修改配置,相應網段的地址,選擇相應vlan

 

 

u  在宿主機上修改磁碟文件名稱

# mv /kvm/z7-013-253-disk-001-clone.img /kvm/test01.img

# sed -i 's@/kvm/z7-013-253-disk-001-clone.img@/kvm/test01.img@' /etc/libvirt/qemu/test01.xml

然後啟動虛擬機

進入克隆的虛擬機,修改克隆機器的IP地址等

 

 

3.5 刪除虛擬機或者圖形化界面操作

1)  關閉虛擬機:virsh destroy test01

2)  刪除虛擬機文件(在/var/lib/libvirtd/下的相關文件)

3)刪除定義:virsh undefine test01

4)virsh autostart --disable test01

 

3.6 kvm虛擬機遷移

 

遷移就是虛擬機在關機狀態下,拷貝虛擬機虛擬磁碟文件與配置文件到目標虛擬主機中,實現的遷移。

 跨宿主機遷移

(1)  確定虛擬機關閉狀態

(2)     準備遷移test01虛擬機,查看該虛擬機配置的磁碟文件

# [root@kvm213 ~]# virsh domblklist test01

Target     Source

------------------------------------------------

vda        /kvm/test01.img

 

(3)  導入虛擬機配置文件

#virsh dumpxml test01 > /root/test01.xml

(4)     Scp 拷貝配置文件和虛擬磁碟文件到目標虛擬主機對應位置上

 

目標虛擬主機上

查看虛擬機磁碟文件,目錄結構與源虛擬主機一致。

定義註冊虛擬主機

virsh define /etc/libvirt/qemu/test01.xml

啟動虛擬主機並確認

 

 

 

3.7 kvm虛擬機快照備份

要使用鏡像功能,磁碟格式必須為qcow2

(1)  查看磁碟格式

#qemu-img info test01.img

 

(2)  對虛擬機進行快照管理

# virsh snapshot-create test01

查看虛擬機鏡像快照的版本

#virsh snapshot-list test01

 

查看當前虛擬機鏡像快照的版本

 #virsh snapshot-current test01   

 

(3)  恢復虛擬機快照,必須關閉虛擬機

執行恢復,並確認恢復版本

# virsh snapshot-revert  test01 版本號

(4)  刪除虛擬機快照

#virsh  snapshot-delete  test01  版本號

 

 

 

 

 

 

 

 

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CMD命令:開始->運行->鍵入cmd或command(在命令行里可以看到系統版本、文件系統版本) CMD命令錦集 1. gpedit.msc 組策略 2. sndrec32 錄音機 3. Nslookup IP地址偵測器 ,是一個 監測網路中 DNS 伺服器是否能正確實現功能變數名稱解析的命令行工具。 它 ...
  • 1. sudo:臨時提權(提升許可權)的工具通常,實際操作中,採用sudo的管理方式,臨時的允許某個用戶操作某些指令時,擁有root許可權。2. 使用方法: 配置sudo,決定,哪些用戶,可以使用root許可權,執行哪些命令3. sudo 執行:在執行命令錢,增加sudo ,並提供自己的密碼即可,完成某條 ...
  • @[toc] 前言 上一篇整完Linux系統的安裝,緊接著就開始來安裝些常用的東西吧,首先 Nginx 。 Nginx 簡介 Nginx作為轉發,負載均衡,憑著其高性能的特效在web這一塊兒是一個神器,只要體量稍微大點兒的工程都必不可少使用Nginx來做負載均衡。 安裝使用 我們有兩種安裝方式,一種 ...
  • Ag:比grep、ack更快的歸遞搜索文件內容 1:首先在linux創建個sh文件->ag.sh 2:在ag.sh裡面輸入如下內容並保存 #!/bin/bash set -x TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX) cd ${TEMP_DIR} wget h ...
  • 1- svn 更新判斷代碼 本著學習的目的,這裡使用了兩種獲取version的方法。 2- 解釋 sort svn info -R 遞歸查出所有文件的info信息 sort -k 2 是以第二列排序 sort -t : 是指定以“:”為列分隔符 sort -nr: n是指以數字排序,預設是以字元排序 ...
  • 在 Linux 中,我們該如何對磁碟進行分區,格式化、掛載? ...
  • 最近看著Linux Mint里一攬子亂七八糟的應用和散佈各處的配置文件愈發煩躁,便想體驗下大名鼎鼎的Arch,網上的帖子們把Arch Linux的安裝難度描述的非常可怕,但實際上跟著Wiki一步一步來並不需要耗費太多精力。現在把安裝過程記錄在下麵(Arch Wiki寫的已經非常詳細了,詳見 "Arc ...
  • 開發中有沒有碰到過輸入一條命令後, 需要互動式輸入其他指令, 才能真正執行完第一條命令? 比如遠程ssh登錄時, 需要輸入yes, 然後輸入密碼的場景. 在自動化腳本中如何實現這種自動交互呢? 本篇博文通過對expect套件的介紹及演示, 解決這個問題. ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...