คอนเทนเนอร์ที่มีการบีบอัดในตัวซึ่งปรับขนาดโดยอัตโนมัติ


3

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

ฉันสามารถใช้ธรรมดา rsync แล้ว tar / gzip ไดเรกทอรีผลลัพธ์ แต่การบีบอัดตัวเองจะเป็นลำดับความสำคัญช้ากว่าการซิงค์ก่อนหน้านี้

ฉันไม่สามารถใช้ squashfs และสิ่งที่ชอบเพราะอ่านอย่างเดียว

ฉันสามารถสร้างพาร์ทิชันชนิดพิเศษสำหรับการสำรองข้อมูลนี้ด้วยการบีบอัดในตัวเช่น btrfs หรือ reiser4 แต่ฉันต้องสร้างมันด้วยขนาดเฉพาะและมันจะไม่ขยาย

ฉันสงสัยว่ามีเทคโนโลยีใด ๆ ภาชนะที่มีการบีบอัดในตัวซึ่งปรับขนาดและโปร่งใสโดยอัตโนมัติ ตามปริมาณของข้อมูลที่เชื่อมต่อกับมันได้หรือไม่

อย่างไรก็ตามฉันใช้ Debian GNU / Linux

คำตอบ:


1

@ Tetsujin ให้ทิศทางที่ถูกต้องแก่ฉัน OS X 's sparse การรวมกลุ่ม / ภาพ มี อะนาล็อกใน Linux และนี่คือ ไฟล์กระจัดกระจาย .

ไฟล์ที่กระจัดกระจายจะเติบโตตามที่ข้อมูลเพิ่มขึ้น พวกเขาสามารถมีระบบไฟล์ Linux ใด ๆ รวมถึงตัวแปรที่ทันสมัยที่มีการบีบอัดในตัวเช่น btrfs .

ข้อมูลต่อไปนี้แสดงวิธีสร้างอิมเมจ btrfs ที่ถูกบีบอัด btrfs การสนับสนุนใน Debian และตราสารอนุพันธ์ (เช่น Ubuntu) สามารถเปิดใช้งานได้โดยการติดตั้ง btrfs เครื่องมือ แพ็คเกจ ( sudo apt-get install btrfs-tools ) ฉันได้เพิ่มการแยกคำ ext4 รูปภาพเพื่อเปรียบเทียบความเร็วและขนาด การดำเนินการทั้งหมดดำเนินการใน Debian 7.8 Wheezy (เก่าที่สุด ณ วันที่ 30 เมษายน 2558)

  1. สร้างไฟล์ที่กระจัดกระจายที่ว่างเปล่าทุกขนาด ปล่อยให้มันเป็น 5 เทราไบต์:

    me@wheezy:~$ truncate -s 5T ext4.sparse btrfs.sparse
    
  2. จัดรูปแบบพวกเขา

    ไปยัง ext4 :

    me@wheezy:~$ mkfs.ext4 ext4.sparse
    mke2fs 1.42.5 (29-Jul-2012)
    <...>
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    

    ไปยัง btrfs :

    me@wheezy:~$ mkfs.btrfs btrfs.sparse
    
    WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
    WARNING! - see http://btrfs.wiki.kernel.org before using
    
    fs created label (null) on btrfs.sparse
            nodesize 4096 leafsize 4096 sectorsize 4096 size 5.00TB
    Btrfs Btrfs v0.19
    
  3. ทำให้จุดยึด:

    me@wheezy:~$ mkdir ext4_mount btrfs_mount
    
  4. ติดพวกเขา อย่าลืม loop ตัวเลือก:

    ext4 :

    me@wheezy:~$ sudo mount -o loop -t ext4 ext4.sparse ext4_mount/
    

    btrfs (อย่าลืม compress ตัวเลือก (สามารถ zlib หรือ lzo )):

    me@wheezy:~$ sudo mount -o loop,compress=lzo -t btrfs btrfs.sparse btrfs_mount/
    
  5. เพียงเท่านี้ระบบไฟล์จะถูกสร้างและติดตั้งปรากฏเป็น 5 TB สำหรับระบบปฏิบัติการ แต่ใช้พื้นที่น้อยมาก:

    DF :

    me@wheezy:~$ df -h | grep _mount
    /dev/loop0                         5.0T  189M  4.8T   1% /home/a/ext4_mount
    /dev/loop1                         5.0T  120K  5.0T   1% /home/a/btrfs_mount
    

    ดู่ :

    me@wheezy:~$ du -h *.sparse
    4.3M    btrfs.sparse
    169M    ext4.sparse
    
  6. สำหรับวัตถุประสงค์ในการทดสอบฉันได้สร้างไฟล์ข้อความขนาดใหญ่ 1.3 GB ที่มีรูปแบบซ้ำ ๆ มันจะเป็น cp ทั้งระบบไฟล์ที่สร้างขึ้นใหม่:

    ext4 :

    me@wheezy:~$ time sudo cp /store/share/bigtextfile ext4_mount/
    
    real    0m12.344s
    user    0m0.008s
    sys     0m1.708s
    

    btrfs :

    me@wheezy:~$ time sudo cp /store/share/bigtextfile btrfs_mount/
    
    real    0m3.714s
    user    0m0.016s
    sys     0m1.204s
    
  7. เท่าที่เห็นในขั้นตอนก่อนหน้า btrfs พิสูจน์แล้วว่าเร็วขึ้นมากระหว่างการถ่ายโอนข้อมูลที่บีบอัดได้สูงกว่ารุ่นเก่า ext4 . ตรวจสอบขนาดของพวกเขากัน

    me@wheezy:~$ df -h | grep _mount
    /dev/loop0                         5.0T  1.5G  4.8T   1% /home/a/ext4_mount
    /dev/loop1                         5.0T   46M  5.0T   1% /home/a/btrfs_mount
    
  8. btrfs พิสูจน์แล้วว่าเป็นพื้นที่ที่มีประสิทธิภาพมากขึ้น ในที่สุดเรามาตรวจสอบขนาดไฟล์แบบเบาบางเช่นกัน:

    me@wheezy:~$ du -h *.sparse
    50M     btrfs.sparse
    1.4G    ext4.sparse
    

