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