Linux

Rocky Linux Migration Disaster Recovery Plan

rocky linux migration disaster recovery plan
Rocky Linux Migration Disaster Recovery Plan | SiamCafe Blog

โดย อ. บอมกิตติทัศน์เจริญพนาสิทธิ์ | อัปเดต 24 ก. พ. 2026 | อ่าน 16 นาที

Rocky Linux คืออะไร — ทำไมต้อง Migrate จาก CentOS

Rocky Linux เป็น Enterprise Linux Distribution ที่เข้ากันได้ 100% แบบ Binary-compatible กับ Red Hat Enterprise Linux (RHEL) ก่อตั้งโดย Gregory Kurtzer ผู้ร่วมก่อตั้ง CentOS ดั้งเดิมตั้งชื่อเพื่อเป็นเกียรติแก่ Rocky McGaugh ผู้ร่วมก่อตั้ง CentOS อีกู้คืนที่เสียชีวิตไปแล้ว

เหตุผลที่ต้อง Migrate จาก CentOS คือ Red Hat ประกาศเปลี่ยน CentOS จาก Downstream (สร้างจาก RHEL Source) เป็น CentOS Stream ที่เป็น Upstream (อยู่ก่อน RHEL) ทำให้ CentOS Stream ไม่เหมาะกับ Production Server อีกต่อไปเพราะอาจมี Bug ที่ยังไม่ได้แก้ CentOS 8 สิ้นสุด Support ไปแล้ว CentOS 7 สิ้นสุด 30 มิถุนายน 2024 ดังนั้น Server ที่ยังใช้ CentOS ต้อง Migrate มา Rocky Linux, AlmaLinux หรือ RHEL

เปรียบเทียบ Rocky Linux vs AlmaLinux vs Oracle Linux

คุณสมบัติRocky LinuxAlmaLinuxOracle Linux
ความเข้ากันได้1:1 Binary RHEL1:1 Binary RHELRHEL Compatible + UEK
ผู้ดูแลRocky Enterprise Software FoundationAlmaLinux OS FoundationOracle Corporation
GovernanceCommunity-drivenCommunity-drivenCorporate-driven
Migration Toolmigrate2rockyalmalinux-deploycentos2ol
Support ฟรีCommunityCommunityCommunity + ซื้อเพิ่มได้
Kernel พิเศษไม่มี (ใช้ RHEL Kernel)ไม่มี (ใช้ RHEL Kernel)UEK (Unbreakable Enterprise Kernel)
แนะนำสำหรับProduction ทั่วไปProduction ทั่วไปOracle Stack

Rocky Linux และ AlmaLinux ใช้แทนกันได้เลือกตามความชอบทั้งคู่เข้ากันได้กับ RHEL 100% ส่วน Oracle Linux มี Kernel พิเศษ (UEK) ที่ Optimize สำหรับ Oracle Database

เตรียมตัวก่อน Migration — Checklist

  1. Backup ทุกอย่าง — Full System Backup + Database Dump + Config Files ก่อน Migration เสมอ
  2. ตรวจ Hardware Compatibility — ดูว่า Driver ทำงานกับ Rocky Linux ได้หรือไม่
  3. ตรวจ Application Compatibility — ทดสอบ Application บน Rocky Linux ก่อนทำ Production
  4. ตรวจ 3rd Party Repository — EPEL, Remi, ELRepo อาจต้อง Update URL
  5. Document ทุกอย่าง — จด IP, Hostname, Service ที่รัน, Firewall Rules, Cron Jobs
  6. แจ้ง Stakeholders — แจ้ง Downtime Window ให้ทุกู้คืนที่เกี่ยวข้อง
  7. เตรียม Rollback Plan — ถ้า Migration ล้มเหลวต้อง Restore กลับได้ภายในเวลาที่กำหนด

Migrate จาก CentOS 8 มา Rocky Linux 8

# 1. Backup ก่อนเสมอ!
sudo tar czf /backup/full-backup-$(date +%Y%m%d).tar.gz --exclude=/backup --exclude=/proc --exclude=/sys --exclude=/dev /

# 2. ดาวน์โหลด migrate2rocky script
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh

# 3. ตรวจสอบ Script
bash migrate2rocky.sh --help

# 4. รัน Migration
sudo bash migrate2rocky.sh -r

# ระบบจะ:
# - ลบ CentOS Repository
# - เพิ่ม Rocky Linux Repository
# - เปลี่ยน Package ทั้งหมดเป็น Rocky Linux
# - ใช้เวลาประมาณ 15-30 นาที

# 5. Reboot
sudo reboot

# 6. ตรวจสอบหลัง Reboot
cat /etc/os-release
# NAME="Rocky Linux"
# VERSION="8.9 (Green Obsidian)"

rpm -qa | grep centos
# ไม่ควรมี Package ของ CentOS เหลือ

