Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

28.3. 파일 시스템 직접 액세스를 위한 영구 메모리 구성

파일 시스템에 직접 액세스하려면 네임스페이스를 fsdax 모드로 구성해야 합니다. 이 모드는 직접 액세스 프로그래밍 모델을 허용합니다. 장치가 fsdax 모드에서 구성되면 파일 시스템을 위에서 생성한 다음 -o fsdax 마운트 옵션을 사용하여 마운트할 수 있습니다. 그러면 이 파일 시스템의 파일에서 mmap() 작업을 수행하는 모든 애플리케이션이 스토리지에 직접 액세스할 수 있습니다. 다음 예제를 참조하십시오.
# ndctl create-namespace --force --reconfig=namespace0.0 --mode=fsdax --map=mem
{
   "dev":"namespace0.0",
   "mode":"fsdax",
   "size":17177772032,
   "uuid":"e6944638-46aa-4e06-a722-0b3f16a5acbf",
   "blockdev":"pmem0"
}
예에서는 namespace0.0 이 네임스페이스 fsdax 모드로 변환됩니다. --map=mem 인수를 사용하면 ndctl 에서 시스템 iLO에서 Direct Memory Access(DMA)에 사용되는 운영 체제 데이터 구조를 배치합니다.
DMA를 수행하려면 커널에 메모리 영역의 각 페이지에 대한 데이터 구조가 필요합니다. 이 데이터 구조의 오버헤드는 4KiB 페이지당 64바이트입니다. 작은 장치의 경우, overhead의 양은 problem 없이 GDB에 들어갈 수 있을 정도로 작다. 예를 들어, 16-GiB 네임스페이스는 페이지 구조의 경우 256MiB만 필요합니다. NVDIMM 장치는 일반적으로 비용이 적기 때문에 --map=mem 매개 변수에 표시된 대로 커널의 페이지 추적 데이터 구조를 handling하는 것이 좋습니다.
향후 NVDIMM 장치의 크기는 테라바이트가 될 수 있습니다. 이러한 장치의 경우, 페이지 추적 데이터 구조를 저장하는데 필요한 메모리의 양은 시스템의 svn의 양을 초과할 수 있다. 한 TiB의 영구 메모리는 페이지 구조용으로만 16GiB가 필요합니다. 결과적으로 영구 메모리 자체에 데이터 구조를 저장할 --map=dev 매개 변수를 지정하는 것이 좋습니다.
fsdax 모드에서 네임스페이스를 구성한 후 네임스페이스가 파일 시스템에 준비되어 있습니다. Red Hat Enterprise Linux 7.3부터 Ext4 및 XFS 파일 시스템은 모두 영구 메모리를 기술 프리뷰로 사용할 수 있습니다. 파일 시스템 생성에는 특별한 인수가 필요하지 않습니다. DAX 기능을 가져오려면 dax 마운트 옵션을 사용하여 파일 시스템을 마운트합니다. 예를 들어 다음과 같습니다.
# mkfs -t xfs /dev/pmem0
# mount -o dax /dev/pmem0 /mnt/pmem/
그런 다음 애플리케이션은 영구 메모리를 사용하고 /mnt/pmem/ 디렉터리에 파일을 생성하고 파일을 열고 mmap 작업을 사용하여 직접 액세스할 수 있도록 파일을 매핑할 수 있습니다.
직접 액세스에 사용할 pmem 장치에 파티션을 생성할 때는 페이지 경계에 파티션을 정렬해야 합니다. Intel 64 및 AMD64 아키텍처에서 파티션의 시작과 끝을 위해 최소 4KiB 정렬이 적용되지만 2MiB는 기본 정렬입니다. 기본적으로 파트된 도구는 파티션을 1MiB 경계로 정렬합니다. 첫 번째 파티션의 경우 파티션 시작으로 2MiB를 지정합니다. 파티션 크기가 2MiB인 경우 다른 모든 파티션도 정렬됩니다.