ทำไมคนไม่ใช้ rsync เพื่อสำรองข้อมูลผู้เยี่ยมชม vmware?


13

หากฉันใช้ระบบ vmware ESXi ที่ทันสมัยฉันสามารถวางไฟล์ rsync ไบนารีและ rsync ที่เชื่อมโยงแบบคงที่ไปยังปลายทางใด ๆ ผ่าน SSH

ฉันพยายามที่จะเข้าใจว่าเหตุใดการสำรองข้อมูลของแขก vmware ส่วนใหญ่ (ทั้งหมด) ก็ไม่ได้ทำเช่นนี้

หาก VM กำลังทำงานอยู่คุณสามารถใช้ 'vim-cmd vmsvc / snapshot.create' เพื่อสร้างสแน็ปช็อตจากนั้น rsync สแน็ปช็อตนั้นไปยังรีโมตโฮสต์ (มีแม้กระทั่งตัวเลือกในการ "หยุด" ภาพรวม)

หรือหากคุณต้องการสำรองข้อมูลที่มีประสิทธิภาพยิ่งขึ้นคุณสามารถหยุด VM และ rsync ได้อย่างสง่างามผ่านไฟล์ vmdk

ดังนั้น ... ดูเหมือนว่าฉันเป็นสคริปต์เชลล์แบบง่าย ๆ ซึ่งอยู่นอกเหนือจากการสำรองข้อมูลทั้งหมดที่ฉันต้องการทำอย่างง่าย ๆ และง่ายดายโดยใช้ rsync แบบเก่าธรรมดา

ฉันหายไปนี่อะไร


1
เพราะหากไฟล์เดียวมีการเปลี่ยนแปลงใน VM คุณจะต้องสำรองข้อมูล vmdk ทั้งหมดหรือไม่
ขนม

ไม่ rsync จะอัปเดตไฟล์เดียวอย่างมีประสิทธิภาพด้วยการเปลี่ยนแปลงตั้งแต่การถ่ายโอนครั้งล่าสุด แน่นอนว่าการทำงานของ VM สามารถสร้างการเปลี่ยนแปลงได้มากกว่าที่คุณคาดหวัง แต่มันจะไม่ทำให้คุณส่ง vmdk ทั้งหมดอีกครั้ง ...
227963

นอกเหนือจากข้อเท็จจริงที่ว่าคุณไม่ควรใช้เชลล์ esxi สำหรับสิ่งอื่นนอกจากการบำรุงรักษา esxi OS ไม่ได้ทำงานในลักษณะนั้นและคุณจะไม่ได้รับการสนับสนุนฉันคิดว่าคุณเข้าใจแนวคิดของภาพรวมที่เข้าใจผิด สแน็ปช็อตในกรณีนี้คือเดลต้า ดังนั้นหากคุณถ่ายและคัดลอกมันทันทีมันจะเล็กและไม่มีข้อมูล คุณกำลังคิดถึงสแน็ปช็อตการจัดเก็บข้อมูลแบ็กเอนด์และมีคนสำรอง VM ด้วยวิธีนี้
Rqomey

1
@Rqomey - มี "สแนปชอต" ใน ESXi ประเภทอื่น คุณกำลังพูดถึงประเภทหนึ่งที่มองเห็นได้ผ่าน vSphere Client - แต่การใช้ API คุณมีตัวเลือกอื่น ๆ เช่น: โคลนเต็ม
masi

@MASI คุณหมายถึง clone แล้วตรงข้ามกับ snapshot หรือไม่? ;)
Rqomey

คำตอบ:


33
  • เนื่องจากความเร็วในการถ่ายโอนออกจากคอนโซล ESXi นั้น จำกัด อย่างมีวัตถุประสงค์
  • เพราะนี่ไม่สามารถปรับขนาดได้ แต่อย่างใด
  • เพราะคุณจะต้องวางไบนารีของ rsync ที่รวบรวมไว้แบบคงที่ไปยังโฮสต์ ESXi
  • เพราะ VMs ที่ VMDKs ไฟล์ ramdisk ของพวกเขาและส่วนประกอบอื่น ๆ สามารถเปลี่ยนพอที่จะทำให้ rsync สูญเสียเรื่อง ... คุณจะทำจริงๆต้องการอีกซิงค์ 200GB VM ที่ได้รับการรีบูตและมีจำนวนเล็ก ๆ ของการเปลี่ยนแปลงไฟล์?
  • เนื่องจากความต้องการทรัพยากร CPU / หน่วยความจำในแหล่งที่มาหรือปลายทาง Rsync ไม่ฟรี
  • เนื่องจากมีผลิตภัณฑ์อื่น ๆ ในตลาดทั้งบุคคลที่สามและ VMware ที่ให้ไว้ เงยหน้าขึ้นมองเปลี่ยนบล็อกติดตาม
  • เนื่องจาก ESXi ไม่ใช่ระบบปฏิบัติการที่ใช้งานทั่วไป

ดูเพิ่มเติมที่: ติดตั้ง rsync บนเซิร์ฟเวอร์ VMware ESX 4.1


1
คำตอบที่โดดเด่น
EEAA

