리눅스에서 처음부터 LVM 가상 디스크 어레이를 만들 수 + 스크립팅 솔루션

머리말

논리 볼륨 관리자는 (영어 : LVM으로 축약 된 논리 볼륨 관리자) 또한 논리적 볼륨 관리자, 논리 섹터 매니저, 논리 디스크 관리자로 번역은, 리눅스 커널은 논리 볼륨 관리자 (논리 볼륨 관리) 기능에 의해 제공됩니다 . 그것은 하드 디스크 파티션에 있고, 분할 시스템 하드 디스크를 용이하게하기 위해 논리적 계층 관리 시스템을 만들 수 있습니다.

원래 IBM에 의해 개발 된 AIX 시스템에서 구현, OS / 2 및 HP-UX 운영 체제는이 기능을 지원합니다. 1998 년 하인즈 Mauelshagen는 HP-UX의 논리 볼륨 관리자에 따라, 리눅스 논리 볼륨 관리자의 첫 번째 버전을 작성.

LVM 기본 조건 :

  • PV : 물리적 볼륨, 전체 디스크 또는 디스크 파티션과 같은 기능 (예를 들어, RAID)를 갖는 장치 일 수있다 LVM의 PV 시스템의 최저 레벨하지만 물리적 저장 매체와 실질적 비해 관리 파라미터 LVM와 연관된
  • VG : 볼륨 그룹은 PV에 생성되는, PV는 VG에 비 LVM 물리 디스크와 같은 하나 이상의 "LVM 파티션"(논리 볼륨) 시스템 기능을 만들 수 있고, 하나 이상의 구성
  • LV : 논리적 볼륨의 VG에서 분할 된 공간 크기 개폐식 생성 한 후, 시스템은 LV에 (예를 들어,은 / var, / 홈) 파일을 만들 수 있습니다
  • PE : 물리 영역 각각은 (또한, PE 라 함),베이스 유닛들로 분할되고 PV는, PE는 LVM 최소 어드레스 가능 단위로 저장 될 수있는 고유 번호를 가지며, 기본값은 4메가바이트

우리는 유연하고 편리한 LVM 디스크 관리 시스템, 그리고 빠른의 필요에 따라, 대상 디스크의 확장 아무 의미가없는, 거의 성능에 영향을주지 않습니다 수 있습니다.

방법

파티션 방법은 다음 단계로 구분, 실제로 매우 간단 LVM을 만듭니다

1, 파티션 부분을 만들

현재 LVM 파티션 FDISK 이상 권장 도구 일을하지 갈라 수없는 말을하지만, fdisk를보다 편리 포인트가 될 수 있습니다. 다음 프로세스는 다음과 같습니다

# fdisk /dev/nvme0n1
Command (m for help): n ## 新建
Command action
   e   extended
   p   primary partition (1-4)
p ## 主分区

Partition number (1-4): 1 ## 分区号
First cylinder (2048-543352123, default 2048):  ## 回车用默认的1
Last cylinder, +cylinders or +size{K,M,G} (2048-543352123, default 543352123): ## 回车默认大小大小

Command (m for help): t ## 改变toggle类型
Selected partition 1
Hex code (type L to list codes): 8e ## LVM 的分区代码8e
Changed system type of partition 1 to 8e (Linux LVM)

2, 물리적 볼륨 PV를 만들

할 수있는 파티션이 필요 종료 후 방금 될 것입니다 만든 파티션에 직접 물리 볼륨을 만드는 것입니다
에서 pvcreate :

# pvcreate /dev/nvme0n1p1

3. 가상 볼륨 VG 만들기

물리적 볼륨 플레이를 만든 후에는 디스크에 가상 볼륨을 생성해야합니다. 가상 볼륨을 물리 볼륨의 복수로 구성 될 수 있다는 점에 유의하라. 예를 들면 :

# vgcreate nvme /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1

이것의 의미는 명령은 / dev / nvme0n1p1,는 / dev / nvme1n1p1,는 / dev / nvme2n1p1 세 한 태양 광 발전 파티션 구성에서 가상 볼륨을 생성의 NVMe라고이다

4 생성 논리 볼륨 LG

이 단계에서, 기본적으로 LVM은 끝났다 작성하고 마지막 단계는 가상 볼륨에서 논리 볼륨을 생성하는 것입니다 수 있습니다. 다음과 같습니다 :

# lvcreate -L 2.91T -n data nvme

이 명령은,이처럼 될 수있는 모든 한 번에 당신이 용량이 부족 할 경우, 같은 LVM 파티션 이름 데이터에 대한 가상 볼륨의 NVMe에서 논리 볼륨 2.91T를 생성하기위한 것입니다 :

# lvcreate -l -n data nvme

리눅스는 / dev / 폴더에있는이 시점에서 우리는 데이터 /의 NVMe / 파일 구조를 볼 수 있습니다.

5, 마운트 및 업데이트 파일

LVM 파티션을 생성 한 후, 우리는 시스템 파티션 경로에 걸어해야합니다. 당신이 경로 / 데이터를 마운트 할 가정하자.

# mkdir /data ##创建该路径
# mount /dev/mapper/nvme-data /data ##需要注意的时候这里推荐使用/dev/mapper/nvme-data作为挂载的设备路径,而不是/dev/nvme/data

그것의 / etc / fstab 파일을 업데이트 한 후 BLKID 명령으로이 새로운 LVM 파티션의 UUID를 취득하고, 후

스크립팅

위의 LVM 구현은 쉘 스크립트를 통해 직접 달성 할 수있다 :

#!/bin/bash

##本案例中以服务器的/dev/nvme0n1这块nvme磁盘为例进行操作
OPTS="noatime,nobarrier,errors=remount-ro,nofail"   ##部分写入/etc/fstab的固定变量
umount /data/ && parted /dev/nvme0n1 rm 1   ## 首先确保目标磁盘没有残留的分区信息。
echo "n
p
1


t
8e
w
" | fdisk /dev/nvme0n1  ##通过fdisk工具创建一个分区
echo "y
" | pvcreate /dev/nvme0n1p1     ##创建一个物理卷
echo "y
y
y
" | vgcreate nvme /dev/nvme0n1      ##创建一个虚拟卷
echo "y
" | lvcreate -L 2.91T -n data nvme && mkfs.ext4 /dev/nvme/data && mount /dev/mapper/nvme-data /data/
##创建一个逻辑卷并进行格式化,然后挂载到目标路径
sed -i '$d' /etc/fstab      ##将UUID等相关信息更新到/etc/fstab中
#do
    if [ $? -eq 0 ]; then
        UUID=$(blkid /dev/mapper/nvme-data | sed -e 's/.*\(UUID=.*\) TYPE.*/\1/')
        echo -e "${UUID}\t\t/data\t\text4\t\t${OPTS}\t\t0 0" >> /etc/fstab
    fi
    seq=$(($seq+1))
#done

추천

출처www.linuxidc.com/Linux/2019-08/160146.htm