Garage
为自托管构建的地理分布式 S3 兼容对象存储系统
安装次数
点赞
应用评论
催更次数
桌面端
移动端


应用描述
# Garage - 懒猫云的 S3 兼容对象存储 为自托管构建的地理分布式 S3 兼容对象存储系统。 ## 概述 Garage 是一个轻量级的分布式对象存储系统,实现了 S3 API。此软件包包含: - **Garage 服务器**:支持多节点的 S3 兼容对象存储 - **Web UI**:用于 bucket、密钥和集群管理的管理界面 ## 功能特性 - S3 兼容 API(兼容 AWS SDK 和工具) - 支持自动复制的地理分布式架构 - 支持静态网站托管 - 内置键值存储(K2V API) - 轻量且资源高效 - 简单的集群管理 ## 开放端口 | 端口 | 服务 | 描述 | |------|---------|-------------| | 3900 | S3 API | 主要的 S3 兼容 API 端点 | | 3901 | RPC | 内部集群通信 | | 3902 | Web | 静态网站托管端点 | | 3903 | K2V API | K2V API 端点 | | 3904 | Admin API | 集群管理和指标 | | 3909 | Web UI | Garage 的 Web UI | ## 初始化设置 部署后,你需要初始化 Garage: 1. 打开 `https://garage.${BOXNAME}.heiyu.space` 2. 点开 `Cluster` tab,点击 node 旁边的三个竖点,点击 `Assign` ,配置好 3. 点开 `Buckets` tab,创建 bucket 并配置好 ## 自定义配置 打开懒猫微服 App ,点击 Garage 右上角三个点打开菜单,点击“应用详情”,在“环境变量”里添加环境变量`GARAGE_CONFIG_FILE` ,指向自己修改过的配置文件(比如指向 `/lzcapp/var/garage.toml` ,这样其实配置文件就在 `/data/appvar/com.c4605.garage/garage.toml` ) 或者使用 [`compose override`](https://developer.lazycat.cloud/advanced-compose-override.html) 功能来 override volume 到 `...:/etc/garage.toml` ## 多节点集群配置 如果你想部署多节点 Garage 集群以实现数据冗余和高可用,可以看接下来的说明,或者参考官方文档 https://garagehq.deuxfleurs.fr/documentation/cookbook/real-world/ ### 前置要求 - 至少 2 个设备(推荐 3 个或更多) - 所有节点之间网络可互通(3901 端口) - 所有节点使用相同的 `rpc_secret`(在安装时配置) ### 配置步骤 #### 1. 在第一个节点上获取节点 ID 在第一个节点上安装并启动 Garage 后,通过 Garage UI 或者 garage 命令获取 Node ID。示例: ``` 563e1ac825ee3323aa441e72c26d1030d6d4414aeb3dd25287c531e7fc2bc95d ``` #### 2. 配置 RPC 公开地址 确保 `garage.toml` 中的 `rpc_public_addr` 设置为节点的实际可访问地址: ```toml rpc_bind_addr = "[::]:3901" rpc_public_addr = "192.168.1.10:3901" # 修改为节点的实际 IP ``` #### 3. 创建集群布局 打开任意一个节点的 Web UI 的 Cluster tab ,点击 Connect 按钮,连接上所有其他节点,节点名称格式为: `<node public key>@<node public IP or hostname>:<port>` 。连接好后点击节点旁边的三个圆点,点击 assign ,完成配置。 也可以用 garage 命令配置: ```bash # 连接所有节点 garage node connect "<node public key>@<node public IP or hostname>:<port>" # ... # 查看所有节点状态 garage status # 为每个节点分配角色(以 3 节点为例) garage layout assign -z dc1 -c 10G <node1_id> garage layout assign -z dc2 -c 10G <node2_id> garage layout assign -z dc3 -c 10G <node3_id> # 应用布局 garage layout apply --version 1 ``` ### 集群配置说明 - **Zone(-z)**:节点所在的区域/数据中心标识符 - 同一区域的节点通常位于相同的物理位置 - Garage 会尽量将副本分布在不同的 zone - **Capacity(-c)**:节点的存储容量 - 使用 SI 单位:G(GB)、T(TB) - 示例:`10G`、`500G`、`1T` ### 验证集群状态 ```bash # 查看集群状态 garage status # 查看集群布局 garage layout show ``` 所有节点应显示为 `HEALTHY` 且角色已分配。 ### 注意事项 ⚠️ **重要提示**: - 所有节点必须使用**相同的** `rpc_secret` - 确保防火墙允许 3901 端口(RPC 通信) ## 使用 S3 客户端 ### AWS CLI ```bash aws configure set aws_access_key_id <YOUR_ACCESS_KEY> aws configure set aws_secret_access_key <YOUR_SECRET_KEY> aws --endpoint-url "https://garage.${BOXNAME}.heiyu.space:3900" s3 ls ``` ### s3cmd ```bash s3cmd --host=garage-host:3900 --host-bucket="https://garage.${BOXNAME}.heiyu.space:3900" ls ``` ## 存储位置 - 元数据:`/data/appvar/com.c4605.garage/meta` - 数据:`/data/appvar/com.c4605.garage/data` - 配置:`/data/appvar/com.c4605.garage/garage.toml` ## 文档 - 官方文档:https://garagehq.deuxfleurs.fr/documentation/ - 快速入门:https://garagehq.deuxfleurs.fr/documentation/quick-start/ - S3 API:https://garagehq.deuxfleurs.fr/documentation/reference-manual/s3-compatibility/ ## 许可证 AGPL-3.0(Garage 项目) ## 链接 - Garage 主页:https://garagehq.deuxfleurs.fr/ - 源代码:https://git.deuxfleurs.fr/Deuxfleurs/garage - Web UI:https://github.com/khairul169/garage-webui
懒猫评分/评论
0.0
0 条评论
应用信息
新功能
版本历史记录""
此 App 尚未收到足够的评分或评论,无法显示评论列表。