# 7. Update ทั้งหมด
sudo dnf update -y

Migrate จาก CentOS 7 — Upgrade Path

CentOS 7 ไม่สามารถ Migrate ตรงไป Rocky Linux 8/9 ได้เพราะเป็นคนละ Major Version มี 2 ทางเลือก

# ELevate: CentOS 7 → Rocky Linux 8
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
sudo yum install -y leapp-upgrade leapp-data-rocky

# Pre-upgrade Check
sudo leapp preupgrade

# ดู Report
cat /var/log/leapp/leapp-report.txt

# แก้ปัญหาที่ Report แจ้ง แล้วรัน Upgrade
sudo leapp upgrade

# Reboot เข้า Upgrade Mode
sudo reboot
# ระบบจะ Boot เข้า Upgrade Environment อัตโนมัติ ใช้เวลา 30-60 นาที

ติดตั้ง Rocky Linux 9 ใหม่ (Fresh Install)

สำหรับ Server ใหม่หรือ Migration จาก CentOS 7 แนะนำ Fresh Install Rocky Linux 9

# ดาวน์โหลด ISO
# https://rockylinux.org/download

# หลังติดตั้งเสร็จ
# 1. Update
sudo dnf update -y

# 2. ติดตั้ง EPEL
sudo dnf install -y epel-release

# 3. ติดตั้ง Tools พื้นฐาน
sudo dnf install -y vim htop tmux wget curl git rsync

# 4. ตั้ง Firewall
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# 5. ตั้ง SELinux (Enforcing)
sudo setenforce 1
sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config

# 6. ตั้ง Automatic Security Update
sudo dnf install -y dnf-automatic
sudo sed -i 's/apply_updates = no/apply_updates = yes/' /etc/dnf/automatic.conf
sudo systemctl enable --now dnf-automatic.timer

Post-Migration — ตรวจสอบและ Hardening

Disaster Recovery คืออะไร — RPO, RTO, DR Strategy

Disaster Recovery (DR) คือแผนและกระบวนการกู้คืนระบบ IT เมื่อเกิดเหตุการณ์ร้ายแรงเช่น Hardware Failure, Data Center ไฟไหม้/น้ำท่วม, Ransomware Attack, Human Error ลบข้อมูลผิดหรือ Network Outage ยาวนาน

Metric สำคัญ 2 ตัวที่ต้องกำหนด

RPOBackup StrategyRTODR Strategy
24 ชม.Daily Backup24+ ชม.Cold Site
1-4 ชม.Hourly Snapshot4-8 ชม.Warm Site
< 1 ชม.Real-time Replication< 1 ชม.Hot Site
0 (Zero)Synchronous ReplicationนาทีActive-Active

Backup Strategy — 3-2-1 Rule

กฎ 3-2-1 เป็นมาตรฐานของ Backup Strategy

# Backup Script สำหรับ Rocky Linux
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup"
REMOTE="backup-server:/backup/$(hostname)"

# 1. Database Backup
mysqldump --all-databases --single-transaction | gzip > $BACKUP_DIR/mysql-$DATE.sql.gz
pg_dumpall | gzip > $BACKUP_DIR/postgres-$DATE.sql.gz

# 2. Config Backup
tar czf $BACKUP_DIR/etc-$DATE.tar.gz /etc/

# 3. Application Data
rsync -az --delete /var/www/ $BACKUP_DIR/www/
rsync -az --delete /opt/app/ $BACKUP_DIR/app/

# 4. Send to Remote (Offsite)
rsync -az --delete -e "ssh -p 22" $BACKUP_DIR/ $REMOTE/

# 5. Cleanup: เก็บ 30 วัน
find $BACKUP_DIR -name "*.gz" -mtime +30 -delete

# 6. Verify
echo "Backup completed: $(du -sh $BACKUP_DIR)" | mail -s "Backup Report" admin@example.com

DR Level ต่างๆ — Cold, Warm, Hot Site

สร้าง DR Plan สำหรับ Rocky Linux Server

DR Plan ที่ดีต้องครอบคลุม 5 ส่วน

  1. Risk Assessment — ระบุความเสี่ยงทั้งหมด (Hardware Failure, Natural Disaster, Cyber Attack, Human Error) ประเมินโอกาสและผลกระทบ
  2. RPO/RTO Definition — กำหนด RPO และ RTO สำหรับแต่ละ System ตาม Business Impact
  3. Backup & Replication — กำหนดวิธี Backup และ Frequency สำหรับแต่ละ System
  4. Recovery Procedures — เขียนขั้นตอนกู้คืนที่ละเอียด Step-by-Step ใครก็ทำตามได้
  5. Testing Schedule — ซ้อมกู้คืนอย่างน้อยปีละ 2 ครั้งบันทึกผลและปรับปรุง

Bare-metal Backup ด้วย ReaR