3
พวกเขาจะไม่ ... ผมหมายถึงมันในชื่อ: ghettoVCB มีทางออกที่ดีกว่าออกมี Veeam, vSphere การปกป้องข้อมูล ฯลฯ
ewwhite

2
คุณสามารถใช้วิธี rsync ได้อย่างแน่นอนหากคุณเปลี่ยนไปใช้ xen / kvm
Zoredache

9
@ user227963 Rsync นั้นค่อนข้างไม่มีประสิทธิภาพทั้งไฟล์จำนวนมากและไฟล์ขนาดใหญ่ และในขณะที่มันอาจไม่จำเป็นต้องส่งไฟล์ทั้งหมดซ้ำอีกครั้งแต่จะต้องทำการอ่านซ้ำทั้งบนต้นทางและปลายทาง CBT จะช่วยคุณที่นี่ แต่ rsync ไม่รู้อะไรเกี่ยวกับ CBT
the-wabbit

2
@ user227963 การคัดลอกไฟล์นั้นง่าย ตอนนี้ทำให้มันเร็วและไม่ใช่หมูทรัพยากรบนไฟล์ขนาดใหญ่ที่มีการเปลี่ยนแปลงเล็กน้อย rsync นั้นดี แต่ไม่มีที่ไหนใกล้กับประสิทธิภาพของข้อมูลใด ๆ ที่มีการใช้ข้อมูลภายในซึ่งบล็อกเปลี่ยนแปลง
JamesRyan

4

ฉันเคยทำแบบนี้เมื่อไม่กี่ปีก่อน (แก้ไข: ด้วย VMWare ที่รันบนโฮสต์ CentOS ไม่ใช่ ESXi ที่ยอมรับ)

ทุกคืนฉันมีสคริปต์ที่จะระงับ VM, rsync ไฟล์จากดิสก์ไปยังเซิร์ฟเวอร์สำรองแล้วเริ่ม VMs อีกครั้ง มันทำงานได้ค่อนข้างดียกเว้น ...

Rsync ใช้งานได้ไม่ดีกับไฟล์ 2GB

ไม่ใช่เพราะ rsync ไม่ได้ยอดเยี่ยมยิ่งไปกว่านั้นไฟล์ 2GB vmdk แต่ละไฟล์จะเปลี่ยนไปในลักษณะที่มีความทึบแสงต่อ rsync มากแม้ว่าการเปลี่ยนแปลงเล็กน้อยในระบบไฟล์ที่แนบจะทำให้เกิดการเปลี่ยนแปลงใน vmdk (หรือ vmdks ทั้งหมดด้วยเหตุผลบางประการ) Windows ไม่ว่าจะจัดเรียงข้อมูลโดยอัตโนมัติหรือทำสิ่งอื่น ๆ ทั้งหมดซึ่งไม่สำคัญว่าคุณใช้ระบบจริง แต่จะปรากฏขึ้นเมื่อคุณพยายาม rsync VM!

ฉันคิดว่ากลไก rsync สำหรับตรวจจับการเปลี่ยนแปลงไม่ได้ผลดีมากในไฟล์ 2GB ในขณะที่มันข้ามชิ้นส่วนเริ่มต้นของ vmdk บ่อยครั้งเมื่อมันเริ่มพบความแตกต่างมันก็แค่คัดลอกส่วนที่เหลือของไฟล์ ฉันไม่ทราบว่าเป็นปัญหาของ rsync หรือไม่ที่สามารถตรวจจับข้อมูลไบนารีที่ถูกย้ายหรือมีหน่วยความจำไม่เพียงพอในกล่องต้นทางหรือว่า vmdk เพิ่งได้รับการอัปเดตตลอดทาง ไม่สำคัญว่าผลลัพธ์จะเหมือนกัน - vmdk ส่วนใหญ่ถูกคัดลอก

ในที่สุดฉันก็แค่คัดลอกไฟล์ที่มีการเปลี่ยนแปลงและเขียนทับพวกเขายังคงใช้ rsync ฉันยังมีประสิทธิภาพที่ดีขึ้นเพียงแค่เขียนทับแฟ้มสำรองข้อมูลแทนที่จะปล่อยให้คัดลอก rsync และแทนที่สิ่งที่มีอยู่

เซิร์ฟเวอร์สำรองของเราไม่ใช่วิธีที่เร็วที่สุดและไปถึงจุดที่ค้างคืนไม่นานพอที่จะสำรองข้อมูล VM ที่ใช้งานอยู่ทั้งหมด

อย่างไรก็ตามเมื่อเราต้องการกู้คืน VM มันเป็นเรื่องง่ายและทำงานได้อย่างสวยงาม


ตกลงว่ามีประโยชน์มาก ฉันรู้เล็กน้อยเกี่ยวกับวิธีการทำงานของ rsync และฉันสามารถบอกคุณได้ว่าไม่มีอะไรเกี่ยวข้องกับขนาดของไฟล์ - แต่สิ่งที่คุณกำลังอธิบายคือไฟล์เปลี่ยนแปลงมากกว่าที่คุณคาดหวัง ... นั่นคือ พูดว่าคุณเรียกใช้ VM เป็นเวลาหนึ่งวันและคุณทำสิ่งเล็ก ๆ น้อย ๆ ด้วยแล้วคุณก็หยุดมัน ... แต่ไฟล์ vmdk เปลี่ยนไป 30-40% (แม้ว่าคุณจะทำน้อยมาก) ดังนั้น rsync จะทำได้ดีมันมีงานมากมายให้ทำ ... มากกว่าที่คุณคาดไว้ ขอบคุณ!
227963

