converging qemu and tcmu for container storage
play

Converging QEMU and TCMU for Container Storage Huamin Chen Red Hat - PowerPoint PPT Presentation

Converging QEMU and TCMU for Container Storage Huamin Chen Red Hat @root_fs https://github.com/rootfs https://huaminchen.wordpress.com/ Agenda Background Collaboration with Andy Grover (TCMU) and Fem Zheng (QEMU) Scope


  1. Converging QEMU and TCMU for Container Storage Huamin Chen Red Hat @root_fs https://github.com/rootfs https://huaminchen.wordpress.com/

  2. Agenda Background ● Collaboration with Andy Grover (TCMU) and Fem Zheng (QEMU) ○ Scope ○ Focused on on-premise Network Storage ■ Container Storage ○ Docker and Kubernetes ■ QEMU Block Drivers ○ Why Converging? ● ● Related Works Solutions and Status ●

  3. Docker Volume docker run -v /mnt:/data centos df ● Container volumes are bind mount of those that mounted on the host ● Container /data Backend Storage (NFS, iSCSI, /mnt Gluster, Ceph ….) Host OS

  4. Docker Volume Driver Model Container Docker Docker Volume Daemon Driver /data Bind mount Provisioning /mnt Backend Storage Mkfs (NFS, iSCSI, mount Gluster, Ceph ….)

  5. Kubernetes Volume Plugin Model kubelet Container NFS iSCSI /data RBD Gluster GCE EBS PD Bind mount Cinder Azure Provisioning Backend Storage /mnt Mkfs (NFS, iSCSI, Fsck Gluster, Ceph ….) Mount

  6. Feel the Pain? Last mile problem ● Bringing easy storage access to clients is hard ○ No universal control or data plane exists ○ Storage vendors need to develop, maintain, and support all orchestration ● frameworks Kubernetes, Mesos, Docker, OpenStack, vSphere... ○ Orchestrators carry long lists of drivers ● ○ Most drivers do the same thing inside the orchestrators Extensive integration tests ○ ○ Framework level changes are often visible to and impact on all drivers

  7. Why Converging with QEMU? Easy data sharing. ● ○ There are plenty of qcow2 and vmdk images around. Enabling Containers directly to access these images eliminates data migration complexities. Deduplicate Driver Development ● QEMU already supports many storage drivers that Docker and Kubernetes try to support ○ Feature Enablement ● Provisioning ○ ○ Snapshot/restore Resize ○ ○ Encryption Compression ○ ○ Throttling Replication ○ ● Performance Some QEMU block drivers perform better than direct mount. ○ Gluster: no more FUSE bypassing overhead ■

  8. QEMU Block Drivers QEMU Guest OS NFS iSCSI Backend Storage /dev/sdb /dev/sdc Gluster RBD (NFS, iSCSI, ……. Gluster, Ceph ….) KVM Host OS

  9. Related Works Network Block Device (nbd): lack of drivers and features ● Ploop (OpenVZ): Kernel-only model; also lack features ●

  10. TCM(U) TCM (aka LIO) is modularized SCSI target layer separating backend storage and ● fabrics ● TCMU handles userspace backend

  11. Solution 1: TCMU Centric QEMU handler Container TCMU NFS iSCSI Runner Gluster RBD ……. /dev/sdb /dev/sdc Tcmu loopback TCMU User TCMU Core Backend Storage (NFS, iSCSI, Host OS Gluster, Ceph ….)

  12. Solution 2: QEMU Centric QEMU Container NFS iSCSI Gluster RBD ……. libtcmu /dev/sdb /dev/sdc Backend Storage (NFS, iSCSI, Tcmu loopback TCMU User Gluster, Ceph ….) TCMU Core Host OS

  13. QEMU-TCMU Integration Status Solution 1 ● Decouple QEMU block layer from QEMU monolithic binary ○ Generate a qemu block shared library ■ Implement a QEMU block device handler for tcmu-runner ○ Create TCMU loopback device via targetcli ○ Bind mount to Docker Container ○

  14. Future Work A new standalone qemu-tcmu command ● Support it in frameworks like Kubernetes, Mesos and Docker ● ● Support it in fabrics like iSCSI, FC, NVMe-OF

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend