libvirt qemu添加新類型磁盤格式

目錄

前言? ? ?

1 qemu部分

1.1 磁盤格式驅動創建

1.2 json文件創建數據結構對象:

2 libvirt部分:

2.1 對應關系設置

2.2參設向指令格式轉換


前言? ? ?

qemu中有很多虛擬機磁盤格式,比如較為熟悉的qcow2luksraw等。每種磁盤有各自的數據組織模式以及相應實現的獨特功能,比如qcow2虛擬磁盤個格式可以實現快照功能,luks實現的是對數據的加密功能。這些獨特功能是對應數據管理與存儲模式的外在表現,換言之為了實現相應獨特功能,需要合理設置一種數據管理存儲模式,并把這種模式加入到qemu的磁盤格式驅動中。

1 qemu部分

1.1 磁盤格式驅動創建

raw磁盤格式例來說明一個磁盤格式注冊模板:

??????? 首先需要初始化類型為BlockDriver類型的對象,在raw磁盤格式中初始化name為“raw“,如果是自定義的則初始化為自定義的磁盤格式名字即可。初始化的對象包含了該磁盤格式所有操作調用函數,比如打開操作(bdrv_open)寫入操作(bdrv_co_pwritev)等,磁盤操作函數的具體邏輯依據具體的數據管理模式而定。

???????? 完成對BlockDriver類型對象初始化后,通過bdrv_register注冊到全局變量bdrv_drivers中,該變量是BlockDriver類型的列表。

1.2 json文件創建數據結構對象

1:?block-core.json文件中添加用到的數據結構,以raw類型舉例:

2:然后把該數據類型插入BlockdevOptions

3:把該對應的驅動名稱添加到BlockdevDriver

2 libvirt部分:

2.1 對應關系設置

libvirt的解析代碼邏輯中,首先我們需要創建磁盤類型字符串與enum之間的對應關系,目的是通過字符串解析找到回應的enum序號,進而做相應的switch處理。

2.2參設向指令格式轉換

libvirt需要根據對應的enum需要把字符串轉化為props對象,進而用來創建qemu-kvm啟動指令,比如這里的VIR_STORAGE_FILE_RAW通過qemuBlockStorageSourceGetFormatRawProps函數把字符串轉化為相應的qemu-kvm指令格式。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44692.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言文件操作技術詳解

C語言提供了一套強大的文件操作API,允許開發者進行文件讀寫、訪問和管理。本文將深入探討C語言文件操作的背后的技術,包括基本文件操作、文件讀寫以及文件權限和屬性。我們將通過詳細的解釋和實用的代碼案例來展示如何有效地使用這些技術。 第一部分&am…

C++ //練習 14.52 在下面的加法表達式中分別選用了哪個operator+?列出候選函數、可行函數及為每個可行函數的實參執行的類型轉換:

