14.3. LVM 장치 필터
LVM(Logical Volume Manager) 장치 필터는 장치 이름 패턴 목록입니다. 이를 사용하여 시스템에서 장치를 평가할 수 있는 필수 기준 세트를 지정하고 LVM과 함께 사용하기 위해 이를 유효한 것으로 간주할 수 있습니다. LVM 장치 필터를 사용하면 LVM에서 사용하는 장치를 제어할 수 있습니다. 이는 실수로 데이터 손실 또는 저장 장치에 대한 무단 액세스를 방지하는 데 도움이 될 수 있습니다.
14.3.1. LVM 장치 필터 패턴 특성
LVM 장치 필터 패턴은 정규식의 형태로 되어 있습니다. 정규 표현식은 문자로 구분되며 수락을 위해 r
또는 거부 인
경우 r로 구분됩니다. 장치와 일치하는 목록의 첫 번째 정규 표현식은 LVM이 특정 장치를 수락하거나 거부(ignore)하는지 여부를 결정합니다. 그러면 LVM에서 장치의 경로와 일치하는 초기 정규식을 목록에서 찾습니다. LVM은 이 정규 표현식을 사용하여 장치를 결과를 통해 승인해야 하는지 r
결과를 통해 거부해야하는지 여부를 결정합니다.
단일 장치에 여러 경로 이름이 있는 경우 LVM은 목록 순서에 따라 이러한 경로 이름에 액세스합니다. r
패턴 전에 하나 이상의 경로 이름이 패턴과 일치하는 경우 LVM에서 장치를 승인합니다. 그러나 모든 경로 이름이 패턴을 발견하기 전에
r
패턴과 일치하면 장치가 거부됩니다.
패턴과 일치하지 않는 경로 이름은 장치의 승인 상태에 영향을 미치지 않습니다. 장치 패턴에 해당하는 경로 이름이 없는 경우 LVM에서는 장치를 계속 승인합니다.
시스템의 각 장치에 대해 udev
규칙은 여러 개의 심볼릭 링크를 생성합니다. 디렉터리에는 /dev/disk/by-id/
, /dev/disk/by-uuid/
, /dev/disk/by-path/
와 같은 심볼릭 링크가 포함되어 여러 경로 이름을 통해 시스템의 각 장치에 액세스할 수 있습니다.
필터에서 장치를 거부하려면 특정 장치와 연결된 모든 경로 이름이 해당 reject r
표현식과 일치해야 합니다. 그러나 거부할 수 있는 모든 경로 이름을 식별하는 것은 어려울 수 있습니다. 따라서 특정 경로를 구체적으로 수락하고 다른 모든 경로를 거부하는 필터를 생성하는 것이 좋습니다. 일련의 특정 표현식과 단일 r|.*|
표현식이 다른 모든 항목을 거부하는 것입니다.
필터에 특정 장치를 정의하는 동안 커널 이름 대신 해당 장치에 symlink 이름을 사용합니다. 장치의 커널 이름은 /dev/sda
와 같이 변경될 수 있지만 특정 심볼릭 링크 이름은 /dev/disk/by-id/wwn-*
과 같은 변경되지 않습니다.
기본 장치 필터는 시스템에 연결된 모든 장치를 허용합니다. 이상적인 사용자 구성 장치 필터는 하나 이상의 패턴을 허용하고 다른 모든 패턴을 거부합니다. 예를 들어 r|.*|
로 끝나는 패턴 목록입니다.
LVM 장치는 lvm.conf
파일의 devices/filter
및 devices/global_filter
구성 필드에서 LVM 장치 필터 구성을 찾을 수 있습니다. devices/filter
및 devices/global_filter
구성 필드는 동일합니다.
Red Hat Enterprise Linux 9에서 /etc/lvm/devices/system.devices
파일은 기본적으로 활성화되어 있습니다. system.devices
파일이 비활성화되면 시스템에서 LVM 장치 필터를 자동으로 활성화합니다.
추가 리소스
-
lvm.conf(5)
매뉴얼 페이지
14.3.2. LVM 장치 필터 구성의 예
다음 예제에서는 LVM에서 스캔하고 나중에 사용하는 장치를 제어하는 필터 구성을 표시합니다. lvm.conf
파일에서 장치 필터를 구성하려면 다음을 참조하십시오.
복사 또는 복제된 PV를 처리할 때 중복된 PV(물리 볼륨) 경고가 표시될 수 있습니다. 이 문제를 해결하기 위해 필터를 설정할 수 있습니다. 중복 PV 경고를 방지하는 Example LVM 장치 필터의 예제 필터 구성을 참조하십시오.
모든 장치를 검사하려면 다음을 입력합니다.
filter = [ "a|.*|" ]
드라이브에 미디어가 없는 경우 지연을 방지하기 위해
cdrom
장치를 제거하려면 다음을 입력하십시오.filter = [ "r|^/dev/cdrom$|" ]
모든 루프 장치를 추가하고 다른 모든 장치를 제거하려면 다음을 입력합니다.
filter = [ "a|loop|", "r|.*|" ]
모든 루프 및 SCSI 장치를 추가하고 다른 모든 블록 장치를 제거하려면 다음을 입력합니다.
filter = [ "a|loop|", "a|/dev/sd.*|", "r|.*|" ]
첫 번째 SCSI 드라이브에 파티션 8만 추가하고 다른 모든 블록 장치를 제거하려면 다음을 입력합니다.
filter = [ "a|^/dev/sda8$|", "r|.*|" ]
모든 다중 경로 장치와 함께 WWID로 식별되는 특정 장치의 모든 파티션을 추가하려면 다음을 입력합니다.
filter = [ "a|/dev/disk/by-id/<disk-id>.|", "a|/dev/mapper/mpath.|", "r|.*|" ]
명령은 다른 블록 장치도 제거합니다.
추가 리소스
-
lvm.conf(5)
매뉴얼 페이지
14.3.3. LVM 장치 필터 구성 적용
lvm.conf
구성 파일에 필터를 설정하여 LVM 스캔 장치를 제어할 수 있습니다.
사전 요구 사항
-
system.devices
파일 기능을 비활성화했습니다. - 사용하려는 장치 필터 패턴을 준비합니다.
절차
다음 명령을 사용하여 실제로
/etc/lvm/lvm.conf
파일을 수정하지 않고 장치 필터 패턴을 테스트합니다. 다음은 필터 구성 예제를 포함합니다.# lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|*.|" ] }'
/etc/lvm/lvm.conf
파일의 구성 섹션장치에 장치
필터 패턴을 추가합니다.filter = [ "a|/dev/emcpower.*|", "r|*.|" ]
재부팅 시 필요한 장치만 스캔합니다.
# dracut --force --verbose
이 명령은 재부팅 시 LVM이 필요한 장치만 스캔하도록
initramfs
파일 시스템을 다시 빌드합니다.