ReaR (Relax-and-Recover) เป็นเครื่องมือ Bare-metal Backup/Recovery สำหรับ Linux สร้าง Bootable ISO ที่ Restore ระบบทั้งหมดได้ภายในไม่กี่นาที

# ติดตั้ง ReaR
sudo dnf install -y rear genisoimage syslinux

# กำหนด Config
cat > /etc/rear/local.conf << 'EOF'
OUTPUT=ISO
OUTPUT_URL=nfs://backup-server/backup/rear/
BACKUP=NETFS
BACKUP_URL=nfs://backup-server/backup/rear/
BACKUP_PROG_COMPRESS_OPTIONS=("--gzip")
BACKUP_PROG_COMPRESS_SUFFIX=".gz"
NETFS_KEEP_OLD_BACKUP_COPY=2
EOF

# สร้าง Backup
sudo rear -v mkbackup

# ผลลัพธ์: ISO ที่ Boot ได้ + Data Archive
# เก็บไว้บน NFS Server

# Recovery: Boot จาก ISO แล้วรัน
rear -v recover
# ระบบจะ Restore Partition, OS, Data ทั้งหมดอัตโนมัติ

Automated DR ด้วย Ansible

# dr-playbook.yml — Automated Server Recovery
---
- name: Restore Rocky Linux Server
 hosts: dr_servers
 become: yes
 vars:
 backup_server: backup.example.com
 backup_path: /backup/production
 
 tasks:
 - name: Install base packages
 dnf:
 name: "{{ item }}"
 state: present
 loop:
 - nginx
 - postgresql-server
 - redis
 - python3
 - certbot
 
 - name: Restore configs
 synchronize:
 src: "{{ backup_server }}:{{ backup_path }}/etc/"
 dest: /etc/
 mode: pull
 
 - name: Restore application
 synchronize:
 src: "{{ backup_server }}:{{ backup_path }}/app/"
 dest: /opt/app/
 mode: pull
 
 - name: Restore database
 shell: |
 gunzip -c {{ backup_path }}/postgres-latest.sql.gz | psql -U postgres
 
 - name: Start services
 systemd:
 name: "{{ item }}"
 state: started
 enabled: yes
 loop:
 - nginx
 - postgresql
 - redis
 
 - name: Verify health
 uri:
 url: "http://localhost/health"
 status_code: 200
 register: health
 retries: 10
 delay: 5

DR Testing — ซ้อมกู้คืนระบบ

DR Plan ที่ไม่เคยทดสอบไม่มีประโยชน์ต้องซ้อมกู้คืนอย่างสม่ำเสมอ

หลังทุกการทดสอบต้องบันทึกผลปัญหาที่พบเวลาที่ใช้แล้วปรับปรุง DR Plan ให้ดีขึ้น

Best Practices และสรุป

Rocky Linux เป็นทางเลือกที่ดีที่สุดสำหรับ Migrate จาก CentOS ด้วยความเข้ากันได้ 100% กับ RHEL และ Community ที่แข็งแกร่งเมื่อรวมกับ Disaster Recovery Plan ที่ครอบคลุมจะได้ระบบ Production ที่เสถียรปลอดภัยและกู้คืนได้อย่างมั่นใจติดตามบทความใหม่ๆได้ที่ SiamCafe.net

อ. บอมกิตติทัศน์เจริญพนาสิทธิ์
IT Infrastructure Expert | Thaiware Award | ประสบการณ์กว่า 25 ปี — ผู้ก่อตั้ง SiamCafe.net Since 2000-2026

Q: Rocky Linux คืออะไร

Enterprise Linux ที่เข้ากันได้ 100% กับ RHEL สร้างโดย Gregory Kurtzer ผู้ร่วมก่อตั้ง CentOS ทดแทน CentOS ที่เปลี่ยนเป็น Stream

Q: Migrate จาก CentOS ทำอย่างไร

CentOS 8: ใช้ migrate2rocky.sh ใช้เวลา 15-30 นาที | CentOS 7: ใช้ ELevate หรือ Fresh Install แนะนำ Backup ก่อนเสมอ

Q: RPO กับ RTO คืออะไร

RPO = ข้อมูลที่ยอมเสียได้ (กำหนด Backup Frequency) | RTO = เวลาที่ต้อง Online (กำหนด DR Strategy: Cold/Warm/Hot)

Q: 3-2-1 Backup Rule คืออะไร

เก็บ 3 สำเนาบน 2 สื่อต่างกันอย่างน้อย 1 ชุด Offsite เป็นมาตรฐาน Backup ที่ปลอดภัย

Q: Rocky Linux 9 Support ถึงปีไหน

Rocky Linux 9 Support ถึงปี 2032 (10 ปี) มี Security Update และ Bug Fix ตลอดช่วง Support

บทความแนะนำ:

อ่านเพิ่มเติม: บทความทั้งหมด | หน้าแรก Blog