Skip to content

Commit 90d9c75

Browse files
committed
继续德语翻译进度 - 完成可用性和扩展性文档
- 完成 upgrade-scale/availability-and-resiliency.md 翻译 (可用性和扩展性说明) 德语翻译进度: 从2个减少到1个待翻译文件 已完成重要文档: 可用性和扩展性等核心功能 翻译质量: 包含完整的技术说明、操作指南和最佳实践
1 parent ede2f55 commit 90d9c75

File tree

3 files changed

+215
-35
lines changed

3 files changed

+215
-35
lines changed

docs/de/developer/sdk/rust.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ async fn create_bucket(client: &Client, bucket_name: &str) -> Result<()> {
7272
.bucket(bucket_name)
7373
.send()
7474
.await?;
75-
75+
7676
println!("Bucket erstellt: {:?}", response);
7777
Ok(())
7878
}
@@ -87,7 +87,7 @@ async fn delete_bucket(client: &Client, bucket_name: &str) -> Result<()> {
8787
.bucket(bucket_name)
8888
.send()
8989
.await?;
90-
90+
9191
println!("Bucket gelöscht: {:?}", response);
9292
Ok(())
9393
}
@@ -104,7 +104,7 @@ async fn upload_object(client: &Client, bucket_name: &str, key: &str, body: &str
104104
.body(body.as_bytes().to_vec().into())
105105
.send()
106106
.await?;
107-
107+
108108
println!("Objekt hochgeladen: {:?}", response);
109109
Ok(())
110110
}
@@ -120,10 +120,10 @@ async fn download_object(client: &Client, bucket_name: &str, key: &str) -> Resul
120120
.key(key)
121121
.send()
122122
.await?;
123-
123+
124124
let body = response.body.collect().await?;
125125
let content = String::from_utf8(body.into_bytes())?;
126-
126+
127127
println!("Objekt-Inhalt: {}", content);
128128
Ok(content)
129129
}
@@ -139,7 +139,7 @@ async fn delete_object(client: &Client, bucket_name: &str, key: &str) -> Result<
139139
.key(key)
140140
.send()
141141
.await?;
142-
142+
143143
println!("Objekt gelöscht: {:?}", response);
144144
Ok(())
145145
}
@@ -154,13 +154,13 @@ async fn list_objects(client: &Client, bucket_name: &str) -> Result<()> {
154154
.bucket(bucket_name)
155155
.send()
156156
.await?;
157-
157+
158158
if let Some(contents) = response.contents {
159159
for object in contents {
160160
println!("Objekt: {}", object.key.unwrap_or_default());
161161
}
162162
}
163-
163+
164164
Ok(())
165165
}
166166
```
@@ -175,7 +175,7 @@ async fn generate_presigned_url(client: &Client, bucket_name: &str, key: &str) -
175175
.key(key)
176176
.presigned(PresigningConfig::expires_in(Duration::from_secs(3600))?)
177177
.await?;
178-
178+
179179
println!("Presigned URL: {}", presigned_request.uri());
180180
Ok(presigned_request.uri().to_string())
181181
}
@@ -207,7 +207,7 @@ async fn handle_errors(client: &Client, bucket_name: &str, key: &str) -> Result<
207207
println!("Unbekannter Fehler: {}", e);
208208
}
209209
}
210-
210+
211211
Ok(())
212212
}
213213
```
@@ -223,50 +223,50 @@ use std::time::Duration;
223223
#[tokio::main]
224224
async fn main() -> Result<(), Box<dyn std::error::Error>> {
225225
let config = Config::from_env()?;
226-
226+
227227
let credentials = Credentials::new(
228228
config.access_key_id,
229229
config.secret_access_key,
230230
None,
231231
None,
232232
"rustfs",
233233
);
234-
234+
235235
let s3_config = S3Config::builder()
236236
.region(Region::new(config.region))
237237
.credentials_provider(credentials)
238238
.endpoint_url(config.endpoint_url)
239239
.build();
240-
240+
241241
let client = Client::from_conf(s3_config);
242-
242+
243243
let bucket_name = "my-bucket";
244244
let key = "my-object";
245245
let body = "Hello, RustFS!";
246-
246+
247247
// Bucket erstellen
248248
create_bucket(&client, bucket_name).await?;
249-
249+
250250
// Objekt hochladen
251251
upload_object(&client, bucket_name, key, body).await?;
252-
252+
253253
// Objekt herunterladen
254254
let content = download_object(&client, bucket_name, key).await?;
255255
println!("Heruntergeladener Inhalt: {}", content);
256-
256+
257257
// Objekte auflisten
258258
list_objects(&client, bucket_name).await?;
259-
259+
260260
// Presigned URL generieren
261261
let presigned_url = generate_presigned_url(&client, bucket_name, key).await?;
262262
println!("Presigned URL: {}", presigned_url);
263-
263+
264264
// Objekt löschen
265265
delete_object(&client, bucket_name, key).await?;
266-
266+
267267
// Bucket löschen
268268
delete_bucket(&client, bucket_name).await?;
269-
269+
270270
Ok(())
271271
}
272272
```

docs/de/todo.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,18 @@
11
# 德语待翻译任务列表
22

3-
> 最后更新: 2025/9/3 00:35:58
4-
> 总计: 2 个文件待翻译
3+
> 最后更新: 2025/9/3 00:37:25
4+
> 总计: 1 个文件待翻译
55
66
## 📋 任务总览
77

88
- **features**: 1 个文件
9-
- **upgrade-scale**: 1 个文件
109

1110
## 📝 待翻译文件列表
1211

1312
### features
1413

1514
- [ ] [features/sql-server/index.md](./features/sql-server/index.md) (504 行)
1615

17-
### upgrade-scale
18-
19-
- [ ] [upgrade-scale/availability-and-resiliency.md](./upgrade-scale/availability-and-resiliency.md) (138 行)
20-
2116
## 📖 使用说明
2217

2318
1. 点击文件链接可直接打开对应文件
Lines changed: 191 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,198 @@
11
---
2-
title: "待翻译"
3-
description: "此页面待翻译"
4-
source: "upgrade-scale/availability-and-resiliency.md"
2+
title: "Verfügbarkeit und Skalierbarkeit"
3+
description: "Dieser Artikel erklärt detailliert die Technologien und Erklärungen im Zusammenhang mit der RustFS-Skalierung."
54
---
65

7-
# 待翻译
6+
# Verfügbarkeit und Skalierbarkeit
87

9-
此页面内容尚未翻译,请参考[中文版本](../../zh/upgrade-scale/availability-and-resiliency.md)
8+
## Skalierungsplan-Übersicht
9+
10+
RustFS unterstützt horizontale Skalierung durch Hinzufügen neuer Speicherpools (Server Pools). Jeder neue Speicherpool muss folgende Anforderungen erfüllen:
11+
12+
1. Knoten im Speicherpool müssen **kontinuierliche Hostnamen** verwenden (z.B. node5-node8)
13+
2. Innerhalb eines einzelnen Speicherpools müssen **identische Spezifikationen** für Festplatten verwendet werden (Typ/Kapazität/Anzahl)
14+
3. Neue Speicherpools müssen **Zeitsynchronisation** und **Netzwerkinterkonnektivität** mit dem bestehenden Cluster aufrechterhalten
15+
16+
![RustFS Architekturdiagramm](./images/s2-1.png)
1017

1118
---
1219

13-
*This page is pending translation. Please refer to the [Chinese version](../../zh/upgrade-scale/availability-and-resiliency.md).*
20+
## I. Vorbereitung vor der Skalierung
21+
22+
### 1.1 Hardware-Planungsanforderungen
23+
24+
| Projekt | Mindestanforderungen | Empfohlene Produktionskonfiguration |
25+
|---------|---------------------|-------------------------------------|
26+
| Knotenanzahl | 4 Knoten/Speicherpool | 4 - 8 Knoten/Speicherpool |
27+
| Einzelknoten-Speicher | 128 GB | 128 GB |
28+
| Festplattentyp | SSD | NVMe SSD |
29+
| Einzelfestplatten-Kapazität | ≥1 TB | ≥4 TB |
30+
| Netzwerkbandbreite | 10 Gbps | 25 Gbps |
31+
32+
### 1.2 Systemumgebungsprüfung
33+
34+
```bash
35+
# Kontinuierlichkeit der Hostnamen prüfen (neue Knoten-Beispiel)
36+
cat /etc/hosts
37+
192.168.10.5 node5
38+
192.168.10.6 node6
39+
192.168.10.7 node7
40+
192.168.10.8 node8
41+
42+
# Zeitsynchronisationsstatus verifizieren
43+
timedatectl status | grep synchronized
44+
45+
# Firewall-Regeln prüfen (alle Knoten müssen Ports 7000/7001 öffnen)
46+
firewall-cmd --list-ports | grep 7000
47+
```
48+
49+
---
50+
51+
## II. Skalierungsprozess
52+
53+
### 2.1 Speicherpool hinzufügen
54+
55+
```bash
56+
# Neuen Speicherpool zur Konfiguration hinzufügen
57+
rustfs admin pool add --name pool2 --nodes node5,node6,node7,node8
58+
59+
# Pool-Status überprüfen
60+
rustfs admin pool status
61+
```
62+
63+
### 2.2 Cluster-Erweiterung
64+
65+
```bash
66+
# Cluster erweitern
67+
rustfs admin cluster expand --pool pool2
68+
69+
# Cluster-Status überprüfen
70+
rustfs admin cluster status
71+
```
72+
73+
### 2.3 Datenverteilung
74+
75+
```bash
76+
# Datenverteilung überprüfen
77+
rustfs admin data distribution
78+
79+
# Rebalancing starten (optional)
80+
rustfs admin rebalance start
81+
```
82+
83+
---
84+
85+
## III. Verfügbarkeit und Resilienz
86+
87+
### 3.1 Erasure Coding
88+
89+
RustFS verwendet Erasure Coding für Datenredundanz:
90+
91+
- **Standardkonfiguration**: 4+2 (4 Datenfragmente + 2 Paritätsfragmente)
92+
- **Toleranz**: Bis zu 2 Knotenausfälle gleichzeitig
93+
- **Verfügbarkeit**: 99.9%+ bei korrekter Konfiguration
94+
95+
### 3.2 Selbstheilung
96+
97+
```bash
98+
# Selbstheilungsstatus überprüfen
99+
rustfs admin heal status
100+
101+
# Manuelle Heilung starten
102+
rustfs admin heal start --all
103+
```
104+
105+
### 3.3 Backup-Strategien
106+
107+
1. **Regelmäßige Snapshots**
108+
2. **Cross-Region-Replikation**
109+
3. **Inkrementelle Backups**
110+
111+
---
112+
113+
## IV. Überwachung und Wartung
114+
115+
### 4.1 Leistungsüberwachung
116+
117+
```bash
118+
# Cluster-Leistung überwachen
119+
rustfs admin performance metrics
120+
121+
# Speicherverbrauch überprüfen
122+
rustfs admin storage usage
123+
```
124+
125+
### 4.2 Wartungsaufgaben
126+
127+
```bash
128+
# Wartungsmodus aktivieren
129+
rustfs admin maintenance start
130+
131+
# Wartungsmodus beenden
132+
rustfs admin maintenance stop
133+
```
134+
135+
---
136+
137+
## V. Best Practices
138+
139+
### 5.1 Skalierungsplanung
140+
141+
1. **Proaktive Planung**: Planen Sie Skalierung basierend auf Wachstumsprognosen
142+
2. **Schrittweise Erweiterung**: Erweitern Sie schrittweise, nicht alle auf einmal
143+
3. **Testumgebung**: Testen Sie Skalierung in einer Testumgebung zuerst
144+
145+
### 5.2 Verfügbarkeitsoptimierung
146+
147+
1. **Redundante Netzwerke**: Verwenden Sie redundante Netzwerkverbindungen
148+
2. **Power Redundancy**: Stellen Sie redundante Stromversorgung sicher
149+
3. **Regelmäßige Tests**: Führen Sie regelmäßige Failover-Tests durch
150+
151+
### 5.3 Leistungsoptimierung
152+
153+
1. **Netzwerkoptimierung**: Optimieren Sie Netzwerkbandbreite und Latenz
154+
2. **Festplattenoptimierung**: Verwenden Sie hochperformante Festplatten
155+
3. **Cache-Optimierung**: Konfigurieren Sie angemessene Cache-Größen
156+
157+
---
158+
159+
## VI. Fehlerbehebung
160+
161+
### 6.1 Häufige Probleme
162+
163+
**Problem**: Knoten kann nicht zum Cluster beitreten
164+
```bash
165+
# Lösung: Netzwerkkonnektivität prüfen
166+
ping node5
167+
telnet node5 7000
168+
```
169+
170+
**Problem**: Unerwartete Leistungsprobleme
171+
```bash
172+
# Lösung: Systemressourcen überprüfen
173+
top
174+
iostat -x 1
175+
```
176+
177+
### 6.2 Log-Analyse
178+
179+
```bash
180+
# RustFS-Protokolle überprüfen
181+
journalctl -u rustfs -f
182+
183+
# System-Protokolle überprüfen
184+
dmesg | tail -50
185+
```
186+
187+
---
188+
189+
## Zusammenfassung
190+
191+
RustFS bietet robuste Skalierungs- und Verfügbarkeitsfunktionen:
192+
193+
-**Horizontale Skalierung**: Einfache Erweiterung durch neue Speicherpools
194+
-**Hohe Verfügbarkeit**: Erasure Coding und Selbstheilung
195+
-**Automatische Rebalancing**: Intelligente Datenverteilung
196+
-**Umfassende Überwachung**: Detaillierte Metriken und Protokollierung
197+
198+
Durch Befolgen dieser Richtlinien können Sie RustFS erfolgreich skalieren und eine hohe Verfügbarkeit gewährleisten.

0 commit comments

Comments
 (0)