แค่นั้นแหละ. หากจำเป็นไฟล์ที่กระจัดกระจายอาจถูกขยายให้ใหญ่ขึ้น btrfs สามารถปรับขนาดออนไลน์ได้เช่นกัน

ทางออกที่ยอดเยี่ยมสำหรับปกติ rsync การสำรองข้อมูล แต่อย่าลืมสำรองไฟล์เหล่านี้ด้วยเช่นกัน btrfs ยังคงเป็นระบบไฟล์ทดลอง

ข้อมูลเพิ่มเติมเกี่ยวกับ Arch Wiki: https://wiki.archlinux.org/index.php/Sparse_file และ https://wiki.archlinux.org/index.php/Btrfs


0

A. sparsebundle หรือ. sparseimage อาจเป็นสิ่งที่คุณต้องการ ...

ชุดกระจัดกระจายที่กำหนดไว้

ชุดกระจัดกระจายเป็นรูปแบบดิสก์อิมเมจที่แนะนำใน Mac OS X 10.5 Leopard® (.sparsebundle) เช่นเดียวกับภาพที่กระจัดกระจาย (.sparseimage) กลุ่มกระจัดกระจายเป็นรูปแบบอ่าน / เขียนที่ดิสก์อิมเมจใช้พื้นที่มากที่สุดเท่าที่ข้อมูลมีอยู่จนถึงขีด จำกัด ที่กำหนดเมื่อสร้างขึ้น ชุดกระจัดกระจายขนาดกะทัดรัดมีประสิทธิภาพมากขึ้นกว่าภาพเบาบางหมายความว่ามันเร็วกว่าที่จะเรียกคืนพื้นที่ว่างที่ไม่ได้ใช้ในชุดกระจัดกระจายกว่าในภาพกระจัดกระจายเทียบเท่า

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

ภายใต้ Leopard การเปิดใช้งานFileVault®ในโฟลเดอร์ Home จะแปลงโฟลเดอร์ Home นั้นเป็นมัดข้อมูลกระจัดกระจายที่เข้ารหัส ภายใต้ Mac OS X 10.4 Tiger®และรุ่นก่อนหน้า FileVault ใช้รูปภาพที่กระจายแบบเข้ารหัส

ชุดข้อมูลแบบกระจัดกระจายยังใช้สำหรับดิสก์สำรองข้อมูลบนเครือข่ายที่สร้างโดย Time Machine®เช่นบน Time Capsule®

ดู Linux สามารถเมานต์ไดเร็กทอรีอิมเมจดิสก์แบบกระจายแบบกระจัดกระจาย Time Machine ได้หรือไม่? สำหรับมากกว่าที่ฉันรู้เกี่ยวกับระวังฉันใช้ Mac ขอโทษ


ขอบคุณสำหรับคำตอบของคุณนั่นคือสิ่งที่ฉันกำลังมองหาบน Linux ไม่แน่ใจว่าจะสร้าง Time Machine sparse บันเดิลบน Linux และระบบไฟล์ใดบ้างยกเว้น HFS + ที่ยอมรับ
TranslucentCloud

ฉันพบสิ่งที่อาจมีประโยชน์ ฉันไม่สามารถทดสอบหรือแสดงความคิดเห็นเนื่องจากฉันไม่มีเครื่อง nix 'ของจริง' ที่นี่ - emaculation.com/forum/viewtopic.php?f=20&t=7974
Tetsujin

สิ่งนี้มีไว้สำหรับ SheepShaver และ BasiliskII, อีมูเลเตอร์ 68k Macintosh
TranslucentCloud

อ๊ะ…ศิลปวัตถุขอโทษ ;-)
Tetsujin

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