Casaos的合并存储原理,及与1panel等其他应用安装的关系
Casaos的合并存储原理,及与1panel等其他应用安装的关系
JonyLeeJony之前写过一篇文章介绍使用PCDN盒子刷Armbian之后,如何扩展存储缓解系统EMMC存储不足的问题。
文中介绍的方法主要是使用CasaOS的合并存储功能。
因为CasaOS的管理功能比较弱,甚至文件管理连权限都不能设置,所以也提到了建议安装1panel面板进行可视化管理。
过程中就有小伙伴和我自己测试发现,CasaOS的合并存储缓解emmc容量小的办法,只在CasaOS系统下有效,实际使用1panel应用商店安装应用,默认1panel的数据目录DATA目录,还是在emmc内。
这里详细介绍一下CasaOS的合并存储原理及它和1panel面板安装应用位置之间的关系。
简单来说,CasaOS 的“合并存储”功能本身并不会直接导致你在 1Panel 中安装的应用自动使用外置存储。这两个工具的管理机制是相互独立的。
CasaOS 的“合并存储”原理
CasaOS 中的“合并存储”(通常指基于 mergerfs 这类软件实现的联合文件系统)的核心原理是逻辑聚合,物理独立。
它做了什么:mergerfs 可以将多个物理磁盘或分区上的不同目录透明地合并成一个统一的逻辑视图(一个大的虚拟目录树)。对你来说,你看到的是一个单一的存储空间。
如何工作:当你访问这个合并后的存储空间时,mergerfs 会根据一系列的策略(如现有路径、最近使用、空闲空间最多等)自动地将文件写入底层的某个物理磁盘。读取时,它也能从正确的物理磁盘中找到文件。
主要优点:
- 容量聚合:充分利用多个磁盘的总容量。
- 管理简便:无需担心单个磁盘空间不足,用户面对的是一个统一的存储池。
- 灵活扩展:可以随时增加新的磁盘到合并池中以扩容。
- 数据安全:请注意,mergerfs 本身并不提供数据冗余(除非与 SnapRAID 等工具配合使用)。如果一块磁盘损坏,该盘上的数据就会丢失。
1Panel 安装应用与存储的关系
1Panel 是一个服务器管理面板,它主要通过 Docker 来安装和管理应用。
- Docker 的存储机制:Docker 容器默认将其数据(称为“数据卷”)存储在操作系统盘的特定目录下(例如
/var/lib/docker
)。这是 Docker 自身的行为。 - 1Panel 的默认行为:在 1Panel 的应用商店中安装应用时,除非你在安装过程中手动修改了存储路径,否则这些应用的数据卷都会放在 Docker 的默认位置,即系统盘上。它不会自动识别或使用 CasaOS 设置的合并存储。
如何让 1Panel 的应用数据使用外置存储
如果你希望将 1Panel 通过 Docker 安装的应用数据存储到 CasaOS 管理的外置合并存储上,需要手动在 1Panel 中进行配置:
- 在 CasaOS 中确认合并存储的挂载路径:首先,你需要知道 CasaOS 将这个合并后的存储池挂载到了你服务器系统的哪个路径下。例如,它可能挂载在
/mnt/merged_storage
或/pool
这样的路径。 - 在 1Panel 中安装应用时自定义存储映射:
- 在 1Panel 的应用商店找到你要安装的应用,点击“安装”。
- 在安装配置页面,找到与 “持久化目录”、“数据卷”、“卷映射”或 “Volume” 相关的设置项。
- 在这里,你需要手动添加映射规则:
- 主机路径(Host Path):填写 CasaOS 合并存储在你服务器上的实际路径(例如
/mnt/merged_storage/app_data/nextcloud
)。 - 容器路径(Container Path):填写容器内部的应用数据路径(例如
/var/www/html
)。这个路径取决于具体应用。
- 主机路径(Host Path):填写 CasaOS 合并存储在你服务器上的实际路径(例如
下面用 docker compose 文件例子,展示如何通过 Volume 映射将容器数据存储到外部存储:
1 | version: '3' |
- 原理:这利用了 Docker 的
bind mount
功能,将宿主机的目录(你外置存储的路径)直接映射到容器内部。这样,容器运行时产生的所有数据都会读写到你指定的外置硬盘上。
重要注意事项
- 路径必须正确:确保你在 1Panel 中配置的“主机路径”真实存在并且有正确的读写权限。
- 独立性:CasaOS 和 1Panel 是两个独立的软件。CasaOS 提供了底层的存储聚合功能,而 1Panel 则需要你主动地、显式地去使用这些聚合后的存储空间。
- 目的不同:CasaOS 的合并存储主要用于管理你的个人文件、媒体库等。而让 1Panel (Docker) 使用外置存储,主要是为了避免应用数据(如数据库、配置文件、下载内容)撑满系统盘。
总结
- CasaOS 的合并存储:其原理是通过 mergerFS 等工具将多个物理磁盘逻辑上合并为一个统一的存储池,方便你管理文件,但不会自动改变 1Panel 或 Docker 应用默认的数据存储位置。
- 1Panel 安装应用:默认情况下,应用数据会存储在系统盘。如果你想存放到 CasaOS 管理的外置合并存储池上,必须在 1Panel 安装或配置每个应用时,手动设置
Volume
映射,将容器内的数据路径指向合并存储池的实际物理路径。 - Docker目录迁移:还有一些小伙伴直接使用命令行或者1panel面板的容器管理功能安装Docker应用,默认也是在系统盘emmc位置,如果需要用到这种安装方式,可以迁移Docker目录,详见这篇文章:👉Docker目录乾坤大挪移,拯救你的NAS系统存储空间!