C Primer(第5版) 練習 14.52 練習 14.52 在下面的加法表達式中分別選用了哪個operator?列出候選函數、可行函數及為每個可行函數的實參執行的類型轉換: struct LongDouble{//用于演示的成員opeartor;在通常情況下是個…

自動駕駛技術的原理

自動駕駛汽車利用視覺識別功能來感知周圍環境并做出駕駛決策。以下是自動駕駛汽車如何利用視覺識別功能及其原理的詳細說明: ### 視覺識別在自動駕駛中的應用 1. **目標檢測(Object Detection)**:識別并定位道路上的其他車輛、行人…

【安全設備】EDR

一、什么是EDR EDR即集檢測、防御、運維功能于一體的主機安全及管理系統。EDR是一款集成了豐富的系統加固與防護、網絡加固與防護等功能的主機安全產品。 二、EDR的部署模式 EDR(Endpoint Detection and Response,端點檢測和響應)的部署方…

開源項目編譯harbor arm架構的包 —— 筑夢之路

GitHub - amy5200/harbor-arm64 先做個記錄,空了再驗證

矩陣分解及其在機器學習中的應用

陣分解是一種廣泛應用于數據挖掘和機器學習領域的技術,它通過將一個高維數據集分解為多個低維的數據集,以降低數據的復雜性、提高計算效率,并發現數據中的隱含結構。本文將詳細介紹矩陣分解的基本概念、主要方法及其在機器學習中的應用。 一、…

JWT總結

JWT(JSON Web Tokens)是一種用于在雙方之間安全傳輸信息的簡潔的、URL安全的令牌標準。以下是關于JWT的結構、作用、優點以及可能出現的問題的詳細解答: 一、JWT的結構 JWT的結構由三個部分組成,它們通過.(點&#x…

fastadmin框架后臺列表固定第一行列表固定頭部

在列表中,如果列表字段很多,并且每頁數量很多,往下拉的時候就不好辨別數據是哪個字段的,對用戶造成不好的瀏覽體驗。 通過以下方法,可以實現將列表的第一行,也就是頭部,固定在第一行顯示&#…

TLS與SSL的區別

目錄 一、協議版本二、安全性三、性能四、兼容性五、總結 TLS(Transport Layer Security)和SSL(Secure Sockets Layer)都是為了保障互聯網通信安全而設計的協議,主要用于加密客戶端與服務器之間的數據傳輸。盡管它們的…

14-62 劍和詩人36 - 混合專家 (MoE) 擴展 AI 視野

了解混合專家 (MoE) 混合專家 (MoE) 是一種機器學習技術,它將多個“專家”神經網絡模型組合成一個更大的模型。MoE 的目標是通過組合專業專家(每個專家專注于不同的子領域)來提高 AI 系統的準確性和能力。 MoE 模型的一些關鍵特征&#xff1…

探索Kotlin:從K1到K2

人不走空 🌈個人主頁:人不走空 💖系列專欄:算法專題 ?詩詞歌賦:斯是陋室,惟吾德馨 嘿,小伙伴們!今天我們來聊聊Kotlin,這個在安卓開發圈里越來越火的編程語言。…

蘋果手機抹機(馬來西亞)操作步驟

蘋果手機抹機(馬來西亞)操作步驟 操作環境操作步驟 操作環境 蘋果6s,沒有插卡,就連接上了一個wifi 操作步驟

XML Schema 雜項數據類型

XML Schema 雜項數據類型 XML Schema 提供了多種數據類型,用于定義 XML 文檔中元素和屬性的結構和內容。除了常見的簡單類型(如字符串、整數、日期等)和復雜類型(如元素和屬性的組合)之外,XML Schema 還包括一些雜項數據類型,用于處理特定的數據格式和驗證需求。本文將…

錯位情緣懸疑升級

?🔥【錯位情緣,懸疑升級!關芝芝與黃牡丹的驚世婚約】🔥?在這個迷霧重重的劇場,一場前所未有的錯位大戲正悄然上演!👀 你沒看錯,昔日兄弟的前女友關芝芝,竟搖身一變成了…

Unity-Invoke帶參數的代碼一個

Unity的分幀加載,其實沒多難,只要理解了原理 而Unity的延遲有兩種寫法, 一是, StartCoroutinue 二是, Invoke() 我記得之前,有一種Action Delay的寫法(找到在補上) 三現在更多的應該是, async task 等 其實原理都是一樣的(雖然底層邏輯不一樣,完全不一樣,但…

API 類別 - 選擇器

API 類別 - 選擇器 選擇器 API 是一種常用的接口,它允許開發人員通過特定的標準從一組數據中選擇特定的項目。這類 API 廣泛應用于各種編程場景,特別是在需要從大量數據中快速準確地提取信息時。本文將探討選擇器 API 的概念、應用場景、工作原理以及如何在實際項目中有效使…

FastAPI 學習之路(三十七)元數據和文檔 URL

實現前的效果 那么如何實現呢,第一種方式如下: from routers.items import item_router from routers.users import user_router""" 自定義FastApi應用中的元數據配置Title:在 OpenAPI 和自動 API 文檔用戶界面中作為 API 的…

【SGX系列教程】(五)enclave多線程測試,以及EPC內存測試

文章目錄 一. 概述二. 原理分析2.1 多線程在Enclave中的實現流程2.2 多線程和EPC內存分配之間的沖突2.3 解決多線程和EPC內存分配沖突的策略 三. 源碼分析3.1 代碼結構3.2 源碼3.2.1 App文件夾3.2.2 Enclave文件夾3.2.3 Makefile 3.3 總結 四.感謝支持 一. 概述 在Intel SGX環境…

Go語言特點

Go語言主要具有以下特點和優勢: 1. **高效的性能**:Go語言的性能與Java或C相似,通常比Python快30倍。 2. **并發性**:Go語言致力于簡化編程,其創新之處在于goroutines和通道,提供了輕量級的線程和gorouti…

從零開始學習嵌入式----C語言框架梳理與后期規劃

目錄 一、環境搭建. 二、見解 三、C語言框架梳理 四、嵌入式學習規劃流程圖(學習順序可能有變) 一、環境搭建. C語言是一門編程語言,在學習的時候要準備好環境。我個人比較喜歡用VS,具體怎么安裝請百度。學習C語言的時候,切忌…