1
แต่ ... คำถามนี้ทำให้เกิดขึ้น ... เครื่องมือ "มืออาชีพ" ทำอย่างไร พวกเขากำลังทำเวทมนตร์อะไรที่เหมาะสมกว่า rsync (หรือ scp หรือ cp) อย่างใดบ้าง? ในตอนท้ายของวันคุณมีสภาพแวดล้อม unix (คอนโซล ESXi) และคุณต้องการย้ายไฟล์เข้าหรือออกจาก ... ความลับอะไรที่เกี่ยวข้องกับเรื่องนั้น?
227963

@ user227963 เครื่องมือระดับมืออาชีพใช้ประโยชน์จากคุณสมบัติต่างๆเช่นการติดตามการเปลี่ยนแปลงบล็อกหรือการเข้าถึง vSphere หรือ ESXi API อื่น ๆ
ewwhite

2

การซิงค์ไฟล์เดียวไม่ใช่โซลูชันสำรอง

คุณจะทำอย่างไรเมื่อมีบางสิ่งที่เกิดขึ้นกับ vm และไฟล์ถูกลบ แต่คุณสังเกตเห็นสิ่งนี้หลังจาก rsync ของคุณทำงานอีกครั้งเท่านั้น? คุณจะเขียนทับ 'สำรอง' ไฟล์ที่ดีด้วยภาพที่ไม่ดีตอนนี้

หากคุณต้องการการสำรองข้อมูลคุณจำเป็นต้องเก็บรุ่นเก่าไว้ที่ใดที่หนึ่งหรือส่วนต่าง Rsync จะคัดลอกส่วนต่างสำหรับคุณเท่านั้น แต่จะไม่เก็บเฉพาะส่วนต่าง แต่จะเขียนทับไฟล์ก่อนหน้า

อาจมีตัวเลือกสำหรับคุณที่นี่ด้วย rsync และระบบไฟล์คัดลอกเมื่อเขียนพร้อมข้อมูลเวอร์ชันซึ่งจะมีผลในการจัดเก็บที่แตกต่างกันทุกครั้งที่สคริปต์ rsync ของคุณทำงาน โซลูชันนี้เริ่มซับซ้อนขึ้นเล็กน้อยดังนั้นนี่จึงเป็นเหตุผลว่าทำไมผู้คนถึงหันมาใช้วิธีแก้ปัญหาที่รู้จักกันดี


ที่นี่มีความซับซ้อนมากกว่าที่ฉันคิดไว้อย่างมาก แต่สิ่งที่คุณพูดถึงไม่ใช่ปัญหา แน่นอนว่าถ้าคุณวิ่งผ่าน rsync ซ้ำ ๆ คุณจะพบปัญหาตามที่คุณแนะนำ แต่มีวิธีง่าย ๆ มากมายในการโคลน / หมุนการสำรองข้อมูลที่สร้างโดย rsync (แม้แต่ไฟล์เดียว) ... ปัญหานั้นได้รับการแก้ไขเป็นเวลานาน เวลาที่ผ่านมาขอบคุณ
user227963

0

ไม่มีเหตุผลใดที่คุณไม่สามารถใช้ Rsync ในเซิร์ฟเวอร์ ESXi ได้ เราเสนอเวอร์ชันที่รวบรวมแบบสแตติกที่นี่https://33hops.com/rsync-for-vmware-vsphere-esxi.htmlซึ่งทำงานได้ดีมาก มีข้อมูลเกี่ยวกับวิธีการรวบรวมของคุณเองเช่นกัน

อย่างไรก็ตามทุกคนที่เต็มใจใช้ต้องคำนึงว่า Rsync และอัลกอริทึม Delta นั้นไม่คิดว่าจะสำรองไฟล์ขนาดใหญ่ที่มีความยาวคงที่กระจัดกระจายเช่นฮาร์ดดิสก์ VM แต่จะซิงค์ไฟล์ขนาดเล็กที่มีความยาวผันแปรได้ ดังนั้นมันใช้งานได้ แต่ใช้เวลาและ CPU ในการคำนวณข้อมูลต่าง ๆ ในความเป็นจริงมันเป็นเพียงวิธีแลกเปลี่ยนแบนด์วิดท์โดย CPU ไม่ว่าในกรณีใดก็ยังคงสามารถใช้งานได้โดยเฉพาะอย่างยิ่งหากดิสก์เสมือนของคุณอยู่ในลำดับกี่กิกะไบต์

ฉันได้เผยแพร่โพสต์แบบเต็มในหัวข้อที่นี่รายละเอียดข้อดีข้อเสียทั้งหมดhttps://33hops.com/blog_xsibackup-rsync-considerations.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.