原創 KVM虛擬化管理平台的實現

2022-07-05 12:06:13 字數 3492 閱讀 1904

kvm虛擬化管理平台的實現

根據kvm虛擬化管理的要求,設計並實現網頁操作管理kvm虛擬機器。設計原理架構如下圖所示:

1.前台具體實現:

根據要求實現如下功能設計圖:

wsgi伺服器 :flask雖然內建了簡單的wsgi伺服器,但其效能僅僅適用於開發期的除錯。 flask官網推薦了多種wsgi伺服器,實現方式從多程序到多執行緒到協程, 這方面的選擇我們在本課程中將不涉及。

至此,可以使用flask的route功能進行開發了。

前台工程框架**結構,如下圖所示:

**結構:

接下來是前台頁面的設計,登入頁使用html和css實現,如下圖所示為login.html的實現:

登入之後跳轉到首頁index.html頁面:

之後就可以使用kvm cloud系統建立並管理操作虛擬機器了。

建立虛擬機器頁面的功能頁面vm_create.html實現:

然後是虛擬機器列表vm_list.html的實現,顯示虛擬機器列表和虛擬機器的詳細資訊:

點選虛擬機器名稱可以跳轉到虛擬機器引數調整和操作功能vm_detail.html頁面:

如果在vm_list.html頁面點選虛擬機器的console對應列的遠端操作,將可以頁面遠端並操作虛擬機器,如下分別是linux的vnc遠端方式介面,ssh遠端方式介面,windows的vnc遠端方式介面。

linux的vnc遠端:

linux的ssh遠端:

windows的vnc遠端:

然後是磁碟新增的實現,建立虛擬磁碟disk_create.html實現:

輸入引數之後點選建立即可建立虛擬磁碟,然後跳轉到磁碟列表disk_list.html頁面:

如圖,可以掛在磁碟到對應的虛擬機器,解除安裝和刪除磁碟。掛載之後可以通過fdisk -l命令檢視虛擬機器磁碟資訊:

5)啟動redis:#redis-server redis.conf

6)停止redis例項

/usr/local/redis/bin/redis-cli shutdown

或者pkill redis-server

7)讓redis開機自啟

vim /etc/rc.local

加入/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf

如圖是**的結構圖:

目錄結構是:

其中,主程式檔案是kvm.py檔案,實現監聽redis並執行shell指令碼返回結果發布到redis中。vm_info.list檔案記錄了建立虛擬機器時的狀態資訊列表,vm_list檔案記錄了虛擬機器當前在kvm宿主機的狀態列表。disk_list檔案記錄了磁碟的狀態資訊列表。如下:

#cat vm_info.list

xp01 1 2048000 10 windows_xp running

centos 1 2048000 10 linux_centos running

#cat vm_list

centos|192.168.0.105|1|2048000|centos|running

xp01|192.168.0.133|1|2048000|winxp|running

#cat vm_list

sdb|10|unuse

其次,前台頁面vnc遠端虛擬機器需要在宿主機安裝novnc程式做**,建立連線**到虛擬機器的vnc服務埠,才可以在頁面實現websockity的訪問。以下是建立連線**的監聽指令碼start_vm_vnc.sh,虛擬機器母盤製作都預設使用5901作為vnc服務的監聽埠:

頁面的ssh遠端訪問linux使用了shellinabox開源工具實現,在linux母盤中安裝並設定開機啟動即可,基於母盤建立的虛擬就也會有了。shellinabox安裝如下:

部署shellinabox:

1) 安裝依賴:

#yum install git openssl-devel pam-devel zlib-devel autoconf automake libtool

2)獲取源**:

#git clone && cd shellinabox

3)生成編譯配置資訊:

#autoreconf -i

4)配置和編譯:

#./configure && make

5)安裝:

#make install

6)配置生成安全證書:

#openssl genrsa -des3 -out my.key 1024

#openssl req -new -key my.key -out my.csr

#cp my.key my.key.org

#openssl rsa -in my.key.org -out my.key

#openssl x509 -req -days 3650 -in my.csr -signkey my.key -out my.crt

#cat my.crt my.key > certificate.pem

7)啟動:

#/usr/local/bin/shellinaboxd -c /root -u root -b

#/usr/local/bin/shellinaboxd --disable-ssl -c /root -u root -b(不使用https)

8)檢視監聽埠:

#netstat -ntpl |grep 4200

9)檢視監聽程序:

#ps -ef |grep shell

10)瀏覽器訪問:

至此,kvm虛擬化管理系統前後臺實現完成。

KVM虛擬化平台

一 kvm虛擬化平台 1 常見的虛擬化平台 1 windows虛擬平台 hyper v 2 vmware esxl 3 linux虛擬化平台 kvm4 容器虛擬化 docker 2 kvm的作用和架構 1 作用 kvm虛擬化引用程式 linux核心2.6以後都支援不需要編譯安裝 2 架構 計算機硬體...

開源KVM虛擬化平台 Jimv

在日常工作中隨著伺服器的增多對於運維來說,我們需要乙個web虛擬化管理平台,在搭建openstack,zstack等開源虛擬化平台過程中還是遇到了很多問題,結合日常工作機緣巧合讓我遇到了jimv,值得推薦給大家,為日常工作解決了很大一部分問題。推薦的原因很多,一鍵式快速安裝,自定義映象模板,擴容 快...

kvm虛擬化儲存管理

kvm 的儲存虛擬化是通過儲存池 storage pool 和卷 volume 來管理的。storage pool 是宿主機上可以看到的一片儲存空間,可以是多種型 volume 是在 storage pool 中劃分出的一塊空間,宿主機將 volume 分配給虛擬機器,volume 在虛擬機器中看到...