물리적인 디바이스를 네트워크에서 사용할 수 있도록 해주는 기능이다. 예컨데, 원격에 있는 하드 디스크를 로컬에서 사용 할 수 있도록 해준다고 보면 된다. iSCSI와 매우 비슷한 녀석이라서 어느 녀석을 써야 할지 헷갈릴 수 있겠다. 굉장히 최신의 기술일 것 같지만 1997년에 개발된 거의 20년이 다되가는 기술이다. 리눅스도 커널 2.1.55 부터 지원하는 역사와 전통에 빛나는 기능이다. 오래된 만큼 믿고 쓸 수 있다.
KVM 가상화에서의 NBD
가상화 환경에서 인스턴스와 스토리지는 네트워크로 분리되는게 일반적이다. NBD를 이용해서, 가상환경을 구성하는 법에 대해서 살펴본다.
QEMU Image를 NBD로 서비스하기
가상화와 클라우드에서는 LVM 등으로 블럭 디바이스를 나누어서 서비스 한다. QEMU는 블럭 디바이스를 이미지로 만들 수 있는데, 이 이미지를 NDB로 서비스 할 수 있다. QEMU 이미지는 qemu-img 명령으로 만들 수 있다. raw, qcow2, rdb, parallels 등 다양한 가상 이미지를 만들 수 있는데, qcow2로 테스트 하기로 했다.
10G 짜리 qcow2 이미지를 만들었다.
fdisk로 파티션 작업을 하자. 파티션을 만드는 과정은 생략 한다. 파티션 작업을 하고 파일 시스템을 만들어줘야 한다. ext4로 만들었다. 작업을 마친 디바이스의 모습이다. 참고로 fdisk는 /dev/ndb를 대상으로 해야 한다. fdisk는 qcow를 지원하지 않기 때문에, 이미지 파일에 직접하면 제대로 작업이 되지 않는다.
# fdisk -l /dev/nbd0
Disk /dev/nbd0: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1df95d35
Device Boot Start End Sectors Size Id Type
/dev/nbd0p1 2048 8390655 8388608 4G 83 Linux
/dev/nbd0p2 8390656 20971519 12580864 6G 83 Linux
# mkfs.ext4 /dev/nbd0p1
# mkfs.ext4 /dev/nbd0p2
Contents
Network Block Device
KVM 가상화에서의 NBD
QEMU Image를 NBD로 서비스하기
NBD를 원격에서 마운트
iscsi와 NDB
Recent Posts
Archive Posts
Tags