18.7. NVDIMM에서 파일 시스템 DAX 네임스페이스 생성
직접 액세스 기능이 있는 파일 시스템을 지원하도록 시스템에 연결된 NVDIMM 장치를 파일 시스템 DAX 모드에서 구성합니다.
다음 옵션을 고려하십시오.
- 기존 네임스페이스를 파일 시스템 DAX 모드로 재구성합니다.
- 사용 가능한 공간이 있는 경우 새 파일 시스템 DAX 네임스페이스 만들기.
18.7.1. 파일 시스템의 직접 액세스 모드의 NVDIMM 링크 복사링크가 클립보드에 복사되었습니다!
NVDIMM 장치가 파일 시스템에 직접 액세스(파일 시스템 DAX, fsdax
) 모드로 구성된 경우 그 위에 파일 시스템을 생성할 수 있습니다. 이 파일 시스템의 파일에서 mmap()
작업을 수행하는 모든 애플리케이션은 해당 스토리지에 직접 액세스할 수 있습니다. 이를 통해 NVDIMM에서 직접 액세스 프로그래밍 모델을 사용할 수 있습니다.
이제 다음과 같은 새로운 -o dax
옵션을 사용할 수 있으며 필요한 경우 file 속성을 통해 직접 액세스 동작을 제어할 수 있습니다.
-o dax=inode
이는 파일 시스템을 마운트하는 동안 dax 옵션을 지정하지 않는 경우 기본 옵션입니다. 이 옵션을 사용하면 파일에 속성 플래그를 설정하여 dax 모드를 활성화할 수 있는지 제어할 수 있습니다. 필요한 경우 개별 파일에 이 플래그를 설정할 수 있습니다.
디렉터리에 이 플래그를 설정할 수도 있으며 해당 디렉터리의 모든 파일은 동일한 플래그로 생성됩니다.
xfs_io -c 'chattr +x'
directory-name 명령을 사용하여 이 속성 플래그를 설정할 수 있습니다.-o dax=never
-
이 옵션을 사용하면 dax 플래그가
inode
모드로 설정된 경우에도 dax 모드가 활성화되지 않습니다. 즉, per-inode dax 속성 플래그가 무시되고 이 플래그를 사용하여 설정된 파일은 직접 액세스가 활성화되지 않습니다. -O dax=always
이 옵션은 이전
-o dax
동작과 동일합니다. 이 옵션을 사용하면 dax 특성 플래그와 관계없이 파일 시스템의 모든 파일에 대해 직접 액세스 모드를 활성화할 수 있습니다.주의추가 릴리스에서는
-o dax
가 지원되지 않을 수 있으며 필요한 경우-o dax=always
를 대신 사용할 수 있습니다. 이 모드에서는 모든 파일이 직접 액세스 모드에 있을 수 있습니다.- 페이지별 메타데이터 할당
이 모드에서는 시스템 DRAM 또는 NVDIMM 장치의 페이지별 메타데이터를 할당해야 합니다. 이 데이터 구조의 오버헤드는 4-KiB 페이지당 64바이트입니다.
- 소규모 장치의 경우, DRAM에 문제 없이 사용할 수 있을 만큼의 오버헤드의 양이 작아집니다. 예를 들어, 16GiB의 네임스페이스는 페이지 구조에 256MiB만 필요합니다. NVDIMM 장치는 일반적으로 작고 비용이 많이 들기 때문에 페이지 추적 데이터 구조를 DRAM에 저장하는 것이 좋습니다.
테라바이트 크기 이상인 NVDIMM 장치에서 페이지 추적 데이터 구조를 저장하는 데 필요한 메모리 양이 시스템에서 DRAM 양을 초과할 수 있습니다. NVDIMM의 TiB 1개에는 페이지 구조에 16GiB가 필요합니다. 따라서 이러한 경우 NVDIMM 자체에 데이터 구조를 저장하는 것이 좋습니다.
네임스페이스를 구성할 때
--map
옵션을 사용하여 페이지별 메타데이터가 저장되는 위치를 구성할 수 있습니다.-
시스템 RAM에 할당하려면
--map=mem
을 사용합니다. -
NVDIMM에 할당하려면
--map=dev
를 사용합니다.
18.7.2. 기존 NVDIMM 네임스페이스를 파일 시스템 DAX 모드로 재구성 링크 복사링크가 클립보드에 복사되었습니다!
기존 NVMe(Non-Volatile Dual In-line Memory Modules) 네임스페이스를 파일 시스템 DAX 모드로 재구성할 수 있습니다.
네임스페이스를 재구성하면 네임스페이스에 이전에 저장된 데이터가 삭제됩니다.
사전 요구 사항
-
ndctl
유틸리티가 설치되어 있습니다. 자세한 내용은 ndctl 설치를 참조하십시오.
프로세스
시스템의 모든 네임스페이스를 나열합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스를 재구성합니다.
ndctl create-namespace --force --mode=fsdax --reconfig=namespace-ID
# ndctl create-namespace --force --mode=fsdax --reconfig=namespace-ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 18.3. 네임스페이스를 파일 시스템 DAX로 재구성
DAX를 지원하는 파일 시스템에
namespace0.0
을 사용하려면 다음 명령을 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 네임스페이스를
/dev/pmem0
경로에서 사용할 수 있습니다.
검증
시스템의 기존 네임스페이스가 재구성되었는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.7.3. 파일 시스템 DAX 모드에서 새 NVDIMM 네임스페이스 생성 링크 복사링크가 클립보드에 복사되었습니다!
지역에 사용 가능한 공간이 있는 경우 NVMe(Non-Volatile Dual In-line Memory Modules) 장치에서 새 파일 시스템 DAX 네임스페이스를 만들 수 있습니다.
사전 요구 사항
-
ndctl
유틸리티가 설치되어 있습니다. 자세한 내용은 ndctl 설치를 참조하십시오. NVDIMM 장치는 레이블을 지원하여 한 지역에 여러 네임스페이스를 생성합니다. 다음 명령을 사용하여 이를 확인할 수 있습니다.
ndctl read-labels nmem0 >/dev/null
# ndctl read-labels nmem0 >/dev/null read 1 nmem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이는 하나의 NVDIMM 장치의 레이블을 읽는 것을 나타냅니다. 값이
0
이면 장치가 레이블을 지원하지 않음을 나타냅니다.
프로세스
시스템에 사용 가능한 공간이 있는
pmem
리전을 나열합니다. 다음 예제에서는 region1 및 region0 리전에서 공간을 사용할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 리전에서 하나 이상의 네임스페이스를 할당합니다.
ndctl create-namespace --mode=fsdax --region=regionN --size=namespace-size
# ndctl create-namespace --mode=fsdax --region=regionN --size=namespace-size
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 18.4. 리전에서 네임스페이스 생성
다음 명령은 region0 에 36GiB 파일 시스템 DAX 네임스페이스를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 네임스페이스를
/dev/pmem0.3
로 사용할 수 있습니다.
검증
파일 시스템 DAX 모드에서 새 네임스페이스가 생성되었는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.7.4. 파일 시스템 DAX 장치에서 파일 시스템 만들기 링크 복사링크가 클립보드에 복사되었습니다!
파일 시스템 DAX 장치에서 파일 시스템을 만들고 파일 시스템을 마운트할 수 있습니다. 파일 시스템을 생성한 후 애플리케이션은 영구 메모리를 사용하여 마운트 지점 디렉터리에 파일을 생성하고 파일을 열고 mmap
작업을 사용하여 직접 액세스를 위해 파일을 매핑할 수 있습니다.
프로세스
선택 사항: 파일 시스템 DAX 장치에 파티션을 만듭니다. 자세한 내용은 parted를 사용하여 파티션 생성 을 참조하십시오.
참고fsdax
장치에서 파티션을 생성할 때 파티션은 페이지 경계에 맞춰야 합니다. Intel 64 및 AMD64 아키텍처에서는 파티션 시작 및 종료에는 최소 4KiB의 정렬이 필요합니다. 2MiB가 선호되는 정렬입니다.기본적으로
parted
툴은 1MiB 경계에 파티션을 조정합니다. 첫 번째 파티션의 경우 파티션 시작으로 2MiB를 지정합니다. 파티션 크기가 2MiB의 배수인 경우 다른 모든 파티션도 정렬됩니다.파티션 또는 NVDIMM 장치에 XFS 또는 ext4 파일 시스템을 생성합니다.
mkfs.xfs -d su=2m,sw=1 fsdax-partition-or-device
# mkfs.xfs -d su=2m,sw=1 fsdax-partition-or-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이제 dax 가능 및 reflinked 파일이 파일 시스템에서 공존할 수 있습니다. 그러나 개별 파일의 경우 dax 및 reflink는 함께 사용할 수 없습니다.
또한 페이지 매핑이 발생할 가능성을 높이려면 스트라이프 단위와 스트라이프 너비를 설정합니다.
파일 시스템을 마운트합니다.
mount f_sdax-partition-or-device mount-point_
# mount f_sdax-partition-or-device mount-point_
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 직접 액세스 모드를 활성화하기 위해 dax 옵션으로 파일 시스템을 마운트할 필요가 없습니다. 마운트하는 동안 dax 옵션을 지정하지 않으면 파일 시스템은
dax=inode
모드에 있습니다. 직접 액세스 모드가 활성화되기 전에 파일에서 dax 옵션을 설정합니다.