欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

KVM 虛機鏡像擴容和壓縮的操作

 更新時間:2022年03月21日 15:24:54   作者:Milton  
這篇文章主要介紹了KVM 虛機鏡像操作中的擴容和壓縮問題,通過例子演示了如何將vm_n01.qcow2這個鏡像擴容到40G,給大家講解了使用RAW格式對鏡像擴容的問題,需要的朋友可以參考下

KVM鏡像操作

qemu-img命令

創(chuàng)建鏡像 qemu-img create

# 創(chuàng)建一個設備空間大小為10G的鏡像
qemu-img create -f qcow2 centos7-guest.qcow2 10G
# 基于backing_file創(chuàng)建大小為20G的鏡像, 使用-b參數(shù), -F用于指定backing_file的格式
qemu-img create -F qcow2 -b /path/to/backing-kvm.img -f qcow2 /path/to/target.qcow2 20G
# 基于backing_file創(chuàng)建大小為20G的鏡像, 使用-o參數(shù), 都在-o參數(shù)內(nèi)指定
qemu-img create -f qcow2 -o backing_file=/path/to/rhel6u3.img,backing_fmt=qcow2,size=20G /path/to/target.qcow2

關于backing_file的說明

If the option backing_file is specified, then the image will record only the differences from backing_file. No size needs to be specified in this case. backing_file will never be modified unless you use the "commit" monitor command (or qemu-img commit).

查看鏡像信息 qemu-img info

qemu-img info rhel6u3.img

轉換鏡像格式 qemu-img convert

使用-f指定源文件格式, 用-O指定目標文件格式

qemu-img convert -f raw -O qcow2 centos.img centos.qcow2
qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw

縮小鏡像實際占用的磁盤大小

在虛機中進行文件相關的操作(復制, 解壓)后, 即使刪除了文件, 虛機依然占用文件空間, 如果要減小空間占用, 可以通過如下的方式

Linux虛機端

Linux虛機端, trim a device and free all unused storage on the underlying device

fstrim -av

將未使用的空間用0填充, 因為刪除的文件依然存在, 如果不寫零, 無法回收這些空間. 這一步會將虛機預設的空間全部填充, 取決于磁盤性能, 可能會很慢

dd if=/dev/zero of=/mytempfile
# 刪除產(chǎn)生的文件
rm -f /mytempfile

Windows虛機端

對于Win7/2008R2 及以上版本會自動裁剪(trim), 可以通過下面命令查看是否開啟

fsutil behavior query DisableDeleteNotify

上面應當會輸出0, 否則使用下面的命令設置

fsutil behavior set DisableDeleteNotify 0

然后執(zhí)行下面的命令

  • 整理碎片, 用windows自帶的或者第三方工具例如 Defraggler or UltraDefrag.
  • 使用SDelete(推薦)或者Eraser, 將空閑空間填充0

使用SDelete

  • 下載 SDelete 保存到 C:\windows\system32\
  • 運行下面的命令填零
sdelete -z
  • 如果有多個分區(qū), 例如 E:, 使用
sdelete -z e:

壓縮虛機鏡像

在宿主機進行操作

qemu-img convert -O qcow2 vm_pbc.qcow2 vm_pbc_shrink.qcow2

帶壓縮參數(shù), 會比較慢

qemu-img convert -O qcow2 -c vm_pbc.qcow2 vm_pbc_shrink.qcow2

virt-filesystems命令

查看鏡像的磁盤大小

virt-filesystems --long --parts --blkdevs -h -a c7guest1.qcow2c 
Name       Type       MBR  Size  Parent
/dev/sda1  partition  83   8.0G  /dev/sda
/dev/sda   device     -    8.0G  -

virt-resize命令

將舊鏡像中的文件系統(tǒng)擴充到新鏡像中, 用于調(diào)整虛機磁盤大小

# 創(chuàng)建一個50G容量的qcow2空白鏡像
qemu-img create -f qcow2 /data/images/win2012-50gb.qcow2 50G
# 將鏡像擴充到新鏡像中去, 通過--expand指定需要擴張的分區(qū)
virt-resize --expand /dev/sda2 /data/images/win2012.qcow2 /data/images/win2012-50gb.qcow2

