วิธีที่เร็วที่สุดในการแปลงดิสก์ที่จัดรูปแบบ ext4 เป็น LVM ด้วย ext4 บนมัน?


12

ขณะนี้ฉันกำลังทำการcp -aRคัดลอกข้อมูลจากดิสก์ที่จัดรูปแบบ ext4 1TB ของฉัน (เต็ม 99%) ไปยังดิสก์ LVM-with-ext4-on-it ใหม่ มันใช้เวลาตลอดไป

มีวิธีใดในการพยายาม "แปลง" ดิสก์ในตำแหน่งหรือไม่ ฉันใช้ EC2 ดังนั้นการสำรองจึงใช้เวลาไม่กี่นาที

หรือมิฉะนั้นจะมีวิธีใดที่อาจเร็วกว่าcpการคัดลอกระบบไฟล์ ext4 ไปยังดิสก์ LVM โดยตรงหรือไม่

คำตอบ:


23

ฉันเขียนบล็อก (née lvmify) ซึ่งทำการแปลงนี้ในสถานที่ มันทำงานโดยลดขนาดของระบบไฟล์ลงเล็กน้อยย้ายจุดเริ่มต้นของระบบไฟล์ไปยังจุดสิ้นสุดของพาร์ติชันและคัดลอก superblock LVM (กำหนดค่าล่วงหน้าด้วย PV / LV / VG ที่ถูกต้อง)


ฟังดูน่าสนใจจริงๆ! ฉันกำลังคิดถึงการสำรองข้อมูล 500GB ของฉันไปยังพาร์ติชันอื่น (นั่นคือ lvm อยู่แล้ว) เพื่อลองดู!
กุมภ์กำลัง

1
@Gabriel จะใช้งาน fs สดนี้ได้ไหม ฉันหมายความว่าฉันจำเป็นต้องยกเลิกการเมานท์ FS จากนั้นมันจะเข้าที่หรือจะทำงานบนรูท FS ที่ติดตั้งแล้วหรือไม่
Gavriel

1
@AmrMostafa: ของแข็ง "สวย"? ฉันมีสิ่งนี้เกี่ยวกับระบบไฟล์ของฉันฉันต้องการให้เป็นร็อคที่เป็นของแข็ง ... :-)
TJ Crowder

3
ผู้ใช้ Ubuntu ที่น่าเชื่อถือ + จะพบว่ามันยากที่จะติดตั้ง python 3.3 ที่ต้องการ .. เพียง 3.4 พร้อมใช้งานและบล็อกยังไม่ได้รับการอัปเดตตั้งแต่ธันวาคม 2014: /
bksunday

1
แม้ว่าจะมีการอัพเดท 5 หูแล้ว แต่ก็ใช้งานได้จริง ได้รับการยืนยันใน NVMe SSD, รูปแบบพาร์ติชัน GPT หมายเหตุ: ควรใช้ Python 3.6 ดีกว่า
tosh

2

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

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

"ดังนั้นวันนี้ฉันค้นพบสิ่งที่ยอดเยี่ยมนั่นคือ LVM การติดตั้งเดเบียนฉันเลือก" LVM - ใช้ทั้งดิสก์ "แต่ไดรฟ์หลักคือไดรฟ์แล็ปท็อปขนาด 5200rpm ที่ช้าและเล็กวันนี้ฉันใส่ไดรฟ์ 1.5TB สำรองและบูตขึ้น ระบบบนไดรฟ์ที่ใหญ่กว่านี้เร็วกว่าแทน

วิธีการของ LVM: เพิ่ม / dev / sdc ให้กับกลุ่มวอลุ่มจากนั้นรัน "pvmove / dev / sda" สิ่งนี้จะย้ายข้อมูลทั้งหมดจาก sda ไปยังไดรฟ์อื่น ๆ (มีเฉพาะ sdc) ไม่จำเป็นต้องรีบูทไม่จำเป็นต้องถอดออก ขณะที่ฉันกำลังเขียนสิ่งนี้ข้อมูลกำลังถูกเคลื่อนย้าย

