KVM 가상 시스템 디스크 용량 확장
29290 단어 KVM
개술
KVM 환경에서는 일반적으로 다양한 형식의 디스크를 만들어서 가상 머신을 설치합니다. 만들 때 크기가 충분하다고 느낄 수도 있지만 사용하다가 어느 날이 되면 디스크 용량이 부족하다는 것을 알게 될 것입니다. 많은 프로그램이 켜지지 않아서 당황할 수도 있습니다. 당황할 필요는 없습니다. 왜냐하면 많은 방법으로 가상 머신을 확장할 수 있기 때문입니다. 하하하. 예를 들어 다음과 같습니다.
가상 머신 생성
$ qemu-img create -f qcow2 centos.qcow2 50G
는 50G 디스크를 만들었는데 qcow2 형식이다. 이런 형식의 특징은 가상 컴퓨터에 분배된 실제 사용 디스크의 크기가 동태적으로 증가하는 것이지 모든 공간을 가상 컴퓨터에 할당하는 것이 아니다. 명령을 통해 디스크 정보를 볼 수 있다. $ qemu-img info centos.qcow2
image: centos.qcow2
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 1.2G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
50G 디스크의 현재 실제 크기는 1.2G에 불과하다는 것을 알 수 있다.$ virt-install --virt-type kvm --name test-centos --ram 2048 --vcpus=1 \
--cdrom CentOS-7-x86_64-Minimal-1804.iso \
--disk path=test-centos.qcow2,format=qcow2 \
--network network=default,model=virtio \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux
시스템을 설치하는 과정은 소개하지 않지만 시스템을 설치하는 과정에서 디스크 섹션 부분에 대해 일반적으로 두 개의 섹션, 루트 디렉터리/
와 교환 섹션swap
으로 나뉜다.$ df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 46G 1.1G 45G 3% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.5M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/1000
tmpfs 184M 0 184M 0% /run/user/0
시스템 루트/dev/sda2
로 마운트됨/
# fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00015299
Device Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 104857599 48233472 83 Linux
시스템 디스크는 두 개의 섹션으로 되어 있습니다:/dev/sda1과/dev/sda2. 바로 앞에서 말한 섹션과 루트 디렉터리에 마운트하는 것입니다.주: 디스크 섹션 정보에서 원래 50개의 G였던 디스크가 여기까지 왔는데 왜 53.7GB가 됐지?사실 단위가 다를 뿐이다. 앞에서 우리가 사용한 것은 GiB 단위이고 이 두 단위의 계산 방식은 다르다
1 GiB = 1024*1024*1024 Bytes
. 1GB = 1000*1000*1000 Bytes
.여기서 디스크 공간이 부족한 것을 발견하면 가상 시스템의 디스크를 어떻게 확장하는지 살펴보자.
디스크 용량 확장
# qemu-img resize centos.qcow2 60G
Image resized.
위에서 60Gfdisk
명령을 사용하여 디스크를 파티셔닝합니다.
# fdisk /dev/sda # sda,
Command (m for help): p
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors # 64.4GB ,
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00015299
Device Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 104857599 48233472 83 Linux # sector
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): e #
Partition number (3,4, default 3): 3 # , 3
First sector (104857600-125829119, default 104857600): #
Using default value 104857600
Last sector, +sectors or +size{K,M,G} (104857600-125829119, default 125829119): #
Using default value 125829119
Partition 3 of type Extended and of size 10 GiB is set
Command (m for help): p #
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00015299
Device Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 104857599 48233472 83 Linux
/dev/sda3 104857600 125829119 10485760 5 Extended #
Command (m for help): n # ,
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l #
Adding logical partition 5
First sector (104859648-125829119, default 104859648): #
Using default value 104859648
Last sector, +sectors or +size{K,M,G} (104859648-125829119, default 125829119): #
Using default value 125829119
Partition 5 of type Linux and of size 10 GiB is set
Command (m for help): p
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00015299
Device Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 104857599 48233472 83 Linux
/dev/sda3 104857600 125829119 10485760 5 Extended
/dev/sda5 104859648 125829119 10484736 83 Linux #
Command (m for help): w # ,
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks. #
#
# partprobe
# mount |grep /dev/sda
/dev/sda2 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/sda2
는 xfs
포맷이고 CentOS 7의 기본 파일 시스템 포맷은 xfs입니다. CentOS 6과 이전 버전에서는 ext 파일 시스템 포맷을 사용했고 CentOS 6은 ext4 포맷, CentOS 5는 ext3 포맷을 사용했습니다.그럼 우리도 /dev/sda5
를 같은 형식으로 포맷한다:
# mkfs -t xfs /dev/sda5 #-t
meta-data=/dev/sda5 isize=512 agcount=4, agsize=655296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mount /dev/sda5 /mnt/newdisk
/dev/sda5
를 /mnt/newdisk
에 마운트합니다. newdisk
는 빈 폴더가 가장 좋습니다. 그렇지 않으면 마운트한 후에 폴더 안의 파일은 디스크로 마운트한 후에 복구될 때까지 잠시 숨겨집니다.
# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 46G 1.1G 45G 3% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.5M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/1000
/dev/sda5 10G 33M 10G 1% /mnt/newdisk
여기서 거의 끝났어요. 디스크에 G가 10개 더 많아서 디스크를 정상적으로 읽고 쓸 수 있어요.명령 부록
Linux 디스크 운영 명령은 다음과 같이 설명되어 있습니다.
$ df [OPTION]... [FILE]...
디스크 공간의 정보를 보려면 df 명령을 사용하십시오.지정한 파일 시스템의 사용 상황을 볼 수 있습니다.명령에 파일 이름이 지정되지 않으면 현재 마운트된 모든 파일 시스템에 사용할 수 있는 공간이 표시됩니다.
설명
-a
청크 0을 포함한 모든 파일 시스템의 상태를 표시합니다.
-h
읽을 수 있는 방법으로 정보 표시
-H
"-h"에 해당하지만 1024가 아닌 1K=1000
-i
노드 정보 보이기
-k
청크 크기 1024바이트
-l
로컬 파일 시스템 표시
–no-sync
디스크 정보를 얻기 전에 sync 명령을 무시합니다
-P
출력 POSIX 형식
–sync
디스크 정보를 얻기 전에 sync 명령을 실행합니다
-T
파일 시스템 유형 표시
–block-size=
청크 크기 지정
-t filesystem-type
선택한 파일 시스템의 디스크 정보만 표시
-x filesystem-type
선택한 파일 시스템에 대한 디스크 정보를 표시하지 않습니다.
–help
도움말 정보
–version
버전 정보
$ df -lh
fdisk [options] change partition table
fdisk [options] -l list partition table(s)
fdisk -s <partition> give partition size(s) in blocks
fdisk 명령은 Linux에서 구역을 관리하는 프로그램입니다.이 프로그램은 디스크 섹션을 만들 수 있을 뿐만 아니라 디스크를 유지보수하고 섹션 유형을 변경할 수 있습니다.
설명
-b
파티션 크기 지정
-l
파티션 테이블 상태 나열
-s
표준 출력 장치로 지정된 파티션 크기 내보내기
-u
"-l"매개변수와 함께 파티션 수 표시
-v
버전 정보
[fdisk 프로그램 명령]
# mkfs [options] [-t ] [fs-options] <device> []
mkfs 명령은 지정한 장치에 각종 파일 시스템을 구축하는 데 사용되며, 관련 프로그램을 호출하여 파일 시스템 구축을 실행할 수 있으며, 그 자체가 시스템 구축을 실행하지 않는다.
설명
-c
파일 시스템을 만들기 전에 손상된 청크가 있는지 확인합니다.
fs
파일 시스템을 만들 때의 매개 변수를 지정합니다. 파일 시스템에 따라 매개 변수가 다릅니다.
-t
만들 파일 시스템의 종류를 지정합니다. 기본값은 ext2입니다.
-v
세부내용 표시
-V
버전 정보
# mkfs -t ext3 /dev/sda3
# mount [options] <source> <directory>
mount 명령을 사용하여 지정된 장치를 이미 존재하는 디렉토리에 마운트합니다.파일 시스템 마운트가 완료되면 사용자는 이 디렉터리를 통해 지정한 장치의 파일 읽기와 쓰기를 할 수 있습니다.
설명
마운트할 장치 지정
마운트할 디렉토리 지정
# mount /dev/sda3 /mnt
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Proxmox 백업에서 물리 디스크를 제외하는 방법신세를 질 것입니다. 다음과 같은 구성으로 물리 디스크를 통과한 VM을 만들었습니다. (VMWare에서 말하는 RDM) 그러나 이러한 VM은 스냅샷을 사용할 수 없습니다. 또, 백업하려고 하면 모든 드라이브의 백업이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.