SPDK에서 한발 더 나아가 최근 NVMe-oF
NVMe-oF는 PCIe에 장착하여 사용하는 SSD인 NVMe를 Remote로 접근하는 방식을 의미
NVMe-oF는 원격 NVMe에 접근하기 위해 Ethernet, Infiniband와 같은 네트워크 위에서 동작
저장 장치를 원격으로 접근함으로써 얻게 되는 가장 큰 변화는 클라우드 환경에서의 Compute Node과 Storage Node 간의 물리적 의존성 제거
- Resource Efficient Scale In/Out
- Easy Migration
- Fault Tolerance
Ethernet Protocols
NVMe-oF는 RDMA 를 사용할 수도 있고, 그렇지 않을 수 있으며 Ethernet, Infiniband, Fibrae Channel 등 다양한 통신 프로토콜 위에서 동작할 수 있음
하지만 데이터 센터에서 매우 범용적으로 사용되는 Ethernet을 기반으로 NVMe-oF를 구현하고, RDMA를 함께 적용하고자 한다면 사용 가능한 프로토콜은 iWARP와 RoCEv2 두 가지
Latency Benchmark로 성능 측정 시 2048 Bytes 패킷을 기준으로 iWARP는 약 10 us, RoCEv2는 약 2 us
[네이버클라우드 기술&경험] 가상화 개념 이해하기#2, SPDK와 NVMe-oF 알아보기
SPDK는 User space에서 사용하는 스토리지 I/O 가속 솔루션입니다. 개발용 라이브러리, 가상머신용 vhost 등 다양한 사용 모델을 제공하고 있으며 iSCSI, NVMe-oF를 위한 모듈도 지원하고 있습니다. 가상머신에서 발생하는 I/O의 경우 지난 시간에 알아본 KVM의 vhost (이하 k-vhost)가 범용적으로 사용되어 왔습니다. 네트워크는 k-vhost-net, 스토리지는 k-vhost-scsi, k-vhost-blk 등이 있습니다.
https://medium.com/naver-cloud-platform/%EB%84%A4%EC%9D%B4%EB%B2%84%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B8%B0%EC%88%A0-%EA%B2%BD%ED%97%98-%EA%B0%80%EC%83%81%ED%99%94-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-2-spdk%EC%99%80-nvme-of-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-6eae4ef1dd4c

Seonglae Cho![[네이버클라우드 기술&경험] 가상화 개념 이해하기#2, SPDK와 NVMe-oF 알아보기](https://www.notion.so/image/https%3A%2F%2Fmiro.medium.com%2F1*m-R_BkNf1Qjr1YbyOIJY2w.png?table=block&id=ca6c7b41-c261-4040-92bd-68dcd7dae020&cache=v2)