ต่อมาทำ "vgreduce megatron / dev / sda" เพื่อลบไดรฟ์ช้าออกจากกลุ่มวอลุ่มและ voila ย้ายข้อมูลแล้ว (megatron เป็นชื่อของกลุ่มวอลุ่มและคอมพิวเตอร์ของฉัน) นี่อาจเป็นข่าวเก่าแก่หลายคน แต่ฉันคิดว่ามันเจ๋งจริง ๆ :) "

ได้รับสิ่งนี้ทำในประเทศ แต่ฉันคิดว่าด้วยการวิจัยเพิ่มเติมคุณอาจจะสามารถรองรับสิ่งนี้

แหล่ง


2

ไม่มีวิธีการใดที่จะทำการแปลง LVM เช่น "ในทันที"

LVM อยู่ภายใต้ระบบไฟล์ของคุณจริง ๆ เพื่อขยายผ่านอุปกรณ์ฟิสิคัลหลายเครื่องหรือสตริปหรือมิเรอร์ ฯลฯ ขั้นตอนสุดท้ายในการสร้างโลจิคัลวอลุ่มคือการวางระบบไฟล์ไว้ด้านบน นี่คือตัวอย่างจาก RHEL6

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

สำหรับสำเนาที่เร็วขึ้นฉันชอบddแต่ไม่ได้ใช้บ่อย การทำผิดพลาดddเป็นสิ่งที่อันตราย สิ่งหนึ่งที่คุณสามารถลองใช้ได้ก็คือมันtar czv <source fs> | (cd <destination fs>; tar x)จะทำการถ่ายโอนไฟล์ tar ที่ถูกบีบอัดอย่างรวดเร็ว

โชคดี!


1
การใช้การบีบอัดในการดำเนินการ tar นั้นไม่สมเหตุสมผลเลย ที่เดียวที่ข้อมูลจะถูกบีบอัดคือหน่วยความจำในขณะที่มีการไพพ์ จากนั้นจะไม่มีการบีบอัดอีกครั้งทันทีก่อนที่จะถูกเขียนลงดิสก์ เฉพาะตอนนี้การดำเนินการสร้างโหลดซีพียูหลายเท่าเนื่องจากการบีบอัดและไม่บีบอัดไม่มีประโยชน์ทันที นอกจากนี้สำหรับการดำเนินการใด ๆ เช่นนี้ที่เกี่ยวข้องกับระบบไฟล์ทั้งหมดคุณจะต้องการอย่างน้อย tar cSf - | tar xvpf -จัดการไฟล์และการอนุญาตแบบเบาบาง อาจเป็นไปได้--selinuxเช่นกัน (หากปริมาณปลายทางจะมาแทนที่แหล่งที่มาในภายหลัง)
FeRD

เป็นจุดที่ดีถ้าอุปกรณ์ต้นทางและปลายทางของคุณอยู่ในโฮสต์เดียวกันหรือถ้าคุณไม่มีรอบ CPU ที่จะสำรองไว้ สิ่งเหล่านี้เป็นจุดที่ต้องพิจารณาเป็นกรณี ๆ ไป ฉันชอบสวิตช์ "S" และ "p" และอาร์กิวเมนต์ "--selinux"
dafydd

อืมถ้าใครมีการโคลนนิ่งระบบไฟล์โดยการดำเนินการ tar แบบ on-the-fly ผ่านลิงค์เครือข่ายแล้ว (ก) พวกเขาเป็นวิญญาณที่กล้าหาญกว่าฉัน แต่ (b) คุณอาจไม่ต้องการ-pเว้นแต่โฮสต์แชร์ชื่อผู้ใช้ / UIDs (แม้ว่า manpage จะเตือนฉันว่า-pเป็นค่าเริ่มต้นสำหรับ GNU tar เมื่อเรียกใช้เป็นรูท) และ--selinuxเต็มไปด้วยอันตรายมากขึ้น - น่าจะดีกว่าที่จะทำrestorecon -Rv(หรือ-Rp) เหนือสิ่งอื่นทั้งหมดเมื่อติดตั้งในที่ถูกต้อง (สุดท้าย ) สถานที่ตั้ง
FeRD

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