2장. 영구 이름 지정 속성
스토리지 장치를 식별하고 관리하는 방식은 시스템의 안정성과 예측 가능성을 보장합니다. RHEL 10에서는 이 목적을 위해 기존 장치 이름과 영구 이름 지정 속성이라는 두 가지 기본 이름 체계를 사용합니다.
기존 장치 이름
Linux 커널은 시스템 또는 해당 열거에 표시되는 순서에 따라 기존 장치 이름을 할당합니다. 예를 들어 첫 번째 SATA 드라이브는 일반적으로 /dev/sda
로 레이블이 지정되고 두 번째는 /dev/sdb
로 레이블이 지정됩니다. 이러한 이름은 간단하지만 장치를 추가 또는 제거하거나 하드웨어 구성이 수정되거나 시스템을 재부팅할 때 변경될 수 있습니다. 이로 인해 스크립팅 및 구성 파일에 문제가 발생할 수 있습니다. 또한 기존 이름에는 장치의 목적 또는 특성에 대한 설명이 없습니다.
영구 이름 지정 속성
PNA(영구 이름 지정 속성)는 스토리지 장치의 고유한 특성을 기반으로 하므로 시스템 재부팅 후에도 시스템에 표시될 때 더 안정적이고 예측할 수 있습니다. PNAs의 주요 이점 중 하나는 하드웨어 구성 변경에 대한 탄력성이 있어 일관된 이름 지정 규칙을 유지하는 데 이상적입니다. PNA를 사용하는 경우 예기치 않은 이름 변경에 대한 우려 없이 스크립트, 구성 파일 및 관리 툴 내에서 스토리지 장치를 참조할 수 있습니다. 또한 PNA에는 종종 공급 업체, 모델 이름 및 일련 번호의 조합과 같은 장치 유형 또는 제조업체 정보와 같은 중요한 메타데이터가 포함되어 효과적인 장치 식별 및 관리를 위한 설명이 향상됩니다. PNAS는 결국 개별 장치에 액세스하기 위해 /dev/disk
디렉토리에 장치 링크를 만드는 데 사용됩니다. 장치 링크 이름을 구성하고 관리하는 방법은 udev
규칙에 따라 구동됩니다.
다음은 /dev/disk/
:에서 찾을 수 있는 디렉토리 목록입니다.
시스템을 다시 시작한 후에도 고유한 콘텐츠가 있는 디렉터리:
-
by-id
:vendor/model/serial_string
조합이 포함된 하드웨어 특성을 기반으로 합니다. -
by-path
*: 물리적 하드웨어 배치를 기반으로 합니다. 시스템에 물리적으로 연결된 장치 또는 디스크의 경우 마더보드의 호스트 버스에 물리적으로 연결된 슬롯 또는 포트입니다. 그러나 네트워크를 통해 연결된 장치 또는 디스크의 경우 네트워크 주소 사양이 포함됩니다. -
by-partlabel
: 장치 파티션에 할당된 레이블을 기반으로 합니다. 이러한 레이블은 사용자가 할당합니다. -
by-partuuid
: 자동으로 생성되는UUID
형식의 고유 번호를 기반으로 합니다. -
by-uuid
: 자동으로 생성되는 UUID 형식의 고유 번호를 기반으로 합니다.
-
현재 시스템을 실행하는 동안 고유하게 유지되지만 시스템을 다시 시작한 후에는 그렇지 않은 콘텐츠가 있는 디렉터리입니다.
-
by-diskseq
:diskseq
는 시스템이 부팅될 때 1에서 시작하는 '디스크 순서 번호'입니다. 새로 연결된 디스크에 이 수를 할당하고 각 숫자는 순서대로 다음 번호를 가져옵니다. 시스템이 재부팅되면 카운터가 1에서 다시 시작됩니다.
-
루프 장치에 특별히 사용되는 콘텐츠가 있는 디렉터리:
-
by-loop-ref
-
by-loop-inode
-
2.1. 파일 시스템 및 블록 장치를 식별하기 위한 영구 속성 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 10 스토리지에서 PNA(영구 이름 지정 속성)는 시스템 재부팅, 하드웨어 변경 또는 기타 이벤트에서 스토리지 장치에 대한 일관되고 안정적인 이름을 지정하기 위한 구성 요소를 제공하는 메커니즘입니다. 이러한 속성은 스토리지 장치가 추가, 제거 또는 재구성된 경우에도 스토리지 장치를 일관되게 식별하는 데 사용됩니다.
PNAS는 파일 시스템과 블록 장치를 모두 식별하는 데 사용되지만 다른 용도로 사용됩니다.
- 파일 시스템 식별을 위한 영구 속성
범용 고유 식별자(UUID)
UUID는 주로 스토리지 장치의 파일 시스템을 고유하게 식별하는 데 사용됩니다. 각 파일 시스템 인스턴스에는 자동으로 할당된 고유한 UUID가 있으며, 이 식별자는 파일 시스템을 마운트 해제하거나 다시 마운트 해제하거나 장치를 분리하고 다시 연결하더라도 이 식별자는 일정하게 유지됩니다.
레이블
레이블은 파일 시스템의 사용자가 할당한 이름입니다. 파일 시스템을 식별하고 참조하는 데 사용할 수 있지만 UUID로 표준화되지는 않습니다. 사용자가 파일 시스템 레이블을 할당하므로 고유성은 선택에 따라 다릅니다. 레이블은 종종 구성 파일에서 파일 시스템을 지정하는 UUID의 대안으로 사용됩니다.
파일 시스템에 레이블을 할당하면 파일 시스템 메타데이터의 일부가 됩니다. 이 레이블은 마운트 해제, 다시 마운트 또는 장치가 분리 및 다시 연결된 경우에도 파일 시스템과 연결된 상태로 유지됩니다.
- 블록 장치를 식별하기 위한 영구 속성
범용 고유 식별자(UUID)
UUID는 스토리지 블록 장치를 식별하는 데 사용할 수 있습니다. 스토리지 장치가 포맷되면 종종 장치 자체에 UUID가 할당됩니다. 이러한 UUID는 일반적으로 다른 블록 장치 상단에 계층화된 가상 블록 장치에 생성 및 할당되며 실제 장치는 최하위에 있습니다. 예를 들어 DM(Device-mapper) 기반 장치 및 해당 하위 시스템(예: 논리 볼륨 관리자(LVM) 및 crypt)과 같은 관련 하위 시스템은 LVUUID(Logical Volume UUID) 및 crypt UUID와 같은 장치 식별에 UUID를 사용합니다.
또한 여러 장치(MD) 기반 장치에는 UUID가 할당됩니다. 가상 장치는 일반적으로 기본 장치를 구성 요소 UUID로 표시합니다. 예를 들어 LVM은 기본 장치를 PVUUID(실제 볼륨 UUID)로 표시하고 MD는 기본 장치를 MD 구성 요소 UUID로 표시합니다.
이러한 UUID는 가상 블록 장치 메타데이터에 포함되어 있으며 영구 이름 지정 속성으로 사용됩니다. 이를 통해 블록 장치를 고유하게 식별할 수 있으며, 해당 장치에 상주하는 파일 시스템을 변경할 수 있습니다. 장치 파티션에 대해 UUID도 할당됩니다.
이러한 UUID는 다른 장치 ID와 공존할 수 있습니다. 예를 들어
vendor/model/serial_number
조합 또는 WWID로 식별되는 장치 스택 하단의 sda 장치에는 LVM에서 할당한 PVUUID도 있을 수 있습니다. 그런 다음 LVM 자체에서 해당 계층의 Volume Group(VG) 또는 논리 볼륨(LV)을 빌드합니다.- 레이블 또는 이름 레이블 또는 이름을 특정 블록 장치에도 할당할 수 있습니다. 이는 사용자가 할당한 레이블이 있을 수 있는 파티션에 적용됩니다. DM(Device-mapper) 기반 장치 및 MD(Multi-device) 기반 장치와 같은 일부 가상 블록 장치는 이름을 사용하여 장치를 식별합니다.
WWID(World Wide Identifier)
WWID는 전역적으로 고유한 식별자 제품군을 포함하며 일반적으로 스토리지 블록 장치 또는 스토리지 구성 요소와 연결됩니다. 이는 일반적으로 파이버 채널(FC)과 같은 엔터프라이즈 수준 SAN(Storage Area Networks)에서 스토리지 노드(WWNN(World Wide Node Name) 또는 WWPN(World Wide Port Name)의 스토리지 장치에 대한 실제 포트/연결을 식별하는 데 사용됩니다. WWID는 서버와 SAN 스토리지 장치 간의 일관된 통신을 보장하고 스토리지 장치에 대한 중복 경로를 관리하는 데 도움이 됩니다.
다른 유형의 장치는 NVME 장치와 같이 WWID의 형태를 사용할 수 있습니다. 이러한 장치는 네트워크 또는 SAN을 통해 액세스할 필요가 없으며 엔터프라이즈급 장치일 필요는 없습니다.
WWID 형식은 단일 표준을 따르지 않습니다. 예를 들어 SCSI 형식은 CryostatA, T10 및 EUI와 같은 형식을 사용합니다. NVME는 EUI-64, NGUUID 및 UUID와 같은 형식을 사용합니다.
직렬 문자열
serial 문자열은 제조업체에 의해 각 스토리지 블록 장치에 할당된 고유한 문자열 식별자입니다. 스토리지 장치를 구분하는 데 사용할 수 있으며 장치 관리를 위해 UUID 또는 WWID와 같은 다른 속성과 함께 사용할 수 있습니다.
udev 규칙
내에서/dev/disk/by-id
콘텐츠에서 'short serial string'은 일반적으로 장치 자체에서 보고하는 실제 직렬 문자열을 나타냅니다. 반면 'serial string'은 여러 구성 요소(일반적으로 <bus_type>-<vendor_name>_<model_name>_<short_serial_string
>)로 구성됩니다.WWID 및 직렬 문자열은 실제 장치에 선호됩니다. 가상 장치의 경우 UUID 또는 이름이 우선합니다.