วิธี Backup data บน Dedicated Server
บทความโดย : แอดมิน Limitrack.com Link : http://docs.limitrack.com/books/backup-data-dedicated-server
- ทำไม Backup data จึงสำคัญสำหรับ Dedicated Server ?
- เราจะ Backup data บน Dedicated Server ด้วยวิธีใดได้บ้าง ?
- เปรียบเทียบ Software สำหรับ Backup data ในกลุ่ม Opensource
- Backup data ด้วย Rclone
- Backup data ด้วย Duplicati
ทำไม Backup data จึงสำคัญสำหรับ Dedicated Server ?
Dedicated Server เป็นบริการเช่า Server ในรูปแบบที่ลูกค้าใช้เครื่อง Server เครื่องนั้นแต่เพียงผู้เดียว ลูกค้าบริหารจัดการ Resource ในเครื่องได้เต็มที่ 100% โดยไม่ต้องใช้ร่วม Resource กับผู้อื่น
Limitrack จัดเตรียมเครื่อง Dedicated Server และติดตั้ง OS ให้ลูกค้า หลังจากนั้น Software และ Data ทุกอย่างภายในเครื่องลูกค้าจะเป็นผู้บริหารจัดการเอง โดย Limitrack ไม่มีสิทธิ์เข้าถึง Data ของลูกค้า ดังนั้น Limitrack จึงไม่สามารถสำรองข้อมูล ( Backup data ) ภายในเครื่องให้ลูกค้าได้ ลูกค้าจำเป็นต้องสำรองข้อมูลภายใน Server ของท่านเอง
ทำไมควรสำรองข้อมูล ( Backup data ) ?
การสำรองข้อมูล ก็เพื่อป้องกันกรณีเกิดเหตุการณ์ฉุกเฉิน เช่น เครื่องโดน Ransomware , ติด Virus , ลูกค้าเผลอลบข้อมูล , Disk รวน/เสียหาย เป็นต้น
เราจะ Backup data บน Dedicated Server ด้วยวิธีใดได้บ้าง ?
การสำรองข้อมูลในเครื่อง Dedicated Server มีหลากหลายวิธี ขึ้นอยู่กับลักษณะงานของลูกค้า หรือเลือกตามความถนัดของลูกค้า เช่น
- บางท่านอาจจะไม่สำรองข้อมูลเลย เพราะใช้รันโปรแกรมอย่างเดียวเท่านั้น ไม่มีข้อมูลสำคัญ
- บางท่านสำรองข้อมูล file/folder ไว้ใน Harddrive อีกลูกนึง เพื่อป้องกัน Disk หลักชำรุด/เสียหาย
- บางท่านสำรองข้อมูล file/folder ไว้ใน Personal Cloud Drive เช่น Dropbox , Google Drive , One Drive , Box เป็นต้น
- บางท่านสำรองข้อมูล file/folder ไว้เก็บไว้ใน Business Cloud Storage เช่น Amazon S3 , Azure Cloud Storage , Google Cloud Storage , Backblaze B2 , Akamai Storage , SugarSync , FTP/SFTP , SMB Server เป็นต้น
การทำ RAID ไม่ใช่การ Backup data
การทำ RAID บน Disk เป็นการเพิ่มประสิทธิภาพ ( ความเร็ว/ความจุ ) ให้กับ Disk และช่วยป้องกัน Data เสียหายกรณี Disk ชำรุด/ขัดข้องเท่านั้น ดังนั้น การทำ RAID จึงไม่ใช่การสำรองข้อมูล ( Backup data )
หาก Disk ที่ทำ RAID เกิดโดน Ransomware หรือ Virus หรือเผลอลบไฟล์สำคัญไป เราจึงไม่สามารถกู้ข้อมูลได้จาก RAID นั่นเอง
เปรียบเทียบ Software สำหรับ Backup data ในกลุ่ม Opensource
ทำไมเลือก Opensource ?
ที่ Limitrack เราจะเน้นใช้งาน Software แบบ Opensource เป็นหลัก เนื่องจากยืดหยุ่น อิสระ และ scale ได้โดยไม่ต้องกังวลเรื่องค่าใช้จ่าย
และ Software แบบ Opensource ในปัจจุบันมีชุมชนที่เข้มแข็ง Opensource หลายๆตัวมีประสิทธิภาพเหนือกว่า Software แบบ Commercial
ดังนั้น ในบทความนี้แอดมินจะขอแนะนำ Software สำหรับ Backup data แบบ Opensouce ให้ท่าน
โดยระบบภายใน Limitrack เราเลือกใช้ Rsync , Duplicity , Duplicati , Duplicacy , Rclone , UrBackup , ...
ซึ่งแต่ละตัวก็จะมีความเหมาะสมกับชนิดของ Data / OS / วิธี Backup ที่แตกต่างกันไป
Rsync
ข้อดี
- เรียบง่าย
- กระทัดรัด ใช้ resource น้อย
- Sync แบบกำหนดเงื่อนไขได้
- เหมาะสำหรับ Sync data ข้าม Server
ข้อเสีย
- ไม่มี GUI ( ต้องใช้ command ) ทำให้ต้องใช้ทักษะขั้นสูง
- เหมาะสำหรับบน Linux เท่านั้น ( Windows มีข้อจำกัด )
- ไม่มีระบบ Backup ไปยัง Cloud Storage
Duplicity
ข้อดี
- เรียบง่าย
- กระทัดรัด ใช้ resource น้อย
- Sync แบบกำหนดเงื่อนไขได้
- เหมาะสำหรับ Sync data ข้าม Server
- เลือก Backup แบบ Incremental ได้
- รองรับ Data Compression ทำให้ให้ Bandwidth ต่ำ
- มีระบบ Backup ไปยัง Cloud Storage
ข้อเสีย
- ไม่มี GUI ( ต้องใช้ command ) ทำให้ต้องใช้ทักษะขั้นสูง
- เหมาะสำหรับบน Linux เท่านั้น ( Windows ใช้ไม่ได้ )
- บังคับว่าต้อง Backup ในรูปแบบ file format ของ Duplicity เท่านั้น โดยไฟล์ที่ Backup จะถูกซอยหั่นเป็นขนาดเล็กหลายๆไฟล์
- ไม่สามารถเปิดดูไฟล์ที่ Backup ได้ จำเป็นต้อง Restore ก่อนทุกครั้งถึงจะดูไฟล์ที่ Backup ได้
Duplicati
ข้อดี
- มี GUI ( Web )
- ใช้งานง่าย ไม่ต้องจำคำสั่ง
- Sync แบบกำหนดเงื่อนไขได้
- เลือก Backup แบบ Incremental ได้
- รองรับ Data Compression ทำให้ให้ Bandwidth ต่ำ
- ข้อมูลที่ Backup สามารถเข้ารหัสได้
- มีระบบ Backup ไปยัง Cloud Storage
- รองรับ Windows
- ตั้งเวลา Backup ได้ตามเงื่อนไข
ข้อเสีย
- บังคับว่าต้อง Backup ในรูปแบบ file format ของ Duplicati เท่านั้น โดยไฟล์ที่ Backup จะถูกซอยหั่นเป็นขนาดเล็กหลายๆไฟล์
- ไม่สามารถเปิดดูไฟล์ที่ Backup ได้ จำเป็นต้อง Restore ก่อนทุกครั้งถึงจะดูไฟล์ที่ Backup ได้
Duplicacy
ข้อดี
- มี GUI ( Web )
- ใช้งานง่าย ไม่ต้องจำคำสั่ง
- Sync แบบกำหนดเงื่อนไขได้
- เลือก Backup แบบ Incremental ได้
- รองรับ Data Compression ทำให้ให้ Bandwidth ต่ำ
- ข้อมูลที่ Backup สามารถเข้ารหัสได้
- มีระบบ Backup ไปยัง Cloud Storage
- รองรับ Windows
- ตั้งเวลา Backup ได้ตามเงื่อนไข
- รองรับ Lock-Free Deduplication
ข้อเสีย
- มีค่าใช้จ่ายแฝง หากต้องใช้งานแบบ Commercial
Rclone
ข้อดี
- เรียบง่าย
- กระทัดรัด ใช้ resource น้อย
- Sync แบบกำหนดเงื่อนไขได้
- เลือก Backup แบบ Incremental ได้
- มีระบบ Backup ไปยัง Cloud Storage
- ทำงานคล้าย Rsync แต่ Rclone เหนือกว่า Rsync ตรงที่รองรับ Cloud Storage ครบถ้วน
ข้อเสีย
- ไม่มี GUI ( ต้องใช้ command ) ทำให้ต้องใช้ทักษะ POSIX
- เหมาะสำหรับบน Linux เท่านั้น ( Windows ใช้ได้ แต่มีข้อจำกัด )
UrBackup
ข้อดี
- มี GUI ( Web )
- ใช้งานง่าย ไม่ต้องจำคำสั่ง
- Sync แบบกำหนดเงื่อนไขได้
- เลือก Backup แบบ Incremental ได้
- รองรับ Windows
- ตั้งเวลา Backup ได้ตามเงื่อนไข
ข้อเสีย
- ไม่มีระบบ Backup ไปยัง Cloud Storage
- บังคับว่าจะต้อง Backup กันระหว่าง Client กับ Server ได้เท่านั้น
ความเห็นแอดมิน
แต่ละตัวจะเหมาะกับงานที่แตกต่างกัน โดยสรุปสั้นๆดังนี้
- Rsync เหมาะกับ Linux ใช้ Sync data ไปยัง Local หรือ Server อื่น
- Duplicity เหมาะกับ Linux ใช้ Backup data ไปยัง Local หรือ Server อื่น
- Duplicati เหมาะกับ Linux/Windows ใช้ Backup data ไปยัง Local หรือ Server อื่น หรือ Cloud Storage แบบ GUI
- Duplicacy เหมาะกับ Linux/Windows ใช้ Backup data ไปยัง Local หรือ Server อื่น หรือ Cloud Storage แบบ GUI พร้อมกันหลายเครื่อง
- Rclone เหมาะกับ Linux ใช้ Backup data ไปยัง Cloud Storage แบบ Command
- UrBackup เหมาะกับ Linux/Windows ใช้ Backup data ไปยัง Server อื่น แบบ GUI
Backup data ด้วย Rclone
ใช้ Rclone สำรองข้อมูลบน Linux ไปไว้ใน Google Drive
เตรียม
- แอดมินใช้ Debian 64 bit เป็น Data ฝั่ง Source
- แอดมินใช้ Google Drive เป็น Data ฝั่ง Destination
ติดตั้ง Package พื้นฐาน
apt install sudo curl unzip
ติดตั้ง Rclone
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
ตั้งค่า Rclone
rclone config
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> Gdrive
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
Storage> 18
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id> XXXXXXXXXXXXXXXXXXXXXXX
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> XXXXXXXXXXXXXXXXXXXXXXX
scope> 1
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file>
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> n
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "XXXXXXXXXXXXXXXXXXXXX"
Then paste the result.
Enter a value.
config_token> XXXXXXXXXXXXXXXXXXXXX
Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
y/n> n
Configuration complete.
Options:
- type: drive
- scope: drive
- team_drive:
Keep this "Gdrive" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
Gdrive drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
List ดูไฟล์ใน Google Drive
rclone ls remote:
Copy ไฟล์ไปไว้ใน Google Drive
rclone copy /home/source remote:backup
Sync ไฟล์ไปไว้ใน Google Drive
rclone sync /home/source remote:backup
ดูคำสั่งอื่นๆของ Rclone
Backup data ด้วย Duplicati
ใช้ Duplicati สำรองข้อมูลด้วย
Duplicati เป็นซอฟท์แวร์ Bakcup แบบโอเพ่นซอร์สฟรีที่ให้คุณสร้างข้อมูลสำรองของ File และ Folder และจัดเก็บไว้ในตำแหน่งต่างๆ รวมถึงที่เก็บข้อมูลในเครื่อง ( Local ) เซิร์ฟเวอร์ระยะไกล ( Remote Location ) และบริการที่เก็บข้อมูลบนคลาวด์ (Cloud)
หากต้องการใช้ Duplicati คุณต้องติดตั้งลงในคอมพิวเตอร์ของคุณก่อน ดูคำแนะนำในการติดตั้งได้ที่ https://www.duplicati.com/download
เมื่อติดตั้ง Duplicati แล้ว คุณสามารถใช้เพื่อสร้างการสำรองไฟล์และไดเร็กทอรีของคุณโดยทำตามขั้นตอนเหล่านี้:
1. เปิด Duplicati แล้วคลิกปุ่ม "เพิ่มข้อมูลสำรอง"
2. เลือก File/Folder ที่คุณต้องการ Backup
3. เลือกปลายทางสำหรับการสำรองข้อมูล ซึ่งอาจเป็นโฟลเดอร์ในเครื่อง ไดรฟ์เครือข่าย หรือบริการพื้นที่เก็บข้อมูลบนคลาวด์ เช่น Google Drive หรือ Amazon S3 ก็ได้
4. เลือกกำหนดการสำรองข้อมูลและตัวเลือกอื่นๆ ที่คุณต้องการใช้ เช่น การเข้ารหัสหรือการบีบอัด
5. คลิกปุ่ม "เริ่มการสำรองข้อมูล" เพื่อเริ่มกระบวนการสำรองข้อมูล
คุณสามารถดูข้อมูลเพิ่มเติมและคำแนะนำโดยละเอียดเกี่ยวกับการใช้ Duplicati ได้ที่ https://www.duplicati.com/