最近想用 pve 新建一个 lxc 容器,用 docker 跑私有云相册,需要读取 ntfs 格式的硬盘,通过 usb 硬盘盒连接,为了提高性能想让 lxc 容器直通硬盘,但网上只有 kvm 虚拟机的直通硬盘教程,也就是 qm set 指令,想问一下 lxc 是不是本身就不需要直通操作,因为宿主机是 pve 本身,pve 已经挂载了硬盘,所以理论上就是直通的,性能也是最大化的?

最近想用 pve 新建一个 lxc 容器,用 docker 跑私有云相册,需要读取 ntfs 格式的硬盘,通过 usb 硬盘盒连接,为了提高性能想让 lxc 容器直通硬盘,但网上只有 kvm 虚拟机的直通硬盘教程,也就是 qm set 指令,想问一下 lxc 是不是本身就不需要直通操作,因为宿主机是 pve 本身,pve 已经挂载了硬盘,所以理论上就是直通的,性能也是最大化的?
1 fkmc Feb 5, 2023 是 |
2 ex1gtnim7d OP @wccc 言简意赅的回答,谢谢! |
3 ex1gtnim7d OP @wccc 多一个 docker 应用就多建一个 lxc 容器,还是一个 lxc 容器运行 n 个 docker 好呢 |
4 des Feb 5, 2023 Nextcloud 吗?好像 Nextcloud 对 LXC 不好 |
5 HarveyLiu Feb 5, 2023 via Android lxc 理论上和 docker 属于同一个隔离度,只不过 lxc 驱动的是 cpu 里已经集成的指令集,而 docker 驱动的是寄主的操作系统。 |
6 HarveyLiu Feb 5, 2023 via Android 我做过实验,如果你的应用极度依赖 cpu ,那么 lxc 物理上更直接一点,如果是 io 应用频繁的,那么两者相差不大,也只有 3%的误差区间。 |
7 cm2gseh Feb 5, 2023 via Android @kerb15 资源上没多大区别,要看业务需求,即这几个 docker 内容是否有关联,是否经常一起 up/down 。如果是,那么建议放一起,如果不是可以分开多个 lxc ,避免出问题时一起炸了。 |
8 WinkeyLin Feb 5, 2023 via Android 不建议用 lxc 跑 docker ,嵌套虚拟化有性能问题 单独起个 alpine 虚拟机吧 |
9 FrankAdler Feb 5, 2023 pct set 143 -mp0 /mnt/down,mp=/data 可以直接映射目录 |
10 des Feb 6, 2023 via iPhone lxc 什么时候变成虚拟化了? lxc 和 docker 都是基于内核 Cgroup 及 Namespace 能力开发啊 |
11 ltkun Feb 6, 2023 via Android @WinkeyLin 用 lxc 可以在非特权容器下跑 docker 安全性更高 还有不建议用 alpine 跑 docker 没有 glibc 遇到有些应用会不兼容 发生内存泄漏 虽然概率很小 虽然我也用 alpine 来跑 docker |
12 sidkang Feb 6, 2023 专门测试过 docker 在 lxc 下的性能,平常用的各种都没发现什么问题,很好使~~ |
13 fkmc Feb 6, 2023 虽然 我也在 lxc 下跑 docker 但是我不太建议.尽量单独一个 lxc. 普通使用还是没有太大的问题的 |
14 ikidou Feb 6, 2023 via Android 我也遇到了,必须要特权容器才可以读写硬盘目录,总感觉有些膈应 |
15 ResidualBlood Feb 6, 2023 如果个人用的话 直接 PVE 宿主跑 Docker |
16 joyanhui Feb 8, 2023 lxc 你可以叫他直通,也可以叫他挂载。无论 你怎么叫,他都是你说的`理论上就是直通的,性能也是最大化的` 除了楼上说的 pct set 143 -mp0 /mnt/down,mp=/data 还有 pct set XXXX -mpXXX /dev/sda1,mp=/data 都可以直通硬盘进去。。。 甚至 你可以 lxc 跑了 smb ,然后 pve 再反向挂回来。。。。 你也可以一个硬盘 /目录 直通 /挂载 到多个 lxc 当然,lxc 内部 smart 是用不了的。pve 自己可以搞定。 |