此時只是將在虛機磁盤上增加了可用空間, 但是未體現(xiàn)到文件系統(tǒng), 啟動虛機后, 在虛機中擴充分區(qū)大小

# 查看分區(qū)
df -h
# 查看分區(qū)對應的磁盤大小, 能看出來/dev/vda1已經(jīng)增長, 但是未體現(xiàn)到df -h的輸出中
fdisk -l
# 如果/dev/vda1格式是xfs
xfs_growfs /dev/vda1
# 如果/dev/vda1格式是ext2,3,4
resize2fs /dev/vda1

對鏡像進行擴容操作

下面的例子演示了如何將vm_n01.qcow2這個鏡像擴容到40G

# 先檢查鏡像的分區(qū)結構, 以便后面對指定的分區(qū)進行擴容
virt-filesystems --long --parts --blkdevs -h -a vm_n01.qcow2 
# 更名
mv vm_n01.qcow2 vm_n01.qcow2.bak
# 用原名創(chuàng)建一個40G的空白鏡像
qemu-img create -f qcow2 vm_n01.qcow2 40G
# 將舊鏡像導入到空白鏡像
virt-resize --expand /dev/sda1 vm_n01.qcow2.bak vm_n01.qcow2
# 檢查導入后的新鏡像
virt-filesystems --long --parts --blkdevs -h -a vm_n01.qcow2
# 刪除舊鏡像
rm vm_n01.qcow2.bak

用新鏡像導入創(chuàng)建虛機后

# 查看分區(qū)
df -h
# 查看分區(qū)對應的磁盤大小, 能看出來/dev/vda1已經(jīng)增長, 但是未體現(xiàn)到df -h的輸出中
fdisk -l
# 如果/dev/vda1格式是xfs
xfs_growfs /dev/vda1
# 如果/dev/vda1格式是ext2,3,4
resize2fs /dev/vda1

遇到e2fsck版本太低的問題centos7自帶的e2fsck版本過低, 運行resize報錯

virt-resize: error: libguestfs error: resize2fs: e2fsck 1.42.9 
(28-Dec-2013)
/dev/sda1 has unsupported feature(s): metadata_csum
e2fsck: Get a newer version of e2fsck!

解決: 編譯最新版本

# 需要預先安裝 wget gcc-c++
sudo wget https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.46.4/e2fsprogs-1.46.4.tar.gz
sudo tar xvf e2fsprogs-1.46.4.tar.gz
sudo cd e2fsprogs-1.46.4
sudo ./configure
sudo make
sudo make install
sudo yum -y install libguestfs-xfs

使用RAW格式對鏡像擴容

Ubuntu20.04 Focal Cloudimage擴容, 參考 https://www.cnblogs.com/milton/p/15382673.html

# resize原始鏡像
qemu-img resize focal-server-cloudimg-amd64-50g.qcow2 50G
# 轉換為raw格式鏡像
qemu-img convert -f qcow2 -O raw focal-server-cloudimg-amd64-50g.qcow2 focal-server-cloudimg-amd64.raw
# 重命名以防混淆
mv focal-server-cloudimg-amd64.raw focal-server-cloudimg-amd64-50g.raw
# 運行parted
parted focal-server-cloudimg-amd64-50g.raw 
######################## 開始
GNU Parted 3.1
Using /data/backup/vm_images/focal-server-cloudimg-amd64-50g.raw
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Error: The backup GPT table is not at the end of the disk, as it should be.
This might mean that another operating system believes the disk is smaller.
Fix, by moving the backup to the end (and removing the old backup)?
Fix/Ignore/Cancel? Fix                                                    
Warning: Not all of the space available to
/data/backup/vm_images/focal-server-cloudimg-amd64-50g.raw appears to be used,
you can fix the GPT to use all of the space (an extra 100245504 blocks) or
continue with the current setting? 
Fix/Ignore? Fix                                                           
Model:  (file)
Disk /data/backup/vm_images/focal-server-cloudimg-amd64-50g.raw: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name  Flags
14      1049kB  5243kB  4194kB                     bios_grub
15      5243kB  116MB   111MB   fat32              boot
 1      116MB   2361MB  2245MB  ext4
