# AetherOS **Repository Path**: cdevel/aether-os ## Basic Information - **Project Name**: AetherOS - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-19 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AetherOS AetherOS 是一个 S3 兼容的分布式对象存储系统,用 C++ 基于 [Seastar](https://github.com/scylladb/seastar) 框架从零实现,功能与性能对标 [MinIO](https://github.com/minio/minio)。 ## 项目定位 AetherOS **不是 MinIO 的封装或 fork**,而是参考 MinIO 的功能定义和行为语义,重新设计并实现了数据平面与控制平面。我们选择这条路的初衷有两个: - 拿到 Seastar shared-nothing 分片架构在对象存储工作负载下的性能上限——每核独立事件循环、零拷贝 DMA I/O、避免跨核锁竞争 - 把整套 S3 兼容栈掌握在自己手里,方便做针对性优化和定制 ## 核心特性 - **S3 API 兼容**:AWS Signature V4、Presigned URL、POST Policy、STS,覆盖对象 / 桶 / 分段上传等核心操作 - **分布式纠删码**:Reed-Solomon(ISA-L SIMD 加速)+ 多级路由(Server Pool → Erasure Set → Disk) - **静默错误防护**:写入时计算校验和,读取时验证,防止磁盘静默数据损坏 - **加密**:SSE-C / SSE-S3 / SSE-KMS,DARE 2.0 加密封装,支持 Vault / AWS KMS - **IAM 与授权**:Root / Service Account / STS 三种身份,IAM Policy + Bucket Policy 双引擎 - **数据管理**:对象版本与锁、桶复制、站点复制、生命周期管理、分层存储 - **运维**:Admin API、Prometheus 指标、Healing、审计日志 ## 技术栈 | 组件 | 技术 | |------|------| | 异步框架 | Seastar 25.05 | | 语言 | C++20 / C++23 | | 构建 | CMake + Ninja | | 纠删码 | ISA-L | | 加密 | OpenSSL 3.x | | 元数据 | FoundationDB 7.3 | | 哈希 | HighwayHash、CRC-32C、SHA-256 | ## 快速开始 ### 依赖 - gcc-toolset-14(系统 g++ 11.5 链接不过 Seastar 的 GCC12+ 冷路径符号) - Seastar 25.05(脚本:`scripts/build-seastar-25.05.sh`) - FoundationDB 7.3(服务端 + 客户端 `fdbcli`) - OpenSSL 3.x、ISA-L、HighwayHash、zstd、pugixml、RapidJSON ### 构建 ```sh . /opt/rh/gcc-toolset-14/enable rm -rf build && mkdir build && cd build CC=/opt/rh/gcc-toolset-14/root/usr/bin/gcc \ CXX=/opt/rh/gcc-toolset-14/root/usr/bin/g++ \ cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug .. ninja ``` 产物是 `build/aether-os`。带单元测试构建加 `-DAETHER_BUILD_TESTS=ON`。 ### 单节点启动 ```sh mkdir -p /tmp/aether-data ./build/aether-os \ --address 0.0.0.0 --port 9000 \ --data-dir /tmp/aether-data \ --access-key minioadmin --secret-key minioadmin123 \ --meta-store fdb ``` ⚠️ 单节点 demo 用 `minioadmin` 凭证仅为本机试用。生产部署走 systemd,env 文件会强制校验凭证非默认值。完整部署流程见 [部署与运维](docs/deployment/operations.zh.md)。 ### 验证 ```sh # 健康检查 curl http://localhost:9000/minio/health/live # 用 aws-cli 或 s3cmd 操作 aws --endpoint http://localhost:9000 s3 mb s3://test-bucket aws --endpoint http://localhost:9000 s3 cp README.md s3://test-bucket/ aws --endpoint http://localhost:9000 s3 ls s3://test-bucket/ ``` 仓库还自带 smoke 脚本:`tests/s3_api_smoke.py`、`tests/s3_consistency_smoke.py`。 ## 性能基线 在与 MinIO 同条件的 benchmark 中(64KiB 对象、1600 请求、128 并发),AetherOS 在 PUT/GET 的 keep-alive 与 new-connection 两种模式下,吞吐中位与 p99 中位均领先 MinIO。详细数据见 [`docs/specs/2026-06-19-aetheros-object-storage-design.md`](docs/specs/2026-06-19-aetheros-object-storage-design.md) 的 1.3 节。 ## 文档 - [架构概览](docs/architecture/overview.zh.md) — 分层、Seastar 分片、纠删码路径、Grid RPC、IAM - [部署与运维](docs/deployment/operations.zh.md) — systemd、FDB、三节点部署、生产 profile、排错 - [开发者指南](docs/development/contributing.zh.md) — 开发环境、加新 S3 操作、测试与代码规范 - [CLI 参数参考](docs/reference/cli.zh.md) — 全部 60 个启动参数 - [术语表](docs/reference/glossary.zh.md) — 跨文档术语对照 - [完整功能规范](docs/specs/2026-06-19-aetheros-object-storage-design.md) — S3 API、IAM、纠删码、加密、Admin API 等 - [文档总索引](docs/README.md) 英文文档见 [README.en.md](README.en.md)。 ## 致谢 AetherOS 的设计大量参考了 [MinIO](https://github.com/minio/minio) 项目——从 S3 API 的行为语义、IAM 策略语法、纠删码布局,到磁盘上的 `xl.meta` 格式和 DARE 加密封装,都能看到 MinIO 的影子。MinIO 用 Go 实现并开源了这套生产级的 S3 兼容对象存储,证明了这一架构的可行性,也为后来者提供了清晰的参考蓝图。 AetherOS 没有 fork MinIO 的代码,而是用 C++ 在 Seastar 上重新实现了对标的接口与行为,目的在于探索 Seastar shared-nothing 架构在对象存储场景下的性能边界。我们在此向 MinIO 团队及社区致以谢意;MinIO 的源码与文档在 AetherOS 的设计与实现过程中是重要的学习材料。同样感谢 [Seastar](https://github.com/scylladb/seastar)、[ScyllaDB](https://github.com/scylladb/scylladb) 团队提供的异步框架,以及 [ISA-L](https://github.com/intel/isa-l)、[HighwayHash](https://github.com/google/highwayhash)、[FoundationDB](https://github.com/apple/foundationdb) 等开源项目。 ## License 见 [LICENSE](LICENSE)。