Skip to content

[정리] 2022-07-19 Device Mapper 적용 #9

@Kim0914

Description

@Kim0914

image

목표

  1. User space가 Lagacy Application인 시스템에서 device mapper를 이용해 ZNS ssd에 write.
  2. device mapper를 이용해 리눅스 컨테이너(LxC)에서 발생하는 I/O를 zns ssd에 write.

1. 현지 시스템 상에 파일 시스템이 갖춰지지 않고 마운트 되지 않은 ssd 하나를 준비.

  • 방법 1: 우분투를 설치하는 단계에서 custom storage를 선택하여 파티션을 나눈다
  • 방법 2: dd 명령어를 이용해 nvme ssd를 qemu에 추가한다.

2. dmzadm (dm-zoned) 설치

  • https://github.com/westerndigitalcorporation/dm-zoned-tools
  • sudo dmzamd --format regular block device zone based device 명령어를 통해 device mapper를 formatting.
    • 여기서 device들이 마운트 되어있거나, 파일시스템 포맷을 갖추고 있으면 device 에러가 발생한다.

3. dmzadm start

  • dmzadm --start <<regular block device>> <<zone based device>> 명령어를 통해 device mapper를 start.
  • dmesg를 이용해 정상적으로 실행되었는지 커널 메세지를 확인한다.
  • Trouble Shooting
    • No such device or address 에러 발생 -> dm-zoned는 반드시 zone capacity가 zone size보다 작으면 안된다. 그러므로 qemu를 실행하는 과정에서 zone capacity 값과 zone size 값을 같게한다. (zone capacity는 zone size보다 클 수 없음)
      KakaoTalk_Photo_2022-07-19-14-01-21

4. dm-zoned mount

  • dmzadm가 start 되었으면 device mapping된 regular block device의 File System을 설정한다.
  • mkfs.ext4 /dev/dm-0를 입력하면 ext4 File System이 적용되고, 다른 File System을 적용하고 싶으면 해당 파일 시스템에 맞도록 설정하면 된다.
  • File System이 갖춰진 regular block device를 sudo mount /dev/dm-0 /mnt를 이용해 원하는 마운트 위치에 마운트한다.
  • df -hT를 이용해 정상적으로 마운트 되었는지 확인할 수 있다.

image


Reference

https://zonedstorage.io/docs/linux/dm#dm-zoned
https://github.com/westerndigitalcorporation/dm-zoned-tools

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdocumentationImprovements or additions to documentationtrouble shootingresolve bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions