HUAWEI CLOUD DCS → STACKIT VALKEY · HANDLEIDING
Huawei DCS Redis naar STACKIT Valkey
Een DCS-instance wordt een Key Value Store-instance op basis van Valkey. De data verhuist niet vanzelf, en de kopieermethode die STACKIT voor Redis documenteert, leunt op een commando dat DCS uitschakelt. Deze handleiding beoordeelt een kleine DCS-omgeving, laat zien wat StackToIT noemt en wat het openlaat, en loopt een kopie met vergelijking door die u vóór de cutover test.
Twee DCS-instances, beoordeeld
Een kleine Huawei Cloud-omgeving, voor deze pagina geschreven en op 4 november 2026 door StackToIT beoordeeld: een hoogbeschikbare sessiecache en een job-cache met één node. Links de twee DCS-blokken uit de invoer, rechts het resultaat dat voor de sessiecache is vastgelegd: een fragment van assessment.json met de waarden zoals de run ze schreef.
resource "huaweicloud_dcs_instance" "sessions" {
name = "web-sessions"
engine = "Redis"
engine_version = "6.0"
capacity = 4
flavor = "redis.ha.xu1.large.r2.4"
availability_zones = ["eu-west-101a", "eu-west-101b"]
password = var.redis_password
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.data.id
backup_policy {
backup_type = "auto"
save_days = 3
backup_at = [1, 3, 5, 7]
begin_at = "02:00-04:00"
}
whitelists {
group_name = "app-servers"
ip_address = ["10.40.1.0/24"]
}
}
resource "huaweicloud_dcs_instance" "queue_cache" {
name = "job-cache"
engine = "Redis"
engine_version = "5.0"
capacity = 2
flavor = "redis.single.xu1.large.2"
availability_zones = ["eu-west-101a"]
password = var.redis_password
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.data.id
}{
"id": "huaweicloud_dcs_instance.sessions",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Key Value Store (Valkey)",
"resources": [
"stackit_valkey_instance",
"stackit_valkey_credential"
]
},
"reason": "A DCS instance becomes a Valkey instance. The application changes its endpoint and credentials; check the engine and version in use, since a Memcached instance needs a client change."
}
}Beide worden Valkey
Beide instances krijgen de klasse RECONFIGURE met zekerheidsniveau MEDIUM en komen uit op STACKIT Key Value Store (Valkey). De applicatie wijzigt zijn endpoint en inloggegevens; de engine en versie die in gebruik zijn, bepalen of ook een client moet veranderen.
Instellingen genoemd, niet overgenomen
De sessiecache noemt 15 instellingen voor uw platformteam: engine, engine_version, capacity, flavor, de twee availability zones, het wachtwoord, de netwerkverwijzingen, vier backup_policy-waarden en de twee whitelist-waarden. De job-cache noemt er negen.
Eerst het netwerk
De run ordent de omgeving in drie golven: de VPC, dan het subnet, dan beide caches. Maak het STACKIT-netwerk aan vóór de Valkey-instances.
Een Terraform-concept ter beoordeling
StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen. De vier eenheden hebben een eigenaar: de Network Architect en de Data Architect.
De migratie in zeven stappen
Stap 1 tot en met 4 bereiden het doel voor en kosten geen downtime. Stap 5 tot en met 7 zijn de stappen om te oefenen.
1. De Terraform-code beoordelen
Voer het assessment uit op de map met de code voor de huaweicloud-provider. StackToIT leest alleen bestanden en maakt nooit verbinding met uw Huawei Cloud-account. Geef ook het variabelenbestand mee: een gevoelige variabele zonder waarde markeert de instance als eenheid met ontbrekende invoer.
2. Engine en versie bevestigen
engine en engine_version behoren tot de genoemde instellingen. Redis 5.0 en 6.0 staan in de demo. De run merkt op dat een Memcached-instance een clientwijziging vereist, omdat Valkey geen Memcached is.
3. Het doel aanmaken
Maak een Key Value Store-instance aan in de STACKIT-regio die u in het invoerbestand hebt beantwoord (eu01 of eu02), met dezelfde capaciteit als de bron of meer. STACKIT raadt aan er niet naar te schrijven voordat de consistentiecontroles klaar zijn.
4. Inloggegevens aanmaken
Key Value Store vereist een gebruikersnaam en wachtwoord, en de verbindingsstrings gebruiken het schema rediss://, wat TLS betekent. Elke client van de oude instance krijgt een nieuwe verbindingsstring en, als die alleen een wachtwoord kende, ook een gebruikersnaam.
5. De kopieermethode kiezen
Het bestand voor dataverplaatsing legt voor beide caches het mechanisme UNKNOWN en de status DECISION_REQUIRED vast. Omvang, wijzigingsfrequentie, toegestane downtime en herstelpunt staan niet in de Terraform-code, dus die levert u zelf aan. De volgende sectie laat zien waarom de gedocumenteerde standaard niet bij een DCS-bron past.
6. Kopiëren en vergelijken
Koppel schrijvers los of zet ze op pauze, kopieer en vergelijk daarna INFO KEYSPACE aan beide kanten: de waarden voor keys en expires moeten overeenkomen. Vergelijk ook de gesorteerde sleutelnamen en vergelijk het geheugengebruik met een marge voor de overhead van de engine.
7. Overschakelen en de bron bewaren
Laat de clients naar het nieuwe endpoint wijzen. Bewaar de DCS-instance en de laatste back-up totdat de applicatie op Valkey een normale piek heeft doorstaan.
Hoe elke DCS-instelling meegaat
De run noemt deze instellingen en laat de beslissing aan u. De rechterkolom is wat de STACKIT-documentatie over de doelkant zegt.
| DCS-instelling in de demo | Waarde in de invoer | Wat het op Key Value Store wordt |
|---|---|---|
| engine, engine_version | Redis 6.0 en Redis 5.0 | Een Valkey-instance. STACKIT geeft aan dat Key Value Store zijn eerdere Redis-aanbod vervangt en met bestaande Redis-opstellingen werkt; test de commando's die uw applicatie gebruikt. |
| capacity, flavor | 4 GB met een hoogbeschikbare flavor, 2 GB met een single-node-flavor | Een plan dat u op STACKIT kiest. Maak het doel aan met dezelfde capaciteit (RAM, opslag, nodes) als de bron of meer. |
| availability_zones | Twee zones voor de sessiecache, één voor de job-cache | Hoge beschikbaarheid betekent op Key Value Store replicasets met meerdere nodes en geautomatiseerde failover. Een enkele node heeft geen failover. |
| backup_policy | Automatische back-up, drie dagen bewaard, vier dagen per week | Niet overgenomen. Stel de back-up op de nieuwe instance opnieuw in en test een restore vóór de cutover. |
| whitelists | Groep app-servers met 10.40.1.0/24 | Netwerk-ACL's op de nieuwe instance. Maak de toegestane bereiken opnieuw aan met de adressen van het STACKIT-netwerk. |
| password | Een gevoelige variabele | Niet overgenomen. De nieuwe instance geeft zelf een gebruikersnaam en wachtwoord uit. |
| vpc_id, subnet_id | De VPC en het subnet van de omgeving | Een STACKIT-netwerk, aangemaakt in golf 1 en 2 vóór de caches. |
De waarden komen uit de demo-invoer. Plannamen en prijzen op STACKIT maken geen deel uit van het assessment.
Voer het uit en lees de open datavraag
Eén commando beoordeelt de map. Het bestand voor dataverplaatsing toont daarna beide caches als stateful eenheden zonder gekozen mechanisme.
stacktoit assess . ../out --offline| Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| huaweicloud_dcs_instance.queue_cache | huaweicloud_dcs_instance | STACKIT Key Value Store (Valkey) | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| huaweicloud_dcs_instance.sessions | huaweicloud_dcs_instance | STACKIT Key Value Store (Valkey) | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |Not known, met opzet
Volgens het bestand staan de omvang van de data, de wijzigingsfrequentie, de toegestane downtime, het herstelpunt en de dataclassificatie niet in de bron. StackToIT verplaatst nooit data en raadt deze waarden niet.
Eerst de regio
Het ene verzoek dat het concept blokkeert, is de doelregio. De inputs-template biedt eu01 en eu02; beantwoord dat voordat u capaciteit plant.
Waar een DCS-bron afwijkt van het gedocumenteerde pad
STACKIT documenteert een migratie vanuit zijn eigen Redis-aanbod. Die leest sleutels op de bron en stuurt ze met MIGRATE. Vier feiten over DCS veranderen dat plan.
MIGRATE is uitgeschakeld
Huawei noemt MIGRATE onder de uitgeschakelde commando's van DCS Redis 6.0, voor single-node-, master/standby- en Redis Cluster-instances en opnieuw voor Proxy Cluster, read/write splitting en de enterprise-editie. De lijst voor Redis 5.0 schakelt MIGRATE ook uit voor single-node-, master/standby-, Proxy Cluster-, Redis Cluster- en read/write-splitting-instances, dus hetzelfde geldt voor de job-cache op 5.0. De STACKIT-pipe stuurt MIGRATE via de bronverbinding, dus vanuit DCS werkt die zoals beschreven niet.
SYNC en PSYNC zijn ook uitgeschakeld
Dezelfde lijsten van Huawei schakelen SYNC en PSYNC uit voor de instancetypen van Redis 6.0 en 5.0. Een tool die zich als replica aansluit, kan niet uit zo'n bron lezen, dus plan een kopie sleutel voor sleutel of een back-upbestand.
Single-node-instances hebben geen back-up in de console
Huawei geeft aan dat van single-node-instances geen back-up in de console kan worden gemaakt. In de demo is dat de job-cache: lees de sleutels met een client, niet uit een back-upbestand.
Meerdere databases
De gids van Huawei voor het importeren van back-ups geeft aan dat Proxy Cluster- en Redis Cluster-instances standaard alleen DB0 hebben. Gebruikt de bronapplicatie genummerde databases, koppel die dan vóór het kopiëren, want het STACKIT-commando neemt een databasenummer.
Vergelijken na het kopiëren
Deze controles komen uit de migratiehandleiding van STACKIT. Vervang de plaatshouders door de verbindingsstrings en certificaatbestanden van beide kanten.
valkey-cli -u "[source-db-connection-string]" --tls --sni [source-frontend-hosts-fqdn] --cacert [/path/to/ca_cert.pem] INFO KEYSPACEvalkey-cli -u "[target-db-connection-string]" --tls --sni [target-frontend-hosts-fqdn] --cacert [/path/to/ca_cert.pem] INFO KEYSPACEWat moet overeenkomen
De waarden voor keys en expires van beide uitvoerresultaten. STACKIT vergelijkt ook de gesorteerde sleutellijsten met diff en verwacht een leeg resultaat.
Wat u verder test
Time-to-live-waarden, de datatypen die uw code leest en één echte clientsessie via TLS. Een gelijk aantal sleutels laat niet zien dat de applicatie zich hetzelfde gedraagt.
Wat u aanpast voordat u iets toepast
Het invoerbestand beantwoorden
Kopieer target.region uit inputs-template.yaml naar uw invoerbestand, beantwoord die en voer het assessment opnieuw uit met --inputs op dezelfde uitvoermap, zoals de template aangeeft. Lees daarna het opnieuw gegenereerde concept en plan.
De datafeiten invullen
Geef elke applicatie in het applicatiebestand zijn herstelpunt en toegestane downtime, zodat de rijen voor dataverplaatsing niet langer NOT_PROVIDED tonen. Omvang en wijzigingsfrequentie komen nooit uit Terraform: meet ze op de bron en bewaar ze bij het kopieerplan.
De provider vastzetten
De run waarschuwt dat geen lockbestand de huaweicloud-provider vastzet. Commit .terraform.lock.hcl zodat de beoordeelde versie ook de geteste versie is.
De eigenaar van de kopie bepalen
Beide cache-eenheden zijn toegewezen aan de rol Data Architect. Benoem wie de kopie uitvoert en wie de vergelijking ondertekent.
Vragen die teams stellen over DCS en Valkey
Schrijft StackToIT de Valkey-Terraform voor een DCS-instance?
Ja. StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen. De run noemt de doelresources, een Valkey-instance en een credential, en legt elke cache vast als een stap.
Kunnen we het MIGRATE-commando uit de STACKIT-handleiding gebruiken?
Niet vanuit DCS zoals beschreven: Huawei noemt MIGRATE uitgeschakeld voor DCS Redis 6.0 en 5.0. De handleiding levert ook een Python-kopieerscript mee, copy_redis.py, voor sleutelnamen die MIGRATE niet aankan. Volgens de gepubliceerde code gebruikt het MIGRATE niet: het doorloopt de bron met SCAN en kopieert strings, lists, sets, hashes en sorted sets met hun TTL via gewone lees- en schrijfcommando's, waarvan Huawei er geen als uitgeschakeld voor Redis 6.0 noemt. Andere sleuteltypen, zoals streams, kopieert het niet, en de verbindingsinstellingen staan standaard op TLS. Controleer beide tegen uw DCS-instance en oefen op een kopie. Wij hebben het niet tegen DCS uitgevoerd.
Moet de applicatiecode veranderen?
Het endpoint en de inloggegevens veranderen zeker, en de verbinding gebruikt TLS met een gebruikersnaam en wachtwoord. Of commando's zich identiek gedragen, test u zelf; STACKIT beschrijft Key Value Store als werkend met bestaande Redis-opstellingen, niet als een belofte voor elk commando.
Hoe lang duurt het kopiëren?
Het assessment weet dat niet: omvang en wijzigingsfrequentie staan niet in de Terraform-code. STACKIT noemt ongeveer 50 seconden per gigabyte voor zijn eigen kopie op basis van MIGRATE en geeft aan dat dit varieert met latentie en datastructuur. Meet op uw eigen data.
Maakt StackToIT verbinding met ons Huawei Cloud-account?
Nee. Het leest de Terraform- en OpenTofu-bestanden en niets anders.
Bronnen
- STACKIT Key Value Store
- STACKIT: Migrate data from Redis to a Key Value Store instance
- STACKIT Key Value Store: release notes
- Huawei Cloud: Commands Supported and Disabled by DCS for Redis 6.0
- Huawei Cloud: Exporting DCS backup data
- Huawei Cloud: Self-hosted Redis migration with backup files
- Huawei Cloud: Commands Supported and Disabled by DCS for Redis 5.0
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.