SLV Migrate Linux - เริ่มต้นใช้งานอย่างรวดเร็ว

🚚 SLV Migrate Linux

ย้ายดิสก์ Linux ทั้งหมดของคุณไปยังเซิร์ฟเวอร์ใหม่ผ่าน SSH โดยใช้ rsync นี่คือการย้ายแบบทั้งดิสก์ — ทุกอย่างบนเซิร์ฟเวอร์ต้นทางจะถูกคัดลอกไปยังปลายทาง รวมถึงข้อมูลผู้ใช้ การตั้งค่า แพ็กเกจที่ติดตั้งไว้ และการตั้งค่า node ของ SLV
หมายเหตุ: คำสั่งนี้ต่างจาก slv v switch (การย้าย validator identity) กล่าวคือ slv migrate linux จะคัดลอก filesystem ทั้งหมด ส่วน slv v switch จะสลับ validator identity ระหว่าง node สองตัวที่ทำงานอยู่แล้ว

ข้อกำหนดเบื้องต้น

  • ติดตั้ง SLV CLI บน node ต้นทาง
  • สิทธิ์ sudo / root ทั้งบนต้นทางและปลายทาง
  • เข้าถึงปลายทางผ่าน SSH จากต้นทางได้ (ด้วยรหัสผ่านหรือ key)
  • เซิร์ฟเวอร์ปลายทางควรเป็นเครื่องที่เพิ่งติดตั้งใหม่ (SLV จะแจ้งเตือนหากพบว่ามีข้อมูลเดิมอยู่แล้ว)

การใช้งานพื้นฐาน

รันบนเซิร์ฟเวอร์ ต้นทาง:
bash
sudo slv migrate linux --to root@new-server-ip
🚚 SLV Linux Migration

  Source:      ubuntu (this machine)
  Destination: [email protected]

📋 Exclude list:
  • /dev/*
  • /proc/*
  • /sys/*
  • /tmp/*
  • /run/*
  • /mnt/*
  • /media/*
  • /lost+found
  • /swapfile
  • /snap/*
  • /var/log/*

? Start migration? This will overwrite data on the destination. › Yes
  Syncing... (this may take a while depending on disk size)
√ Migration complete
  Rebooting destination...

ตัวเลือก

ตัวเลือกคำอธิบาย
-t, --to <ssh>ปลายทาง SSH (เช่น root@new-server)
-p, --port <port>พอร์ต SSH (ค่าเริ่มต้น: 22)
--skip-rebootข้ามการรีบูตอัตโนมัติหลังย้ายเสร็จ
--exclude <path>pattern ที่ต้องการให้ rsync ยกเว้นเพิ่มเติม (ใช้ซ้ำได้)
--include <path>นำออกจากรายการยกเว้นเริ่มต้น (ใช้ซ้ำได้)
--list-excludesแสดงรายการยกเว้นปัจจุบันแล้วออก
-y, --yesข้ามการยืนยัน

กำหนดพอร์ต SSH เอง

หากปลายทางใช้พอร์ต SSH ที่ไม่ใช่พอร์ตมาตรฐาน:
bash
sudo slv migrate linux --to root@new-server-ip --port 2222

ปรับแต่งรายการยกเว้น

ดูสิ่งที่จะถูกยกเว้น:
bash
slv migrate linux --list-excludes
ยกเว้น path เพิ่มเติม (เช่น ข้ามข้อมูล ledger เพื่อให้ย้ายได้เร็วขึ้น):
bash
sudo slv migrate linux --to root@new-server-ip --exclude /home/solv/ledger

โหมดที่ไม่ต้องโต้ตอบ

สำหรับใช้ในสคริปต์:
bash
sudo slv migrate linux --to root@new-server-ip --skip-reboot --yes

วิธีการทำงาน

  1. ตรวจสอบก่อนเริ่ม — ตรวจสอบการเชื่อมต่อ SSH และแจ้งเตือนหากปลายทางมีข้อมูลอยู่แล้ว
  2. rsync — คัดลอก filesystem ทั้งหมด (ยกเว้น system pseudo-filesystem) ผ่าน SSH
  3. หลังย้ายเสร็จ — รีบูตเซิร์ฟเวอร์ปลายทางโดยอัตโนมัติ (เว้นแต่ใช้ --skip-reboot)
การย้ายใช้ rsync พร้อม --archive --hard-links --acls --xattrs เพื่อคงแอตทริบิวต์ของไฟล์ สิทธิ์ และไฟล์พิเศษไว้ทั้งหมด

⚠️ หมายเหตุสำคัญ

  • รันในฐานะ root (หรือใช้ sudo) หากย้ายโดยไม่ใช่ root ไฟล์ระบบจะตกหล่น
  • ปลายทางควรเป็น เซิร์ฟเวอร์ที่เพิ่งติดตั้งใหม่ ข้อมูลเดิมจะถูกเขียนทับ
  • exit code 23/24 ของ rsync (partial transfer) จะถือเป็นคำเตือน ไม่ใช่ข้อผิดพลาด ไฟล์บางไฟล์ (เช่น log ที่กำลังถูกเขียนอยู่) อาจถ่ายโอนได้ไม่สมบูรณ์
  • หลังย้ายเสร็จ ให้ตรวจสอบว่า node ทำงานได้ถูกต้องก่อนปลดระวางเครื่องต้นทาง
  • สำหรับ การย้าย validator identity (การสลับแบบไม่มี downtime ระหว่าง validator สองตัวที่ทำงานอยู่) ให้ใช้ slv v switch แทน ดู การย้าย Mainnet Validator