最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[QEMU]磁盤映像

2022-07-19 09:57 作者:-小白之家-  | 我要投稿

QEMU 支持多種磁盤映像格式,包括可增長的磁盤映像(其大小隨著非空扇區(qū)的寫入而增加)、壓縮和加密的磁盤映像。


創(chuàng)建磁盤映像的快速入門

您可以使用以下命令創(chuàng)建磁盤映像:

qemu-img create myimage.img mysize

其中 myimage.img 是磁盤映像文件名,mysize 是其大小(以千字節(jié)為單位)。您可以添加一個后綴以提供大?。ㄒ?MB 為單位)和一個后綴來表示 GB。MG

有關(guān)詳細(xì)信息,請參閱調(diào)用文檔。qemu-img


快照模式

如果使用該選項,則所有磁盤映像都被視為只讀。寫入扇區(qū)時,它們將寫入 在 中創(chuàng)建的臨時文件中。但是,您可以使用監(jiān)視命令(或串行控制臺中的 C-a s)強(qiáng)制寫回原始磁盤映像。-snapshot/tmpcommit


虛擬機(jī)快照

VM 快照是整個虛擬機(jī)的快照,包括 CPU 狀態(tài)、RAM、設(shè)備狀態(tài)和所有可寫磁盤的內(nèi)容。要使用 VM 快照,必須至少有一個使用磁盤映像格式的不可移動和可寫塊設(shè)備。通常,此設(shè)備是第一個虛擬硬盤驅(qū)動器。qcow2

使用 monitor 命令創(chuàng)建新的 VM 快照或替換現(xiàn)有快照。除了每個快照的數(shù)字 ID 之外,還可以為其分配一個人類可讀的名稱。savevm

用于還原 VM 快照和刪除 VM 快照。 列出了可用的快照及其相關(guān)信息:loadvmdelvminfo?snapshots

(qemu) info snapshotsSnapshot devices: hdaSnapshot list (from hda):ID ? ? ? ?TAG ? ? ? ? ? ? ? ? VM SIZE ? ? ? ? ? ? ? ?DATE ? ? ? VM CLOCK1 ? ? ? ? start ? ? ? ? ? ? ? ? ? 41M 2006-08-06 12:38:02 ? 00:00:14.9542 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 40M 2006-08-06 12:43:29 ? 00:00:18.6333 ? ? ? ? msys ? ? ? ? ? ? ? ? ? ?40M 2006-08-06 12:44:04 ? 00:00:23.514

VM 快照由 VM 狀態(tài)信息(其大小顯示在 中)和每個可寫磁盤映像的快照組成。VM 狀態(tài)信息存儲在第一個不可移動和可寫塊設(shè)備中。磁盤映像快照存儲在每個磁盤映像中。磁盤映像中快照的大小很難評估,也不會顯示,因為關(guān)聯(lián)的磁盤扇區(qū)在所有快照之間共享以節(jié)省磁盤空間(否則每個快照都需要所有磁盤映像的完整副本)。info?snapshotsqcow2info?snapshots

使用(不相關(guān))選項(快照模式)時,始終可以制作 VM 快照,但一旦退出 QEMU,它們就會被刪除。-snapshot

VM 快照當(dāng)前具有以下已知限制:

  • 如果在快照完成后刪除或插入可移動設(shè)備,則它們無法應(yīng)對這些設(shè)備。

  • 一些設(shè)備驅(qū)動程序仍然具有不完整的快照支持,因此無法正確保存或還原其狀態(tài)(尤其是 USB)。

磁盤映像文件格式

QEMU 支持許多映像文件格式,這些格式可以與 VM 以及任何工具(如 )一起使用。這包括首選格式 raw 和 qcow2,以及支持與較舊的 QEMU 版本或其他虛擬機(jī)管理程序兼容的格式。qemu-img