(parted) resizepart                                                     
Partition number? 1                                                       
End?  [2361MB]? 53.7G                                                     
 1      116MB   53.7GB  53.6GB  ext4
(parted) q                                                                
########################### 結束
# 查看raw格式的分區(qū)大小是否正確
virt-filesystems --long --parts --blkdevs -h -a focal-server-cloudimg-amd64-50g.raw 
Name        Type       MBR  Size  Parent
/dev/sda1   partition  -    50G   /dev/sda
/dev/sda14  partition  -    4.0M  /dev/sda
/dev/sda15  partition  -    106M  /dev/sda
/dev/sda    device     -    50G   -
# 轉回qcow2格式
qemu-img convert -f raw -O qcow2 focal-server-cloudimg-amd64-50g.raw focal-server-cloudimg-amd64-50g-resized.qcow2
# 再次檢查
virt-filesystems --long --parts --blkdevs -h -a focal-server-cloudimg-amd64-50g-resized.qcow2 

參考

到此這篇關于KVM 虛機鏡像操作, 擴容和壓縮的文章就介紹到這了,更多相關KVM 虛機鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • kvm虛擬化學習筆記(一)之kvm虛擬化環(huán)境安裝的步驟

    kvm虛擬化學習筆記(一)之kvm虛擬化環(huán)境安裝的步驟

    這篇文章主要介紹了kvm虛擬化學習筆記(一)之kvm虛擬化環(huán)境安裝的步驟,非常具有實用價值,需要的朋友可以參考下。
    2016-12-12
  • Centos7下搭建KVM虛擬機的方法

    Centos7下搭建KVM虛擬機的方法

    本篇文章主要介紹了Centos7下搭建KVM虛擬機的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
    2017-03-03
  • 詳解kvm部署三個虛擬機實現(xiàn) WordPress 實驗

    詳解kvm部署三個虛擬機實現(xiàn) WordPress 實驗

    這篇文章主要介紹了詳解kvm部署三個虛擬機實現(xiàn) WordPress 實驗,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • KVM虛擬化安裝部署及管理教程

    KVM虛擬化安裝部署及管理教程

    這篇文章主要為大家介紹了KVM虛擬化,kvm的安裝部署及管理教程,文中示例過程 非常詳細,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Ubuntu 18.04 LTS安裝KVM虛擬機的方法步驟

    Ubuntu 18.04 LTS安裝KVM虛擬機的方法步驟

    這篇文章主要介紹了Ubuntu 18.04 LTS安裝KVM虛擬機的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解基于本地存儲的kvm虛擬機在線遷移

    詳解基于本地存儲的kvm虛擬機在線遷移

    本篇文章主要介紹了基于本地存儲的kvm虛擬機在線遷移,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 詳解Ubuntu 16.04 搭建KVM環(huán)境

    詳解Ubuntu 16.04 搭建KVM環(huán)境

    這篇文章主要介紹了詳解Ubuntu 16.04 搭建KVM環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • linux下配置和安裝KVM虛擬機的步驟

    linux下配置和安裝KVM虛擬機的步驟

    本篇文章主要介紹了linux下配置和安裝KVM虛擬機的步驟,詳細的介紹了kvm虛擬機的安裝和網(wǎng)絡配置等問題,有需要的可以了解一下。
    2017-02-02
  • CentOS 7中搭建KVM虛擬化平臺的方法步驟

    CentOS 7中搭建KVM虛擬化平臺的方法步驟

    這篇文章主要介紹了CentOS 7中搭建KVM虛擬化平臺的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • kvm虛擬機的創(chuàng)建與克隆操作方法

    kvm虛擬機的創(chuàng)建與克隆操作方法

    不知道大家有沒有感覺每次搭一臺虛擬機很麻煩,尤其是你可能需要重復搭建很多臺具有同樣服務的服務器!如果有同樣的感覺,那么通過下面這篇文章就給大家分享了kvm虛擬機的創(chuàng)建與克隆的操作方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-11-11

最新評論