Linux 시스템 LVM 논리 볼륨 생성 및 확장(명령 상세, 그림 참조)
LVM(Logical Volume Manager)의 중국어 이름: 논리 볼륨 관리자는 본질적으로 가상 장치 구동이고 내부 블록 장치와 물리 장치 사이에 추가된 새로운 추상적인 차원으로 몇 개의 디스크(물리 볼륨,Physical Volume)를 하나의 저장소나 볼륨 그룹(Volume Group)으로 조합할 수 있다.LVM은 볼륨 그룹에서 각기 다른 크기의 논리 볼륨(LogicalVolume)을 분할할 때마다 새 논리 장치를 만들 수 있습니다.기본 디스크는 커널에서 직접 제어하지 않고 LVM 레이어에서 제어합니다.상부 응용 프로그램에서 볼륨 그룹은 디스크 블록을 대체하여 데이터 저장의 기본 단원이 되었다.LVM은 모든 물리적 볼륨의 물리적 디스크를 관리하며 논리적 디스크와 물리적 디스크 사이의 매핑을 유지합니다.LVM 논리 디바이스는 파일 시스템 생성 및 데이터 액세스 등 물리적 디스크와 동일한 기능을 상위 계층에 적용합니다.그러나 LVM 논리 장치는 물리적 제약을 받지 않고 논리 볼륨은 연속적인 공간이 아니라 많은 물리 볼륨을 뛰어넘을 수 있으며 언제든지 크기를 조절할 수 있다.물리적 디스크보다 디스크 공간 관리가 용이합니다.
LVM의 장점과 단점:
우리는 평소에 컴퓨터를 사용하는데 디스크 공간이 부족할 때 일반적으로 디스크 공간을 확장할 수 없다. 우리는 새로운 하드디스크를 추가하고 새로운 하드디스크를 구역별로 만들어 포맷해야만 사용할 수 있다.물론 이것은 우리 개인 컴퓨터에 당연히 충분하다. 약간의 번거로움을 제외하고는.그러나 작업 환경에서 서버는 끄고 새 하드디스크를 추가하기 어렵다. 중요한 서비스를 실행하는 서버는 보통 24시간 끊임없이 운행한다는 것을 알아야 한다. 이때 LVM을 통해 우리는 시스템의 디스크를 동적 관리할 수 있다.
LVM 메커니즘의 기본 개념:
VG(Volume Group) 다이어그램:
용어 설명:
LVM에 대한 관리 명령:
기본 명령:
pvcreate 명령: 새 물리 볼륨 만들기 (형식: pvcreate... 장치 이름 1... [장치 이름 2])
vgcreate 명령: 새 볼륨 그룹 만들기 (형식: vgcreate... 볼륨 이름... 물리 볼륨 이름 1... 물리 볼륨 이름 2)
lvcreate 명령: 새로운 논리 볼륨 만들기 (형식: lvcreate... - L... 용량 크기... - n... 논리 볼륨 이름... 볼륨 그룹 이름)
lvextend 명령: 논리 볼륨의 저장 공간 추가 (형식: lvextend... - L... + 용량 크기.../dev/볼륨 그룹 이름/논리 볼륨 이름)
LVM에서 논리 볼륨을 만드는 프로세스(실제 작업):
첫 번째 단계: 물리적 볼륨(PV)을 설정합니다.
1. 가상 컴퓨터에 20G 하드디스크 세 개를 추가하고 리눅스 시스템을 다시 시작합니다. (시스템을 다시 시작해야 하드디스크를 식별할 수 있고'reboot'또는'init6'명령으로 다시 시작합니다).
2. fdisk 명령을 사용하여 하드 드라이브가 성공적으로 추가되었는지 확인합니다.
:fdisk -l
3. 디스크 sdb를 설정하여 모든 공간을 하나의 주 구역에 분배한 다음에 구역 형식을 LVM 형식으로 변환한다.(디스크 관리 내용은 제가 앞의 블로그에 썼는데 못하는 친구가 있으면 한번 가보세요)
:fdisk /dev/sdb---------- sdb
:n---------------------------
:p--------------------------
------------------------------- 1
-------------------------------
------------------------------ 1
:t--------------------------
:8e-----------------------LVM ( L )
:w------------------------
4. 위의 방법으로 디스크 sdc, sdd를 디스크 sdb와 같은 설정으로 하고 종료 디스크 설정 패널을 저장합니다.(과정이 같기 때문에 군말은 하지 않겠다)
5. fdisk 명령을 사용하여 디스크 파티션이 성공적으로 구성되었는지 다시 확인합니다.
:fdisk -l
6. pvcreate 명령으로 세 개의 디스크 구역을 세 개의 물리 볼륨으로 만듭니다.(나는 정규 표현식 입력을 사용하는데, 더욱 간편하다. "pvcreate/dev/sdb1/dev/sdc1/dev/sdd1"명령줄을 입력한 결과와 같다.
:pvcreate /dev/sd{b..d}1
2단계: 새 볼륨 그룹(VG)1. 물리적 볼륨 sdb1, sdc1, sdd1을 볼륨 그룹mailbox에 추가합니다.
:vgcreate mailbox /dev/sd{b..d}1--------- mailbox sdb1、sdc1、sdd1
:pvscan-------------------------------------------
2. 볼륨 그룹 메일박스의 상세한 정보를 보십시오.
:vgdisplay----------
3단계: 새 논리 볼륨(LV)
1. 메일박스 볼륨 그룹에 논리 볼륨 mbox01을 새로 만듭니다.(내 디스크 한 조각의 크기는 20G이고 25G의 논리 볼륨은 디스크에 걸쳐 뚜렷하게 만들 수 있다)
:lvcreate -L 25G -n mbox01 mailbox---------- mailbox mbox01 , 25G
:lvdisplay-----------------------------------------------
2. 메일박스 볼륨 그룹에 논리 볼륨 mbox02를 만들고 용량은 15G로 설정합니다.
:lvcreate -L 15G -n mbox02 mailbox
:lvdisplay
3. 논리 볼륨 mbox01의 공간이 적다고 느끼면 10G의 공간을 확장할 수 있습니다.
:lvextend -L +10G /dev/mailbox/mbox01-------- mbox01 10G ,“+” , “+” 。
:lvdisplay
4단계: 논리 볼륨 포맷 및 마운트
1. 논리 볼륨 mbox01과 mbox02를 포맷합니다.
:mkfs.xfs /dev/mailbox/mbox01---------- mbox01 xfs
:mkfs.xfs /dev/mailbox/mbox02---------- mbox02 xfs
2. 두 논리 볼륨의 마운트 지점으로/mnt/디렉토리에 두 개의 디렉토리를 새로 만듭니다.
:mkdir /mnt/mbox0{1..2}---------- /mnt/ mbox01、mbox02
:ls /mnt/-------------------------------- /mnt/
3./etc/fstab 파일에 논리 볼륨 mbox01, mbox02의 자동 마운트 명령을 추가합니다.(내 이전 블로그를 자동으로 마운트했으니 못하는 친구는 볼 수 있다)
:vim /etc/fstab------------------------------------------------------------------------------ vim fstab
:/dev/mailbox/mbox01 /mnt/mbox01 xfs defaults 0 0----------
:/dev/mailbox/mbox02 /mnt/mbox02 xfs defaults 0 0----------
:mount -a------------------------------------------------------------------------------------
:df -hT----------------------------------------------------------------------------------------
LVM 확장:
논리 볼륨(LV) 확장:
ext2/ext3/ext4 파일 시스템, 조정 명령은resize2fs이거나 "-r"로 파일 시스템 크기를 자동으로 확장:
1. mbox01 논리 볼륨을 마운트한 다음 파일 형식을 ext4 형식으로 포맷합니다.
:umount /dev/mailbox/mbox01------------- mbox01
:mkfs.ext4 /dev/mailbox/mbox01---------- ext4
2. mbox01을 다시 마운트한 다음 마운트 상세 정보를 확인합니다.
:mount /dev/mailbox/mbox01 /mnt/mbox01---------- mbox01
:df -hT-------------------------------------------------------------
3.mbox01에 1G 용량을 추가하고 마운트 상세 정보를 보니 용량이 증가하지 않았습니다.
:lvextend -L +1G /dev/mailbox/mbox01---------------
:df -hT-------------------------------------------------------------
4.resize2fs 명령으로 용량 조정을 실행한 다음 용량 증가에 성공한 것을 확인합니다.
:resize2fs /dev/mailbox/mbox01-------------------------
:df -hT-------------------------------------------------------------
5. "-r"옵션을 사용하여 파일 시스템 크기를 직접 자동으로 확장합니다.입력: lvextend-L +1G/dev/mailbox/mbox01 -r---------------mbox01 용량 1G 증가 및 자동 확장 입력: df -hT----------------------------------------------------------------------------------- 마운트 상세 정보 보기
xfs 파일 시스템의 조정 명령은 xfs 입니다.growfs 또는 "-r"를 사용하여 파일 시스템 크기를 직접 확장합니다.
1. 만약에 mbox02를 사용하는 과정에서 용량이 부족하면 우리는 직접 용량을 확대할 수 있지만 전제는 볼륨 그룹에 충분한 용량 지원이 있다는 것이다.입력: lvextend-L +5G/dev/mailbox/mbox02-------------mbox02 논리 볼륨에 5G 용량 추가 입력: lvdisplay/dev/mailbox/mbox02-----------------------------mbox02 논리 볼륨 상세정보 표시
2. 우리는 다시 df-hT 명령을 사용하여 마운트 정보를 살펴보았는데mbox02의 용량이 증가하지 않은 것을 발견하였다.이것은 파일 시스템이 아직 동기화되지 않았기 때문에, 우리는 xfs 를 사용하기만 하면 된다.growfs 명령을 동기화하면 됩니다.
:df -hT-------------------------------------------------
:xfs_growfs /dev/mailbox/mbox02-----------
:df -hT-------------------------------------------------
3. "-r"를 사용하여 파일 시스템 크기를 직접 자동으로 확장합니다.
:lvextend -L +1G /dev/mailbox/mbox02 -r------------- mbox02 1G
:df -hT-------------------------------------------------------------
볼륨 그룹(VG) 확장:
1. 볼륨 그룹에 공간이 부족한 것을 발견하면 먼저 하드디스크를 추가합니다.
2. 하드디스크를 추가한 후 일반적으로 시스템을 리셋하지만 기업에서 서버는 마음대로 리셋할 수 없습니다. 여기서 우리는 echo"---">/sys/class/scsihost/host0/scan 명령은 디스크를 추가하기 위해 scsi 버스를 다시 스캔합니다.
:echo "- - -" > /sys/class/scsi_host/host0/scan---------- scsi
:fdisk -l /dev/sde-------------------------------------------------- sde
3. 새 디스크를 포맷한 다음 볼륨 그룹 메일박스에 추가하여 공간이 성공적으로 추가되었는지 확인합니다.
:pvcreate /dev/sde----------------------- /dev/sde
:vgextend mailbox /dev/sde---------- /dev/sde mailbox
:vgs-------------------------------------------
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.