根據(jù)圖像格式,可以將不同的選項傳遞給該選項并使用該選項。本節(jié)介紹每種格式及其支持的選項。qemu-img?createqemu-img?convert-o

  • raw

  • 原始磁盤映像格式。這種格式的優(yōu)點是簡單且易于導(dǎo)出到所有其他模擬器。如果您的文件系統(tǒng)支持漏洞(例如,在 Linux 上的 ext2 或 ext3 中,或在 Windows 上的 NTFS 中),則只有寫入的扇區(qū)會保留空間。用于了解映像或 Unix/Linux 上使用的實際大小。qemu-img?infols?-ls

    支持的選項:

    • preallocation

    • 預(yù)分配模式(允許的值:、 、 )。 模式通過調(diào)用 來預(yù)分配映像空間。 模式通過將數(shù)據(jù)寫入基礎(chǔ)存儲來預(yù)分配圖像空間。此數(shù)據(jù)可能為零,也可能不為零,具體取決于存儲位置。offfallocfullfallocposix_fallocate()full

  • qcow2

  • QEMU圖像格式,最通用的格式。使用它來獲得較小的映像(如果您的文件系統(tǒng)不支持孔,例如在Windows上),基于zlib的壓縮和支持多個VM快照,則很有用。

    支持的選項:

    • 通過使用nodatacow掛載來禁用它,然后所有新創(chuàng)建的文件都將是NOCOW。

    • 對于空文件,請?zhí)砑?NOCOW 文件屬性。這就是此選項的作用。

    • nocow

    • 如果此選項設(shè)置為 ,將關(guān)閉文件的 COW。它僅在 btrfs 上有效,對其他文件系統(tǒng)沒有影響。on

      托管 VM 映像文件時,Btrfs 的性能較低,當(dāng) VM 上的來賓也使用 btrfs 作為文件系統(tǒng)時,性能會更低。關(guān)閉 COW 是緩解這種不良性能的一種方法。通常有兩種方法可以在 btrfs 上關(guān)閉 COW:

      注意:此選項僅對新文件或空文件有效。如果存在 COW 且已具有數(shù)據(jù)塊的現(xiàn)有文件,則無法通過設(shè)置 將其更改為 NOCOW。可以發(fā)出檢查NOCOW標(biāo)志是否設(shè)置(大寫字母“C”是NOCOW標(biāo)志)。nocow=onlsattr?filename

    • lazy_refcounts

    • 如果此選項設(shè)置為 ,則會推遲引用計數(shù)更新,以避免元數(shù)據(jù) I/O 并提高性能。這特別有趣,因為它不會批量更新元數(shù)據(jù)。權(quán)衡是,在主機(jī)崩潰后,必須重建參考計數(shù)表,即在下一次打開時需要一個(自動),這可能需要一些時間。oncache=writethroughqemu-img?check?-r?all

      僅當(dāng)指定了 此選項時,才能啟用此選項。compat=1.1

    • preallocation

    • 預(yù)分配模式(允許的值:、、、)。具有預(yù)分配元數(shù)據(jù)的映像最初較大,但當(dāng)映像需要增長時,可以提高性能。 和預(yù)分配類似于相同的格式選項,但也設(shè)置了元數(shù)據(jù)。offmetadatafallocfullfallocfullraw

    • cluster_size

    • 更改 qcow2 群集大?。ū仨毥橛?512 和 2M 之間)。較小的簇大小可以改善圖像文件大小,而較大的簇大小通??梢蕴峁└玫男阅?。

    • encrypt.iter-time

    • 每個密鑰槽用于 PBKDF 算法的時間量(以毫秒為單位)。缺省值為 。僅在 以下情況下使用。2000encrypt.format=luks

    • encrypt.hash-alg

    • 用于 PBKDF 算法的哈希算法的名稱 默認(rèn)為 。僅在 以下情況下使用。sha256encrypt.format=luks

    • encrypt.ivgen-hash-alg

    • 要與初始化向量生成器一起使用的哈希算法的名稱(如果需要)。缺省值為 。僅在 以下情況下使用。sha256encrypt.format=luks

    • encrypt.ivgen-alg

    • 初始化向量生成器算法的名稱。當(dāng)前默認(rèn)為 。僅在 以下情況下使用。plain64encrypt.format=luks

    • encrypt.cipher-mode

    • 要使用的加密模式的名稱。當(dāng)前默認(rèn)為 。僅在 以下情況下使用。xtsencrypt.format=luks

    • encrypt.cipher-alg

    • 密碼算法的名稱和密鑰長度。當(dāng)前默認(rèn)為 。僅在 以下情況下使用。aes-256encrypt.format=luks

    • encrypt.key-secret

    • 提供包含通行短語 () 或加密密鑰 () 的對象的 ID。secretencrypt.format=luksencrypt.format=aes

    • AES-CBC 密碼與基于扇區(qū)號的可預(yù)測初始化向量一起使用。這使得它容易受到選定的明文攻擊,這些攻擊可以揭示加密數(shù)據(jù)的存在。

    • 用戶密碼直接用作加密密鑰。選擇不當(dāng)或密碼短語較短將損害加密的安全性。

    • 如果密碼被泄露,則無法更改密碼以保護(hù)任何qcow圖像中的數(shù)據(jù)。必須使用新文件中的不同加密密碼來克隆文件。然后必須使用像shred這樣的程序安全地擦除原始文件,盡管即使這在許多現(xiàn)代存儲技術(shù)中也是無效的。

    • encrypt.format

    • 如果將其設(shè)置為 ,則請求使用 LUKS 格式對 qcow2 有效負(fù)載(不是 qcow2 標(biāo)頭)進(jìn)行加密。用于解鎖 LUKS 密鑰槽的密碼由參數(shù)給出。LUKS 加密參數(shù)可以使用其他參數(shù)進(jìn)行調(diào)整。luksencrypt.key-secretencrypt.*

      如果設(shè)置為 ,則使用 128 位 AES-CBC 對映像進(jìn)行加密。加密密鑰由參數(shù)給出。這種加密格式被認(rèn)為是現(xiàn)代密碼學(xué)標(biāo)準(zhǔn)的缺陷,存在許多設(shè)計問題:aesencrypt.key-secret

      系統(tǒng)仿真器不再支持使用此選項。支持僅保留在命令行實用程序中,用于數(shù)據(jù)解放和與舊版QEMU的互操作性。應(yīng)改用該格式。luks

    • encryption

    • 此選項已棄用,等效于encrypt.format=aes

    • backing_fmt

    • 基礎(chǔ)映像的圖像格式

    • backing_file

    • 基本映像的文件名(請參見子命令)create

    • compat

    • 確定要使用的 qcow2 版本。 使用傳統(tǒng)的圖像格式,自0.10以來,任何QEMU都可以讀取。 啟用只有 QEMU 1.1 及更高版本才能理解的圖像格式擴(kuò)展(這是默認(rèn)設(shè)置)。其中包括零集群,這允許對稀疏圖像進(jìn)行高效的讀取復(fù)制。compat=0.10compat=1.1

      • qed

      • 支持支持支持文件和壓縮映像文件的舊 QEMU 映像格式(當(dāng)您的文件系統(tǒng)或傳輸介質(zhì)不支持孔時)。

        將 QED 圖像轉(zhuǎn)換為 qcow2 時,您可能需要考慮使用該選項來獲得更類似于 QED 的行為。lazy_refcounts=on

        支持的選項:

        • table_size

        • 更改每個 L1/L2 表的簇數(shù)(必須為 1 到 16 之間的 2 次冪)。通常不需要更改此值,但此選項可以在用于性能基準(zhǔn)測試之間進(jìn)行更改。

        • cluster_size

        • 更改簇大?。ū仨氃?4K 和 64K 之間為 2 的冪)。較小的簇大小可以改善圖像文件大小,而較大的簇大小通??梢蕴峁└玫男阅堋?/p>

        • backing_fmt

        • 支持文件的圖像文件格式(可選)。如果由于格式?jīng)]有標(biāo)頭而無法自動檢測,則非常有用,就像某些 vhd/vpc 文件一樣。

        • backing_file

        • 基本映像的文件名(請參見子命令)。create

      • qcow

      • 舊的QEMU映像格式,支持支持備份文件,壓縮映像文件,加密和壓縮。

        支持的選項:

        • encrypt.key-secret

        • 提供包含加密密鑰 () 的對象的 ID。secretencrypt.format=aes

        • encrypt.format

        • 如果設(shè)置為 ,則使用 128 位 AES-CBC 對映像進(jìn)行加密。加密密鑰由參數(shù)給出。這種加密格式被認(rèn)為是現(xiàn)代密碼學(xué)標(biāo)準(zhǔn)的缺陷,遭受了以前針對圖像格式列舉的許多設(shè)計問題。aesencrypt.key-secretqcow2

          系統(tǒng)仿真器不再支持使用此選項。支持僅保留在命令行實用程序中,用于數(shù)據(jù)解放和與舊版QEMU的互操作性。

          需要本機(jī)加密的用戶應(yīng)將格式改為使用 。qcow2encrypt.format=luks

        • encryption

        • 此選項已棄用,等效于encrypt.format=aes

        • backing_file

        • 基本映像的文件名(請參見子命令)create

      • luks

      • LUKS v1 加密格式,與 Linux dm-crypt/cryptsetup 兼容

        支持的選項:

        • iter-time

        • 每個密鑰槽用于 PBKDF 算法的時間量(以毫秒為單位)。缺省值為 。2000

        • hash-alg

        • 用于 PBKDF 算法的哈希算法的名稱 默認(rèn)為 。sha256

        • ivgen-hash-alg

        • 要與初始化向量生成器一起使用的哈希算法的名稱(如果需要)。缺省值為 。sha256

        • ivgen-alg

        • 初始化向量生成器算法的名稱。當(dāng)前默認(rèn)為 。plain64

        • cipher-mode

        • 要使用的加密模式的名稱。當(dāng)前默認(rèn)為 。xts

        • cipher-alg

        • 密碼算法的名稱和密鑰長度。當(dāng)前默認(rèn)為 。aes-256

        • key-secret

        • 提供包含通行短語的對象的 ID。secret

        • vdi

        • VirtualBox 1.1 兼容映像格式。

          支持的選項:

          • static

          • 如果此選項設(shè)置為 ,則使用元數(shù)據(jù)預(yù)分配創(chuàng)建映像。on

        • vmdk

        • VMware 3 和 4 兼容的映像格式。

          支持的選項:

          • subformat

          • 指定要使用的 VMDK 子格式。有效選項包括(默認(rèn))、、和 。monolithicSparsemonolithicFlattwoGbMaxExtentSparsetwoGbMaxExtentFlatstreamOptimized

          • hwversion

          • 指定 vmdk 虛擬硬件版本。如果指定了 hwversion,則無法啟用 Compat6 標(biāo)志。

          • compat6

          • 創(chuàng)建 VMDK 版本 6 映像(而不是版本 4)

          • backing_file

          • 基本映像的文件名(請參見子命令)。create

        • vpc

        • 與虛擬 PC 兼容的映像格式 (VHD)。

          支持的選項:

          • subformat

          • 指定要使用的 VHD 子格式。有效選項為(默認(rèn))和 。dynamicfixed

        • VHDX

        • Hyper-V 兼容映像格式 (VHDX)。

          支持的選項:

          • block_state_zero

          • 強(qiáng)制使用類型為“零”的有效載荷塊??梢栽O(shè)置為(默認(rèn))或 。當(dāng)設(shè)置為 時,新塊將被創(chuàng)建為 ,這意味著解析器可以自由地為這些塊返回任意數(shù)據(jù)。與 一起使用時,請勿設(shè)置為 。onoffoffPAYLOAD_BLOCK_NOT_PRESENToffqemu-img?convertsubformat=dynamic

          • block_size

          • 塊大小;最小 1 MB,最大 256 MB。0 表示根據(jù)圖像大小自動計算。

          • log_size

          • 日志大小;最小 1 MB。

          • subformat

          • 指定要使用的 VHDX 子格式。有效選項為(默認(rèn))和 。dynamicfixed

        只讀格式

        只讀模式下支持更多磁盤映像文件格式。

        • bochs

        • 波克斯圖像類型。growing

        • cloop

        • Linux 壓縮循環(huán)映像,僅用于重用直接壓縮的 CD-ROM 映像,例如在 Knoppix CD-ROM 中存在。

        • dmg

        • 蘋果磁盤映像。

        • parallels

        • 并行磁盤映像格式。

        使用主機(jī)驅(qū)動器

        除了磁盤映像文件,QEMU 還可以直接訪問主機(jī)設(shè)備。我們在這里描述QEMU版本>= 0.8.3的用法。

        Linux

        在 Linux 上,您可以直接使用主機(jī)設(shè)備文件名,而不是磁盤映像文件名,前提是您有足夠的權(quán)限訪問它。例如,用于訪問 CDROM。/dev/cdrom

        • 光盤

        • 即使未加載 CDROM,也可以指定 CDROM 設(shè)備。QEMU具有特定的代碼來檢測CDROM的插入或拔出。支持客戶機(jī)操作系統(tǒng)彈出 CDROM。目前僅支持?jǐn)?shù)據(jù) CD。

        • 軟盤

        • 即使未加載軟盤,也可以指定軟盤設(shè)備。當(dāng)前未準(zhǔn)確檢測到軟盤移除(如果在未加載軟盤時未執(zhí)行軟盤訪問的情況下更改軟盤,則客戶機(jī)操作系統(tǒng)將認(rèn)為加載了相同的軟盤)。不推薦使用主機(jī)的軟盤設(shè)備,在將來的版本中將刪除對它的支持。

        • 硬盤

        • 可以使用硬盤。通常,必須指定整個磁盤(而不是 ),以便來賓操作系統(tǒng)可以將其視為分區(qū)磁盤。警告:除非您知道自己在做什么,否則最好只對硬盤進(jìn)行只讀訪問,否則可能會損壞主機(jī)數(shù)據(jù)(使用命令行選項或相應(yīng)地修改設(shè)備權(quán)限)。/dev/hdb/dev/hdb1-snapshot

        窗戶

        • 光盤

        • 首選語法是驅(qū)動器號(例如 )。支持備用語法。 支持作為第一個 CDROM 驅(qū)動器的別名。d:\\.\d:/dev/cdrom

          目前沒有特定的代碼來處理可移動介質(zhì),因此最好使用 或 監(jiān)視 命令來更改或彈出介質(zhì)。changeeject

        • 硬盤

        • 硬盤可以與以下語法一起使用:其中?N?是驅(qū)動器號(0 是第一個硬盤)。\\.\PhysicalDriveN

          警告:除非您知道自己在做什么,否則最好只對硬盤進(jìn)行只讀訪問,否則可能會損壞主機(jī)數(shù)據(jù)(使用命令行,以便將修改寫入臨時文件)。-snapshot

        Mac OS X

        /dev/cdrom是第一個 CDROM 的別名。

        目前沒有特定的代碼來處理可移動介質(zhì),因此最好使用 或 監(jiān)視 命令來更改或彈出介質(zhì)。changeeject

        虛擬 FAT 磁盤映像

        QEMU 可以從目錄樹自動創(chuàng)建虛擬 FAT 磁盤映像。要使用它,只需鍵入:

        qemu-system-x86_64 linux.img -hdb fat:/my_directory

        然后,您可以訪問目錄中的所有文件,而無需將它們復(fù)制到磁盤映像中或通過 SAMBA 或 NFS 導(dǎo)出它們。默認(rèn)訪問是只讀的。/my_directory

        軟盤可以通過以下選項進(jìn)行模擬::floppy:

        qemu-system-x86_64 linux.img -fda fat:floppy:/my_directory

        讀/寫支持可用于測試(beta 階段),具有以下選項::rw:

        qemu-system-x86_64 linux.img -fda fat:floppy:rw:/my_directory

        你永遠(yuǎn)不應(yīng)該做什么:

        • 使用非 ASCII 文件名

        • 將“-snapshot”與“:rw:”一起使用

        • 期望它在加載vm'ing時工作

        • 寫入主機(jī)系統(tǒng)上的 FAT 目錄,同時使用客戶機(jī)系統(tǒng)訪問該目錄

        NBD 訪問

        QEMU 可以直接訪問使用網(wǎng)絡(luò)塊設(shè)備協(xié)議導(dǎo)出的塊設(shè)備。

        qemu-system-x86_64 linux.img -hdb nbd://my_nbd_server.mydomain.org:1024/

        如果 NBD 服務(wù)器位于同一主機(jī)上,則可以使用 unix 套接字而不是 inet 套接字:

        qemu-system-x86_64 linux.img -hdb nbd+unix://?socket=/tmp/my_socket

        在這種情況下,必須使用以下命令導(dǎo)出塊設(shè)備:qemu-nbd

        qemu-nbd --socket=/tmp/my_socket my_disk.qcow2

        使用 允許在多個來賓之間共享磁盤:qemu-nbd

        qemu-nbd --socket=/tmp/my_socket --share=2 my_disk.qcow2

        然后,您可以將其與兩個來賓一起使用:

        qemu-system-x86_64 linux1.img -hdb nbd+unix://?socket=/tmp/my_socket qemu-system-x86_64 linux2.img -hdb nbd+unix://?socket=/tmp/my_socket

        如果使用命名導(dǎo)出(自 NBD 2.9.18 起受支持,或者使用 QEMU 自己的嵌入式 NBD 服務(wù)器),則必須在 URI 中指定導(dǎo)出名稱:nbd-server

        qemu-system-x86_64 -cdrom nbd://localhost/debian-500-ppc-netinst qemu-system-x86_64 -cdrom nbd://localhost/openSUSE-11.1-ppc-netinst

        自 QEMU 1.3 起,NBD 的 URI 語法一直受支持。還提供了另一種語法。以下是舊語法的一些示例:

        qemu-system-x86_64 linux.img -hdb nbd:my_nbd_server.mydomain.org:1024 qemu-system-x86_64 linux2.img -hdb nbd:unix:/tmp/my_socket qemu-system-x86_64 -cdrom nbd:localhost:10809:exportname=debian-500-ppc-netinst

        iSCSI LUN

        iSCSI 是一種流行的協(xié)議,用于通過計算機(jī)網(wǎng)絡(luò)訪問 SCSI 設(shè)備。

        QEMU 可以使用兩種不同的方式使用 iSCSI 設(shè)備。

        第一種方法是在主機(jī)上裝載 iSCSI LUN,并使其與主機(jī)上的任何其他普通 SCSI 設(shè)備一樣顯示,然后從 QEMU 以 /dev/sd 設(shè)備的形式訪問此設(shè)備。如何執(zhí)行此操作因主機(jī)操作系統(tǒng)而異。

        第二種方法涉及使用內(nèi)置于 QEMU 中的 iSCSI 發(fā)起程序。這提供了一種機(jī)制,無論您在哪個主機(jī)操作系統(tǒng)上運(yùn)行 QEMU,其工作方式都相同。本節(jié)將介紹將 iSCSI 與 QEMU 一起使用的第二種方法。

        在 QEMU 中,iSCSI 設(shè)備使用特殊的 iSCSI URL 進(jìn)行描述。網(wǎng)址語法:

        iscsi://[<username>[%<password>]@]<host>[:<port>]/<target-iqn-name>/<lun>

        用戶名和密碼是可選的,僅當(dāng)使用 CHAP 身份驗證進(jìn)行訪問控制設(shè)置目標(biāo)時,才使用用戶名和密碼?;蛘撸部梢酝ㄟ^環(huán)境變量設(shè)置用戶名和密碼,使其不顯示在進(jìn)程列表中:

        export LIBISCSI_CHAP_USERNAME=<username>export LIBISCSI_CHAP_PASSWORD=<password>iscsi://<host>/<target-iqn-name>/<lun>

        可以通過特殊選項設(shè)置各種與會話相關(guān)的參數(shù),這些參數(shù)可以在通過“-readconfig”提供的配置文件中設(shè)置,也可以直接在命令行上設(shè)置。

        如果未指定啟動器名稱,qemu 將使用默認(rèn)名稱 'iqn.2008-11.org.linux-kvm[:<uuid>'],其中 <uuid> 是虛擬機(jī)的 UUID。如果未指定 UUID,qemu 將使用 'iqn.2008-11.org.linux-kvm[:<name>'],其中 <name> 是虛擬機(jī)的名稱。

        設(shè)置登錄到目標(biāo)時要使用的特定啟動器名稱:

        -iscsi initiator-name=iqn.qemu.test:my-initiator

        控制要與目標(biāo)協(xié)商的標(biāo)頭摘要類型:

        -iscsi header-digest=CRC32C|CRC32C-NONE|NONE-CRC32C|NONE

        這些也可以通過配置文件進(jìn)行設(shè)置:

        [iscsi] ?user = "CHAP username" ?password = "CHAP password" ?initiator-name = "iqn.qemu.test:my-initiator" ?# header digest is one of CRC32C|CRC32C-NONE|NONE-CRC32C|NONE ?header-digest = "CRC32C"

        設(shè)置目標(biāo)名稱允許對不同的目標(biāo)使用不同的選項:

        [iscsi "iqn.target.name"] ?user = "CHAP username" ?password = "CHAP password" ?initiator-name = "iqn.qemu.test:my-initiator" ?# header digest is one of CRC32C|CRC32C-NONE|NONE-CRC32C|NONE ?header-digest = "CRC32C"

        如何使用配置文件設(shè)置 iSCSI 配置選項:

        cat >iscsi.conf <<EOF [iscsi] ?user = "me" ?password = "my password" ?initiator-name = "iqn.qemu.test:my-initiator" ?header-digest = "CRC32C" EOF qemu-system-x86_64 -drive file=iscsi://127.0.0.1/iqn.qemu.test/1 \ ?-readconfig iscsi.conf

        如何在環(huán)回上設(shè)置一個簡單的 iSCSI 目標(biāo)并通過 QEMU 訪問它:此示例演示如何使用 Linux STGT 軟件目標(biāo)設(shè)置具有一個 CDROM 和一個磁盤的 iSCSI 目標(biāo)。此目標(biāo)在基于紅帽的系統(tǒng)上作為包“scsi-target-utils”可用。

        tgtd --iscsi portal=127.0.0.1:3260 tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.qemu.test tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 \ ? ?-b /IMAGES/disk.img --device-type=disk tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 2 \ ? ?-b /IMAGES/cd.iso --device-type=cd tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL qemu-system-x86_64 -iscsi initiator-name=iqn.qemu.test:my-initiator \ ?-boot d -drive file=iscsi://127.0.0.1/iqn.qemu.test/1 \ ?-cdrom iscsi://127.0.0.1/iqn.qemu.test/2

        GlusterFS 磁盤映像

        GlusterFS是一個用戶空間分布式文件系統(tǒng)。

        您可以使用以下命令從 GlusterFS 磁盤映像引導(dǎo):

        尿道里:

        qemu-system-x86_64 -drive file=gluster[+TYPE]://[HOST}[:PORT]]/VOLUME/PATH ? ? ? ? ? ? ? ? ? ? ? ? ? ? [?socket=...][,file.debug=9][,file.logfile=...]

        JSON:

        qemu-system-x86_64 'json:{"driver":"qcow2", ? ? ? ? ? ? ? ? ? ? ? ? "file":{"driver":"gluster", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"volume":"testvol","path":"a.img","debug":9,"logfile":"...", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"server":[{"type":"tcp","host":"...","port":"..."}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"type":"unix","socket":"..."}]}}'

        膠酯是協(xié)議。

        TYPE?指定用于連接到 gluster 管理守護(hù)程序 (glusterd) 的傳輸類型。有效的傳輸類型是 tcp 和 unix。在 URI 形式中,如果未指定傳輸類型,則假定 tcp 類型。

        HOST?指定給定卷的卷文件規(guī)范所在的服務(wù)器。這可以是主機(jī)名或 ipv4 地址。如果傳輸類型為 unix,則不應(yīng)指定?HOST?字段。相反,套接字字段需要填充unix域套接字的路徑。

        PORT?是 glusterd 正在偵聽的端口號。這是可選的,如果未指定,則默認(rèn)為端口 24007。如果傳輸類型為 unix,則不應(yīng)指定?PORT。

        VOLUME?是包含磁盤映像的 gluster 卷的名稱。

        PATH?是駐留在 gluster 卷上的實際磁盤映像的路徑。

        debug?是 gluster 協(xié)議驅(qū)動程序的日志記錄級別。調(diào)試級別為 0-9,其中 9 是最詳細(xì)的,0 表示無調(diào)試輸出。默認(rèn)級別為 4。Gluster 源中定義的當(dāng)前日志記錄級別為 0 - 無、1 - 緊急、2 - 警報、3 - 嚴(yán)重、4 - 錯誤、5 - 警告、6 - 通知、7 - 信息、8 - 調(diào)試、9 - 跟蹤

        logfile是一個命令行選項,用于提及日志文件路徑,這有助于記錄到指定的文件,也有助于持久化gfapi日志。默認(rèn)值為 stderr。

        您可以使用以下命令創(chuàng)建 GlusterFS 磁盤映像:

        qemu-img create gluster://HOST/VOLUME/PATH SIZE

        例子

        qemu-system-x86_64 -drive file=gluster://1.2.3.4/testvol/a.img qemu-system-x86_64 -drive file=gluster+tcp://1.2.3.4/testvol/a.img qemu-system-x86_64 -drive file=gluster+tcp://1.2.3.4:24007/testvol/dir/a.img qemu-system-x86_64 -drive file=gluster+tcp://[1:2:3:4:5:6:7:8]/testvol/dir/a.img qemu-system-x86_64 -drive file=gluster+tcp://[1:2:3:4:5:6:7:8]:24007/testvol/dir/a.img qemu-system-x86_64 -drive file=gluster+tcp://server.domain.com:24007/testvol/dir/a.img qemu-system-x86_64 -drive file=gluster+unix:///testvol/dir/a.img?socket=/tmp/glusterd.socket qemu-system-x86_64 -drive file=gluster+rdma://1.2.3.4:24007/testvol/a.img qemu-system-x86_64 -drive file=gluster://1.2.3.4/testvol/a.img,file.debug=9,file.logfile=/var/log/qemu-gluster.log qemu-system-x86_64 'json:{"driver":"qcow2", ? ? ? ? ? ? ? ? ? ? ? ? "file":{"driver":"gluster", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"volume":"testvol","path":"a.img", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"debug":9,"logfile":"/var/log/qemu-gluster.log", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"server":[{"type":"tcp","host":"1.2.3.4","port":24007}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"type":"unix","socket":"/var/run/glusterd.socket"}]}}' qemu-system-x86_64 -drive driver=qcow2,file.driver=gluster,file.volume=testvol,file.path=/path/a.img, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? file.debug=9,file.logfile=/var/log/qemu-gluster.log, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? file.server.0.type=tcp,file.server.0.host=1.2.3.4,file.server.0.port=24007, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? file.server.1.type=unix,file.server.1.socket=/var/run/glusterd.socket

        安全外殼 (ssh) 磁盤映像

        您可以使用 ssh 協(xié)議訪問位于遠(yuǎn)程 ssh 服務(wù)器上的磁盤映像:

        qemu-system-x86_64 -drive file=ssh://[USER@]SERVER[:PORT]/PATH[?host_key_check=HOST_KEY_CHECK]

        使用屬性的替代語法:

        qemu-system-x86_64 -drive file.driver=ssh[,file.user=USER],file.host=SERVER[,file.port=PORT],file.path=PATH[,file.host_key_check=HOST_KEY_CHECK]

        ssh?是協(xié)議。

        用戶是遠(yuǎn)程用戶。如果未指定,則嘗試本地用戶名。

        服務(wù)器指定遠(yuǎn)程 ssh 服務(wù)器。可以使用任何 ssh 服務(wù)器,但它必須實現(xiàn) sftp-server 協(xié)議。大多數(shù)Unix/Linux系統(tǒng)應(yīng)該在不需要任何額外配置的情況下工作。

        PORT?是 sshd 正在偵聽的端口號。默認(rèn)情況下,使用標(biāo)準(zhǔn) ssh 端口 (22)。

        PATH?是磁盤映像的路徑。

        可選的 HOST_KEY_CHECK?參數(shù)控制如何檢查遠(yuǎn)程主機(jī)的密鑰。默認(rèn)值為使用本地文件。設(shè)置此選項可關(guān)閉已知主機(jī)檢查?;蛘撸梢詸z查主機(jī)密鑰是否與特定指紋匹配。指紋可以以 、 或格式提供,但是,強(qiáng)烈建議僅使用 ,因為其他選項在現(xiàn)代標(biāo)準(zhǔn)下被認(rèn)為是不安全的。指紋值必須以十六進(jìn)制編碼字符串的形式給出:yes.ssh/known_hostsnomd5sha1sha256sha256

        host_key_check=sha256:04ce2ae89ff4295a6b9c4111640bdcb3297858ee55cb434d9dd88796e93aa795

        鍵字符串可以選擇在每對十六進(jìn)制數(shù)字之間包含“:”分隔符。

        該文件包含 base64 編碼的主機(jī)密鑰。這些可以使用以下命令轉(zhuǎn)換為QEMU所需的格式:$HOME/.ssh/known_hosts

        $ for key in `grep 10.33.8.112 known_hosts | awk '{print $3}'` ?do ? ?echo $key | base64 -d | sha256sum ?done ?6c3aa525beda9dc83eadfbd7e5ba7d976ecb59575d1633c87cd06ed2ed6e366f ?- ?12214fd9ea5b408086f98ecccd9958609bd9ac7c0ea316734006bc7818b45dc8 ?- ?d36420137bcbd101209ef70c3b15dc07362fbe0fa53c5b135eba6e6afa82f0ce ?-

        請注意,每個主機(jī)可以存在多個密鑰,每個密鑰具有不同的密鑰密碼。需要注意選擇與 QEMU 將與遠(yuǎn)程服務(wù)器協(xié)商的密碼相匹配的密鑰指紋。

        當(dāng)前,必須使用 ssh 代理完成身份驗證。將來可能會支持其他身份驗證方法。

        注: 許多 ssh 服務(wù)器不支持 -style 操作。ssh 驅(qū)動程序不能保證磁盤刷新請求得到遵守,如果遠(yuǎn)程服務(wù)器或網(wǎng)絡(luò)在寫入期間出現(xiàn)故障,這會導(dǎo)致磁盤損壞的風(fēng)險。當(dāng)不支持時,驅(qū)動程序?qū)⒋蛴【妫?code class="docutils literal notranslate">fsyncfsync

        warning: ssh server ssh.example.com:22 does not support fsync

        使用足夠新版本的libssh和OpenSSH,是受支持的。fsync

        NVMe 磁盤映像

        NVM Express (NVMe) 存儲控制器可由 QEMU 中的用戶空間驅(qū)動程序直接訪問。這繞過了主機(jī)內(nèi)核文件系統(tǒng)和塊層,同時保留了QEMU塊層功能,例如塊作業(yè),I / O限制,映像格式等。磁盤 I/O 性能通常高于使用線程池或 linux-aio。-drive?file=/dev/sda

        一旦啟動,控制器將由QEMU進(jìn)程專用。為了能夠在主機(jī)上的多個 VM 和其他應(yīng)用程序之間共享存儲,請使用基于文件的協(xié)議。

        在啟動 QEMU 之前,請將主機(jī) NVMe 控制器綁定到主機(jī) vfio-pci 驅(qū)動程序。例如:

        # modprobe vfio-pci # lspci -n -s 0000:06:0d.0 06:0d.0 0401: 1102:0002 (rev 08) # echo 0000:06:0d.0 > /sys/bus/pci/devices/0000:06:0d.0/driver/unbind # echo 1102 0002 > /sys/bus/pci/drivers/vfio-pci/new_id # qemu-system-x86_64 -drive file=nvme://HOST:BUS:SLOT.FUNC/NAMESPACE

        使用屬性的替代語法:

        qemu-system-x86_64 -drive file.driver=nvme,file.device=HOST:BUS:SLOT.FUNC,file.namespace=NAMESPACE

        主機(jī):總線:插槽。FUNC?是 NVMe 控制器在主機(jī)上的 PCI 設(shè)備地址。

        命名空間是 NVMe 命名空間編號,從 1 開始。

        磁盤映像文件鎖定

        默認(rèn)情況下,QEMU 會嘗試保護(hù)映像文件免受意外并發(fā)訪問,只要塊協(xié)議驅(qū)動程序和主機(jī)操作系統(tǒng)支持該文件即可。如果多個 QEMU 進(jìn)程(包括 QEMU 仿真器和實用程序)嘗試打開具有沖突訪問模式的同一映像,則除第一個進(jìn)程之外,其他所有進(jìn)程都將出現(xiàn)錯誤。

        此功能目前由 Linux 上的文件協(xié)議支持,具有開放文件描述符 (OFD) 鎖定 API,并且可以配置為在 POSIX 主機(jī)不支持 Linux OFD 鎖定時回退到 POSIX 鎖定。

        若要顯式啟用映像鎖定,請在文件協(xié)議驅(qū)動程序選項中指定“l(fā)ocking=on”。如果無法鎖定 OFD,則將打印警告并使用 POSIX 鎖定 API。在這種情況下,由于POSIX鎖定API的缺點,在執(zhí)行熱插拔和阻止作業(yè)時,存在鎖定將無聲丟失的風(fēng)險。

        QEMU 在共享存儲遷移期間透明地處理鎖切換。對于多個虛擬機(jī)之間的共享虛擬磁盤映像,應(yīng)使用“share-rw”設(shè)備選項。

        默認(rèn)情況下,來賓對其磁盤映像具有獨占寫入訪問權(quán)限。如果來賓可以安全地與其他寫入器共享磁盤映像,則可以使用該參數(shù)。僅當(dāng)客戶機(jī)正在運(yùn)行協(xié)調(diào)磁盤訪問以避免損壞的軟件(如群集文件系統(tǒng))時,這才是安全的。-device?...,share-rw=on

        請注意,share-rw=on 僅聲明來賓共享磁盤的能力。某些 QEMU 功能(如映像文件格式)需要對磁盤映像進(jìn)行獨占寫入訪問,這不受 share-rw=on 選項的影響。

        或者,可以通過“鎖定=關(guān)閉”塊設(shè)備選項完全禁用鎖定。在命令行中,該選項通常采用“file.locking=off”的形式,因為協(xié)議驅(qū)動程序通常作為格式驅(qū)動程序下的“file”子級放置。例如:

        -blockdev driver=qcow2,file.filename=/path/to/image,file.locking=off,file.driver=file

        要檢查映像鎖定是否處于活動狀態(tài),請檢查主機(jī)上“l(fā)slocks”命令的輸出,并查看 QEMU 進(jìn)程對映像文件是否持有鎖。QEMU 實例可以鎖定多個字節(jié),其中每個字節(jié)都反映由正在運(yùn)行的塊驅(qū)動程序獲取或保護(hù)的特定權(quán)限。

        篩選器驅(qū)動程序

        QEMU 支持多個篩選器驅(qū)動程序,這些驅(qū)動程序不存儲任何數(shù)據(jù),但執(zhí)行一些附加任務(wù),掛接 io 請求。

        • preallocate

        • 預(yù)分配篩選器驅(qū)動程序旨在插入到格式和協(xié)議節(jié)點之間,并在寫入文件末尾時預(yù)分配一些額外空間(擴(kuò)展協(xié)議文件)。這對于分配緩慢的文件系統(tǒng)非常有用。

          支持的選項:

          • prealloc-size

          • 預(yù)分配多少(以字節(jié)為單位),默認(rèn)為128M。

          • prealloc-align

          • 在預(yù)分配時,將文件長度與此值(以字節(jié)為單位)對齊,默認(rèn)值為 1M。


        [QEMU]磁盤映像的評論 (共 條)

        分享到微博請遵守國家法律
        华宁县| 贺兰县| 克东县| 新龙县| 衡水市| 新化县| 泽州县| 桂东县| 河西区| 永丰县| 贵阳市| 钟祥市| 安达市| 合山市| 德令哈市| 北宁市| 民县| 博罗县| 当雄县| 沅江市| 乌什县| 沛县| 东平县| 义马市| 吉隆县| 监利县| 浠水县| 望城县| 湛江市| 获嘉县| 隆安县| 双柏县| 嘉定区| 辉南县| 安徽省| 明光市| 梅河口市| 平阳县| 双江| 康定县| 那坡县|