Upgrade to Pro — share decks privately, control downloads, hide ads and more …

클라우드 볼륨 서비스 가속화 사례

kakao
PRO
December 09, 2022

클라우드 볼륨 서비스 가속화 사례

#Storage

카카오의 클라우드 볼륨 서비스를 개선한 사례를 소개합니다.
스토리지 백엔드로 사용해오던 Ceph를 카카오 자체 개발 분산 스토리지 서비스인 Tenth2로 전환한 개발 과정을 공유합니다.

발표자 : max.sohn
카카오에서 클라우드 분산 스토리지를 개발하고 있는 맥스입니다.

kakao
PRO

December 09, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. 클라우드 볼륨 서비스 가속화 사례
    손성국 max.sohn


    카카오


    Copyright 2022. Kakao Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao.
    if(kakao)2022

    View Slide

  2. 클라우드 볼륨 서비스


    개발 배경


    개발 과정


    앞으로의 계획

    View Slide

  3. Storage
    Server

    View Slide

  4. Krane(VM)
    Infra as a Service

    View Slide

  5. Volume
    Infra as a Service

    View Slide

  6. 클라우드 볼륨 서비스


    개발 배경


    개발 과정


    앞으로의 계획

    View Slide

  7. Ceph
    Krane
    기존 볼륨 스토리지 백엔드

    View Slide

  8. - 전문 운영 인력의 부재


    - Ceph 이슈의 즉각적인 대응이 어려움


    - Ceph 장애시 영향 받는 볼륨의 파악이 어려움


    - 다른 솔루션은 없을까?
    운영상 어려움

    View Slide

  9. 수평확장성
    고가용성 대용량
    Tenth 분산 파일 스토리지

    View Slide

  10. Tenth
    Krane

    View Slide

  11. Krane Ceph Gateway Tenth
    Drop
    -
    in Replacement

    View Slide

  12. Tenth
    Krane
    Native Tenth

    View Slide

  13. 클라우드 볼륨 서비스


    개발 배경


    개발 과정


    앞으로의 계획

    View Slide

  14. Tenth as a Block Device
    Host
    QEMU
    Tenth Driver
    ...
    VM VM VM VM
    VM VM
    Tenth

    View Slide

  15. 후보 1: QEMU Block Driver
    - 배포시 QEMU 재시작 필요 (VM 재부팅)


    - QEMU 안전성 리스크


    QEMU
    VM
    Block Layer
    Tenth Driver

    View Slide

  16. 후보 2: QEMU Storage Daemon
    - 하나의 볼륨에 지연이 생길시 다른 볼륨도 영향 받음


    - 레퍼런스 부족


    QEMU
    VM
    Tenth Driver
    Storage Daemon

    View Slide

  17. 후보 3: Virtio
    -
    FS
    - FUSE 프로토콜 요구


    - 성능이 비교적 낮음


    QEMU
    VM
    Tenth Driver
    virtiofsd

    View Slide

  18. 후보 4: SPDK vhost
    QEMU
    VM
    Tenth Driver
    SPDK
    - 별도의 사용자 프로세스


    - 고성능


    - 자체 프로토콜 사용 가능


    View Slide

  19. SPDK 소개
    - Storage Performance Development Kit


    - 가속화된 I/O 라이브러리


    - NVMe
    -
    oF


    - vhost server


    View Slide

  20. SPDK 특징
    - CPU pinning & hugepages


    - Polling


    - Zero copy


    - Lock
    -
    free I/O path


    - Asynchronous

    View Slide

  21. SPDK vhost 서버 구조
    QEMU
    Hugepage


    Virtqueue & I/O Buffer
    SPDK vhost
    vhost
    -
    SCSI dev
    Block devices
    Tenth Driver

    View Slide

  22. Tenth Driver 구조
    Hugepage


    Virtqueue & I/O Buffer
    Tenth Driver
    ...
    Volume
    Tenth
    Block Block Block
    ...
    Object File ...
    ...
    Object File
    Poller


    Thread
    Async


    Thread

    View Slide

  23. Tenth Driver 구조
    Hugepage


    Virtqueue & I/O Buffer
    Tenth Driver
    ...
    Volume
    Tenth
    Block Block Block
    ...
    Object File ...
    ...
    Object File
    Poller


    Thread
    Async


    Thread

    View Slide

  24. Tenth Driver 구조
    Hugepage


    Virtqueue & I/O Buffer
    Tenth Driver
    ...
    Volume
    Tenth
    Block Block Block
    ...
    Object File ...
    ...
    Object File
    Poller


    Thread
    Async


    Thread

    View Slide

  25. Tenth API 최적화
    Ceph Gateway
    Tenth Driver
    Tenth
    STAT


    CREATE


    WRITE
    CWRITE

    View Slide

  26. Tenth 오브젝트 파일 락 최적화
    Object File
    Tenth
    Volume
    Object File
    Block Block Block Block
    Lock Lock Lock
    Before After

    View Slide

  27. Tenth 오브젝트 파일 락 최적화
    Object File
    Tenth
    Volume
    Object File
    Block Block Block Block
    Lock Lock Lock
    Before After

    View Slide

  28. FIO Benchmark
    MB/s
    0
    150
    300
    Block Size
    4K 16K 64K
    MB/s
    0
    100
    200
    Block Size
    4K 16K 64K
    Sequential RW Random RW
    Tenth Driver


    Ceph Gateway

    View Slide

  29. 클라우드 볼륨 서비스


    개발 배경


    개발 과정


    앞으로의 계획

    View Slide

  30. 앞으로의 계획
    - Fade
    -
    out & Migration


    - 볼륨 Snapshot


    - Journaling

    View Slide

  31. 감사합니다

    View Slide