이 문서에서는 Azure 가상 머신에서 LVM(논리 볼륨 관리자)을 구성하는 방법을 설명합니다. LVM은 OS 디스크 또는 Azure VM의 데이터 디스크에서 사용할 수 있지만, 기본적으로 대부분의 클라우드 이미지는 OS 디스크에 LVM을 구성하지 않습니다. 아래 단계에서는 데이터 디스크에 대한 LVM 구성에 중점을 줍니다.
선형 및 줄무늬 논리 볼륨
LVM을 사용하여 여러 실제 디스크를 단일 스토리지 볼륨으로 결합할 수 있습니다. 기본적으로 LVM은 일반적으로 선형 논리 볼륨을 만듭니다. 즉, 물리적 스토리지가 함께 연결됩니다. 이 경우 읽기/쓰기 작업은 일반적으로 단일 디스크로만 전송됩니다. 반면 읽기 및 쓰기가 볼륨 그룹에 포함된 여러 디스크에 분산되는 스트라이프 논리 볼륨을 만들 수도 있습니다(RAID0과 유사). 성능상의 이유로, 읽기 및 쓰기가 연결된 모든 데이터 디스크를 활용하도록 논리 볼륨을 스트라이프하는 것을 원할 수 있습니다.
이 문서에서는 여러 데이터 디스크를 단일 볼륨 그룹으로 결합한 다음 스트라이프 논리 볼륨을 만드는 방법을 설명합니다. 아래 단계는 대부분의 배포에서 작동하도록 일반화됩니다. 대부분의 경우 Azure에서 LVM을 관리하기 위한 유틸리티 및 워크플로는 다른 환경과 근본적으로 다르지 않습니다. 평소와 같이 Linux 공급업체에 문의하여 특정 배포에서 LVM을 사용하기 위한 설명서 및 모범 사례를 확인하세요.
데이터 디스크 연결
하나는 일반적으로 LVM을 사용할 때 두 개 이상의 빈 데이터 디스크로 시작하려고 합니다. IO 요구 사항에 따라 디스크당 최대 500 IO/ps 또는 디스크당 최대 5000 IO/ps의 Premium Storage를 사용하여 Standard Storage에 저장된 디스크를 연결하도록 선택할 수 있습니다. 이 문서에서는 Linux 가상 머신에 데이터 디스크를 프로비전하고 연결하는 방법에 대해 자세히 설명하지 않습니다. 빈 데이터 디스크를 Azure의 Linux 가상 머신에 연결하는 방법에 대한 자세한 지침은 Microsoft Azure 문서 "디스크 연결"을 참조하세요.
LVM 유틸리티 설치
Ubuntu
sudo apt-get update sudo apt-get install lvm2RHEL, CentOS 및 Oracle Linux
sudo yum install lvm2SLES 12 및 openSUSE
sudo zypper install lvm2SLES 11
sudo zypper install lvm2SLES11에서도
/etc/sysconfig/lvm을(를) 편집하고LVM_ACTIVATED_ON_DISCOVERED을(를) "사용"으로 설정해야 합니다.LVM_ACTIVATED_ON_DISCOVERED="enable"
LVM 구성
이 가이드에서는 세 개의 데이터 디스크들을 연결한 것으로 가정합니다. 이 디스크들은 각각 /dev/sdc, /dev/sdd 및 /dev/sde로 참조됩니다. 이러한 경로는 VM의 디스크 경로 이름과 일치하지 않을 수 있습니다. 'sudo fdisk -l' 또는 유사한 명령을 실행하여 사용 가능한 디스크를 나열할 수 있습니다.
물리적 볼륨을 준비하세요.
sudo pvcreate /dev/sd[cde] Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created Physical volume "/dev/sde" successfully created볼륨 그룹을 만듭니다. 이 예제에서는 볼륨 그룹을
data-vg01호출합니다.sudo vgcreate data-vg01 /dev/sd[cde] Volume group "data-vg01" successfully created논리 볼륨(들)을 만듭니다. 아래 명령은 전체 볼륨 그룹에 걸쳐 호출
data-lv01되는 단일 논리 볼륨을 만들지만 볼륨 그룹에 여러 논리 볼륨을 만드는 것도 가능합니다.sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01 Logical volume "data-lv01" created.논리 볼륨 서식 지정
sudo mkfs -t ext4 /dev/data-vg01/data-lv01비고
SLES11에서는 ext4 대신 사용합니다
-t ext3. SLES11은 ext4 파일 시스템에 대한 읽기 전용 액세스만 지원합니다.
/etc/fstab에 새 파일 시스템 추가
중요합니다
/etc/fstab 파일을 부적절하게 편집하면 부팅할 수 없는 시스템이 발생할 수 있습니다. 확실하지 않은 경우 배포판의 설명서에서 이 파일을 올바르게 편집하는 방법에 대한 자세한 내용을 확인하세요. 또한 편집하기 전에 /etc/fstab 파일의 백업을 만드는 것이 좋습니다.
새 파일 시스템에 대해 원하는 탑재 지점을 만듭니다. 예를 들면 다음과 같습니다.
sudo mkdir /data논리 볼륨 경로 찾기
lvdisplay --- Logical volume --- LV Path /dev/data-vg01/data-lv01 ....텍스트 편집기에서 열고
/etc/fstab새 파일 시스템에 대한 항목을 추가합니다. 예를 들면 다음과 같습니다./dev/data-vg01/data-lv01 /data ext4 defaults 0 2그런 다음 저장하고 닫습니다
/etc/fstab.항목이
/etc/fstab올바른지 테스트합니다.sudo mount -a이 명령으로 인해 오류 메시지가 표시되면
/etc/fstab파일의 구문을 확인하십시오.다음으로
mount명령을 실행하여 파일 시스템이 탑재되었는지 확인합니다.mount ...... /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)(선택 사항) 의 Failsafe 부팅 매개 변수
/etc/fstab여러 배포판은
nobootwait또는nofail탑재 매개 변수를/etc/fstab파일에 추가할 수 있습니다. 이러한 매개 변수를 사용하면 특정 파일 시스템을 탑재할 때 오류가 발생할 수 있으며 RAID 파일 시스템을 제대로 탑재할 수 없는 경우에도 Linux 시스템이 계속 부팅되도록 할 수 있습니다. 이러한 매개 변수에 대한 자세한 내용은 배포 설명서를 참조하세요.예제(Ubuntu):
/dev/data-vg01/data-lv01 /data ext4 defaults,nobootwait 0 2
TRIM/UNMAP 지원
일부 Linux 커널은 디스크에서 사용되지 않은 블록을 버릴 수 있도록 TRIM/UNMAP 작업을 지원합니다. 이러한 작업은 삭제된 페이지가 더 이상 유효하지 않으며 삭제될 수 있음을 Azure에 알리기 위해 표준 스토리지에서 주로 유용합니다. 페이지를 삭제하면 대용량 파일을 만든 다음 삭제하는 경우 비용을 절감할 수 있습니다.
Linux VM에서 TRIM 지원을 사용하는 두 가지 방법이 있습니다. 보통은 사용 중인 배포판에서 권장하는 방법을 참조하세요.
discard에/etc/fstab탑재 옵션을 사용합니다. 예:/dev/data-vg01/data-lv01 /data ext4 defaults,discard 0 2경우에 따라
discard옵션은 성능에 영향을 줄 수 있습니다. 또는fstrim명령을 명령줄에서 수동으로 실행하거나, 또는 정기적으로 실행하기 위해 crontab에 추가할 수 있습니다.Ubuntu
# sudo apt-get install util-linux # sudo fstrim /datadriveRHEL, CentOS 및 Oracle Linux
# sudo yum install util-linux # sudo fstrim /datadrive