Skip to content

Commit 21d7bc8

Browse files
Muyan0828licheng
andauthored
add ceph planning doc (#611)
* add ceph planning doc --------- Co-authored-by: licheng <chengli@alauda.io>
1 parent 6d3b0a1 commit 21d7bc8

3 files changed

Lines changed: 273 additions & 2 deletions

File tree

docs/en/storage/storagesystem_ceph/architecture.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
weight: 20
2+
weight: 14
33
---
44

55

docs/en/storage/storagesystem_ceph/installation/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
weight: 15
2+
weight: 20
33
category: index
44
i18n:
55
title:
Lines changed: 271 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,271 @@
1+
---
2+
title: Planning Your Deployment
3+
weight: 12
4+
author: chengli@alauda.io
5+
category: concept
6+
queries:
7+
- ceph distributed storage planning guide
8+
- acp ceph deployment requirements
9+
- plan distributed storage deployment
10+
---
11+
12+
# Planning Your Deployment
13+
14+
This topic provides a planning checklist for deploying Ceph distributed storage on Alauda Container Platform (ACP). It summarizes architecture choices, security options, infrastructure sizing, network constraints, and disaster recovery considerations so that you can decide on a deployment model before performing the actual installation.
15+
16+
For product background, see [Introduction](./intro.mdx) and [Architecture](./architecture.mdx). For deployment procedures, see the documents under [Install](./installation/index.mdx) and [How To](./how_to/index.mdx).
17+
18+
## Deployment Architecture
19+
20+
ACP distributed storage is based on Ceph and Rook. At a high level, the platform combines the following layers:
21+
22+
- Ceph daemons such as MON, MGR, OSD, MDS, and RGW to provide block, file, and object storage capabilities
23+
- Rook and CSI components to automate deployment, provisioning, expansion, and lifecycle management
24+
- ACP platform integration to expose storage pools, observability, and operational entry points
25+
26+
Before deployment, decide whether your environment should use storage services from the local cluster or consume storage from an external Ceph environment.
27+
28+
### Internal and External Deployment Models
29+
30+
You can plan ACP distributed storage in one of the following ways:
31+
32+
| Deployment pattern | Where storage services run | Who manages the storage cluster | Best fit | Key tradeoff |
33+
| :--- | :--- | :--- | :--- | :--- |
34+
| Internal, co-resident | Ceph components run on the same ACP worker nodes that also run business workloads | The ACP platform team or cluster admin | Early-stage environments, bare metal clusters, or situations where storage requirements are not fully clear yet | Simpler rollout, but resource contention between apps and storage is more likely |
35+
| Internal, dedicated nodes | Ceph components run on dedicated storage or infrastructure nodes inside the same ACP cluster | The ACP platform team or cluster admin | Production environments with predictable storage demand and stricter isolation requirements | Better operational isolation and sizing control, but requires more reserved nodes and capacity planning |
36+
| External | ACP consumes storage classes from an external Ceph environment | A separate storage team, SRE team, or an existing external storage owner | Large-scale environments, multiple consumer clusters, or organizations that already operate a separate Ceph cluster | Clear ownership boundary, but more cross-cluster networking, authentication, and dependency management |
37+
38+
Internal deployment is easier to roll out and manage because storage services and the consuming workloads are planned within the same ACP environment. Within internal deployment, the first design choice is whether storage should share nodes with business workloads or use dedicated nodes. External deployment is better when you need stronger separation between storage and application clusters or when multiple business clusters need to share the same storage backend.
39+
40+
The main planning decision points are:
41+
42+
- Choose co-resident deployment when you want faster rollout and can tolerate storage and application workloads sharing the same worker pool.
43+
- Choose dedicated-node deployment when storage demand is known and you want clearer capacity control, fault isolation, and maintenance boundaries.
44+
- Choose external deployment when storage is already managed elsewhere or when a single external cluster must serve multiple ACP clusters.
45+
46+
### Node Roles
47+
48+
When planning node placement, separate the responsibilities of control plane nodes, infrastructure nodes, and worker nodes:
49+
50+
- Control plane nodes maintain cluster management functions and should not be treated as general-purpose storage nodes unless the deployment model explicitly supports it.
51+
- Infrastructure nodes are suitable when you want to isolate storage platform components from business workloads.
52+
- Worker nodes can host storage services in co-resident deployments, but this increases resource contention between applications and storage daemons.
53+
54+
For production use, plan at least three failure domains for highly available storage services. Spread storage nodes across racks, zones, or host groups wherever possible.
55+
56+
## Security Considerations
57+
58+
Before deployment, confirm whether encryption in transit is required for the storage design and validate the operational impact before enabling it.
59+
60+
### Encryption in Transit
61+
62+
ACP currently supports encryption in transit for Ceph distributed storage. This feature protects traffic between Ceph components and clients and is typically planned around Ceph `msgr2` and the cluster networking model.
63+
64+
Before enabling in-transit encryption, verify:
65+
66+
- Kernel and operating system support on storage and client nodes
67+
- Expected CPU overhead on busy storage nodes
68+
- Throughput and latency impact on the target hardware
69+
70+
For implementation details, see [Configure in-transit encryption](./how_to/in-transit-encryption.mdx).
71+
72+
## Infrastructure Requirements
73+
74+
### Minimum and Recommended Configuration
75+
76+
Plan node count, storage devices, and available resources before creating the cluster.
77+
78+
| Item | Minimum configuration | Recommended configuration |
79+
| :--- | :--- | :--- |
80+
| Storage nodes | 3 nodes | 3 or more nodes distributed across failure domains |
81+
| Storage devices | 1 available storage device per node | Multiple dedicated devices per node, with consistent type and size |
82+
| Node distribution | 3 nodes available to host Ceph services | 3 failure domains such as racks or zones |
83+
| Device usage | Separate system disk and storage disk | Dedicated raw disks for Ceph data and future expansion headroom |
84+
85+
At minimum, the cluster should have three nodes and one usable storage device on each node. For production use, deploy the cluster across at least three failure domains and reserve enough free resources to absorb rebalance, repair, and future growth.
86+
87+
### Resource Sizing
88+
89+
Ceph storage services consume CPU, memory, and device capacity continuously. Plan resources for storage daemons first, then reserve additional headroom for recovery, rebalance, upgrades, and background tasks.
90+
91+
As a baseline:
92+
93+
- Start with at least three storage nodes for a highly available cluster
94+
- Reserve enough CPU and memory for MON, MGR, OSD, and any enabled MDS or RGW services
95+
- Keep growth headroom for new pools, additional devices, and cluster recovery events
96+
- Avoid planning a cluster that is already near saturation at day one
97+
98+
If your design uses dedicated storage nodes, resource planning is more predictable. If storage runs together with business workloads, reserve extra headroom to absorb contention during peak load and node failures.
99+
100+
### Aggregate Cluster Planning Budget
101+
102+
For early sizing, start from an aggregate cluster budget rather than from per-component values alone. The following table is intended as a planning reference for a three-node highly available cluster before workload-specific tuning:
103+
104+
| Deployment pattern | Aggregate CPU to reserve for storage | Aggregate memory to reserve for storage | Notes |
105+
| :--- | :--- | :--- | :--- |
106+
| Internal, minimum baseline | 24 logical CPUs | 72 GiB | Entry-level three-node planning baseline when only the minimum deployment target is being met |
107+
| Internal, standard baseline | 30 logical CPUs | 72 GiB | Better starting point for general production planning and future expansion |
108+
| Internal, performance-oriented baseline | 45 logical CPUs | 96 GiB | Suitable when higher throughput or lower latency is required from the beginning |
109+
| External consumer cluster | Size for connectivity and client access only | Size for connectivity and client access only | Storage daemons run outside the ACP cluster, so the ACP cluster mainly needs network reachability, credentials, and client-side capacity |
110+
111+
These values should be treated as cluster-level planning targets, not exact scheduler reservations. To estimate per-node budget for a three-node cluster, divide the aggregate numbers evenly across the participating storage nodes.
112+
113+
The following recommendations are suitable for early planning:
114+
115+
| Component | Recommended CPU | Recommended memory |
116+
| :--- | :--- | :--- |
117+
| MON | 2 cores | 3 GiB |
118+
| MGR | 3 cores | 4 GiB |
119+
| MDS | 3 cores | 8 GiB |
120+
| RGW | 2 cores | 4 GiB |
121+
| OSD | 4 cores | 8 GiB |
122+
123+
These values are planning references rather than hard scheduling guarantees. Actual requirements depend on the number of devices, enabled services, and workload intensity.
124+
125+
### How to Estimate Cluster Size
126+
127+
Use the following order when sizing a cluster:
128+
129+
1. Choose the deployment pattern: co-resident, dedicated-node, or external.
130+
2. Determine the minimum node count and failure-domain layout.
131+
3. Decide whether block, file, object, or mixed storage services are required.
132+
4. Start from the aggregate cluster planning budget.
133+
5. Add headroom for additional device sets, recovery, monitoring, and expected growth.
134+
135+
If file and object services are both required, or if the cluster will host heavy business workloads at the same time, size above the minimum baseline rather than directly at it.
136+
137+
### Pod Placement
138+
139+
Pod placement rules directly affect resilience. Plan the cluster so that:
140+
141+
- Highly available components can be spread across different failure domains
142+
- Every failure domain has accessible storage devices and enough allocatable resources
143+
- New device sets or future expansion can still follow the same placement pattern
144+
145+
In practice, this means that simply having three nodes is not enough. The nodes also need to be distributed in a way that avoids a single rack, host group, or zone becoming a single point of failure.
146+
147+
### Storage Device Planning
148+
149+
When selecting storage devices, standardize device size and class as much as possible. Mixed devices complicate performance tuning and capacity planning.
150+
151+
Use the following principles:
152+
153+
- Reserve one system disk for the operating system and separate storage devices for Ceph data
154+
- Prefer raw disks or dedicated devices instead of partitioning shared disks
155+
- Keep device counts per node at a manageable level so that recovery and maintenance remain practical
156+
- Track usable capacity rather than raw capacity because replication reduces effective storage space
157+
158+
Capacity planning should also include alert thresholds and expansion policy. Plan expansion before the cluster reaches a near-full state. Running close to full capacity increases rebalance pressure and makes recovery harder.
159+
160+
For related operational guidance, see [Managing Storage Pools](./functions/pool_management.mdx) and [Adding Devices/Device Classes](./functions/device_class.mdx).
161+
162+
### Capacity Planning
163+
164+
When planning cluster capacity, calculate usable capacity rather than raw disk capacity. In a replicated Ceph deployment, a portion of raw storage is always consumed by data protection.
165+
166+
Use the following planning principles:
167+
168+
- Keep available capacity ahead of expected business growth instead of expanding only after the cluster is almost full
169+
- Reserve additional headroom for recovery, rebalance, snapshots, and temporary bursts in data usage
170+
- Expand storage in a balanced way across nodes and failure domains so that new capacity does not create skewed utilization
171+
- Review both current utilization and projected growth before adding new workloads to the cluster
172+
173+
The following examples can be used as early planning references for a three-node cluster with one device per node and a 3-replica data protection policy:
174+
175+
| Device size per node | Raw cluster capacity | Approximate usable capacity with 3 replicas |
176+
| :--- | :--- | :--- |
177+
| 0.5 TiB | 1.5 TiB | 0.5 TiB |
178+
| 2 TiB | 6 TiB | 2 TiB |
179+
| 4 TiB | 12 TiB | 4 TiB |
180+
181+
These values are examples only. Usable capacity varies with the actual data protection policy and should not be treated as a general rule for every cluster design.
182+
183+
In day-two operations, capacity should be reviewed before the cluster reaches warning levels. If growth is predictable, expand early rather than waiting for a near-full or full condition.
184+
185+
## Network Requirements
186+
187+
Ceph is sensitive to network quality. Before deployment, validate the following:
188+
189+
- The cluster network can provide stable throughput for replication and recovery traffic
190+
- Latency between failure domains is within the supported range for the selected deployment model
191+
- Required ports are open between storage nodes and consuming clusters
192+
- Any dedicated network design, such as Multus-based separation, is decided in advance
193+
194+
If you plan to isolate storage traffic from general application traffic, confirm the network interfaces, routing policy, and operational ownership before deployment. Network isolation improves security and performance, but it also increases design complexity.
195+
196+
### IPv6 Support
197+
198+
ACP distributed storage planning must follow the cluster network stack selected for the platform.
199+
200+
- IPv6 is supported in single-stack IPv6 environments.
201+
- Dual-stack planning must be validated against the ACP cluster network design before storage deployment.
202+
- Storage nodes and client nodes should use the same address family strategy to avoid connectivity and service discovery issues.
203+
204+
If your environment uses IPv6, confirm the following before installation:
205+
206+
- The ACP cluster network is already configured for IPv6 operation
207+
- All storage nodes can communicate over the required IPv6 routes
208+
- Monitoring, alerting, and external integrations that access storage endpoints also support IPv6
209+
210+
IPv6 should be treated as an installation-time architecture decision. Do not assume that an existing IPv4-oriented storage design can be converted later without revalidation.
211+
212+
## Disaster Recovery Planning
213+
214+
ACP distributed storage can be planned with different recovery objectives. Choose a model based on your recovery point objective (RPO), recovery time objective (RTO), and site topology.
215+
216+
### Regional-DR
217+
218+
ACP supports Regional-DR for cross-region or cross-site disaster recovery scenarios where asynchronous replication and a small amount of potential data loss are acceptable.
219+
220+
When planning Regional-DR, confirm the following items in advance:
221+
222+
- The source and destination clusters have compatible storage and network designs
223+
- Replication latency and failover expectations match the business recovery objectives
224+
- The protected workload type is clear, such as block, file system, or object data
225+
226+
For implementation details, see [Disaster Recovery](./how_to/disaster_recovery/index.mdx).
227+
228+
### Stretch Cluster
229+
230+
A stretch cluster is appropriate only when the latency between sites is tightly controlled and the topology is designed specifically for this pattern. In general, plan for:
231+
232+
- Two data sites and one quorum or arbiter site
233+
- A minimum of five nodes across three zones
234+
- Manual and explicit failure-domain labels before cluster creation
235+
- Sufficient nodes in each data site to preserve storage service availability
236+
- Inter-zone latency that remains within a low-latency design envelope, typically no more than 10 ms RTT between the data sites
237+
238+
:::warning
239+
Do not treat a stretch cluster as a general solution for long-distance, high-latency, multi-datacenter deployment. If inter-site latency is not tightly controlled, use a dedicated disaster recovery architecture instead.
240+
:::
241+
242+
For ACP-specific stretch cluster deployment guidance, see [Create Stretch Type Cluster](./installation/create_service_extend.mdx).
243+
244+
## Performance Planning
245+
246+
Performance should be planned from workload characteristics rather than from raw device counts alone. Before deployment, identify:
247+
248+
- Whether the primary workloads are block, file, or object oriented
249+
- Whether the workload is latency sensitive, throughput sensitive, or capacity heavy
250+
- Whether hot data, backup traffic, or analytics jobs will dominate the cluster
251+
252+
Also confirm whether special tuning or feature-specific design is required. For example, object workloads may need separate planning for gateway capacity, and some environments may require cache-oriented or dedicated-cluster designs.
253+
254+
## Next Steps
255+
256+
After you complete planning, proceed to the deployment guide that matches your selected deployment model:
257+
258+
### Internal deployment
259+
260+
- For a co-resident deployment, see [Create Standard Type Cluster](./installation/create_service_stand.mdx).
261+
- For a stretch-cluster deployment, see [Create Stretch Type Cluster](./installation/create_service_extend.mdx).
262+
- For a dedicated-node deployment, see [Configure a Dedicated Cluster for Distributed Storage](./how_to/dedicated_cluster.mdx).
263+
264+
### External deployment
265+
266+
- To consume storage services from another cluster or an external Ceph environment, see [Accessing Storage Services](./functions/access_storage_service.mdx).
267+
268+
### Related follow-up configuration
269+
270+
- To enable encrypted network traffic for deployed storage services, see [Configure in-transit encryption](./how_to/in-transit-encryption.mdx).
271+
- To configure disaster recovery after deployment, see [Disaster Recovery](./how_to/disaster_recovery/index.mdx).

0 commit comments

Comments
 (0)