mhddfs ถูกทิ้งร้างตั้งแต่ปี 2012 ไม่ได้รับการดูแลรักษาต่อแล้ว และมีปัญหาเรื่องความปลอดภัย – เราแนะนำให้เปลี่ยนมาใช้ mergerfs ซึ่งเป็นทางเลือกสมัยใหม่ที่ยังคงได้รับการดูแลรักษาอย่างต่อเนื่อง และชุมชน home lab ได้ย้ายมาใช้แล้ว เราเขียนคู่มือการตั้งค่าสำหรับผู้เริ่มต้นครบถ้วน 👉 อ่านคู่มือ mergerfs
สมมติว่าคุณมีหนังสือ 30GB และมี 3 ไดรฟ์ แต่ละอันขนาด 20 GB คุณจะจัดเก็บอย่างไร?
ชัดเจนว่าคุณสามารถแยกวิดีโอไว้ 2-3 โวล्यูมต่างกันและจัดเก็บบนไดรฟ์ด้วยตนเอง แต่แน่นอนว่าไม่ใช่วิธีที่ดี เป็นงานที่หนักหนา ต้องดูแลด้วยตนเอง และใช้เวลามาก
อีกทางหนึ่งคือสร้าง RAID array ของดิสก์ RAID เสมอมามั่นคงไว้เรื่องความน่าเชื่อถือของที่จัดเก็บและพื้นที่ดิสก์ที่ใช้งานได้ อีกทางคือ mhddfs

mhddfs เป็นไดรเวอร์สำหรับ Linux ที่รวม mount points หลายจุดเป็นดิสก์เสมือน (virtual disk) เดียว เป็นไดรเวอร์แบบ FUSE ที่ให้โซลูชันง่ายสำหรับการจัดเก็บข้อมูลขนาดใหญ่ รวมระบบไฟล์ขนาดเล็กทั้งหมดเป็นระบบไฟล์เสมือนขนาดใหญ่เพียงตัวเดียว ที่มีทุกส่วนของระบบไฟล์สมาชิก รวมถึงไฟล์และพื้นที่ว่าง
ทำไมต้อง Mhddfs?
อุปกรณ์จัดเก็บทั้งหมดของคุณจะกลายเป็น pool เสมือนเดียว และสามารถ mount ได้ตั้งแต่บูท ยูทิลิตีเล็กๆ นี้ดูแลว่าไดรฟ์ไหนเต็ม ไหนว่าง และเขียนข้อมูลไปที่ไดรฟ์ไหน อย่างฉลาด หลังสร้าง virtual drives เรียบร้อย คุณสามารถแชร์ virtual filesystem ผ่าน SAMBA ไคลเอนต์จะเห็นดิสก์ขนาดใหญ่และพื้นที่ว่างมาก
คุณสมบัติของ Mhddfs
- รับแอตทริบิวต์ของระบบไฟล์และข้อมูลระบบ
- ตั้งค่าแอตทริบิวต์ของระบบไฟล์
- สร้าง, อ่าน, ลบ และเขียนไดเรกทอรีและไฟล์
- รองรับ file locks และ Hardlinks บนอุปกรณ์เดียว
| ข้อดีของ mhddfs | ข้อเสียของ mhddfs |
|---|---|
| เหมาะสำหรับผู้ใช้ทั่วไป | mhddfs driver ไม่ได้ built-in ใน Linux Kernel |
| รันง่าย | ต้องใช้ processing power มากระหว่าง runtime |
| ไม่มีหลักฐานการสูญเสียข้อมูล | ไม่มีโซลูชัน redundancy |
| ไม่แยกไฟล์ | Hardlinks การย้ายไม่รองรับ |
| เพิ่มไฟล์ใหม่เข้า virtual filesystem ได้ | |
| จัดการตำแหน่งที่บันทึกไฟล์ | |
| Extended file attributes |
การติดตั้ง Mhddfs ใน Linux
บน Debian และระบบคล้ายๆ สามารถติดตั้งแพ็กเกจ mhddfs ด้วยคำสั่ง:
# apt-get update && apt-get install mhddfs

บนระบบ RHEL/CentOS Linux ต้องเปิด epel-repository ก่อน แล้วรันคำสั่งด้านล่างเพื่อติดตั้งแพ็กเกจ mhddfs:
# yum install mhddfs
บนระบบ Fedora 22+ อาจได้ผ่าน package manager dnf:
# dnf install mhddfs

กรณีที่แพ็กเกจ mhddfs ไม่อยู่ใน epel repository ต้องแก้ dependencies ต่อไปนี้เพื่อติดตั้งและคอมไพล์จากซอร์ส:
- FUSE header files
- GCC
- libc6 header files
- uthash header files
- libattr1 header files (optional)
ดาวน์โหลดซอร์สแพ็กเกจล่าสุดและคอมไพล์:
# wget https://mhddfs.uvw.ru/downloads/mhddfs_0.1.39.tar.gz # tar -zxvf mhddfs*.tar.gz # cd mhddfs-0.1.39/ # make
ควรเห็นไบนารี mhddfs ในไดเรกทอรีปัจจุบัน ย้ายไป /usr/bin/ และ /usr/local/bin/ เป็น root:
# cp mhddfs /usr/bin/ # cp mhddfs /usr/local/bin/
พร้อมแล้ว mhddfs พร้อมใช้งาน
วิธีใช้ Mhddfs?
1. ดู HDD ทั้งหมดที่ mount อยู่ในระบบ:
$ df -h

ตัวอย่างเอาต์พุต
Filesystem Size Used Avail Use% Mounted on /dev/sda1 511M 132K 511M 1% /boot/efi /dev/sda2 451G 92G 336G 22% / /dev/sdb1 1.9T 161G 1.7T 9% /media/avi/BD9B-5FCE /dev/sdc1 555M 555M 0 100% /media/avi/Debian 8.1.0 M-A 1
สังเกตชื่อ 'Mount Point' ที่นี่ เราจะใช้ในภายหลัง
2. สร้างไดเรกทอรี /mnt/virtual_hdd ที่จะรวมระบบไฟล์ทั้งหมด:
# mkdir /mnt/virtual_hdd
3. จากนั้น mount ระบบไฟล์ทั้งหมด ไม่ว่าจะเป็น root หรือ user ที่เป็นสมาชิกกลุ่ม FUSE:
# mhddfs /boot/efi, /, /media/avi/BD9B-5FCE/, /media/avi/Debian\ 8.1.0\ M-A\ 1/ /mnt/virtual_hdd -o allow_other

หมายเหตุ: เราใช้ชื่อ Mount Point ของ HDD ทั้งหมด ในกรณีของคุณจะต่างออกไป สังเกตตัวเลือก "-o allow_other" ทำให้ virtual file system นี้มองเห็นได้โดยทุกคน ไม่ใช่แค่ผู้สร้าง
4. รัน "df -h" ดูระบบไฟล์ทั้งหมด ควรมี virtual filesystem ที่เพิ่งสร้าง
$ df -h

คุณสามารถทำทุกอย่างกับ Virtual File System ที่สร้างได้เหมือนกับ Mounted Drive ปกติ
5. เพื่อสร้าง Virtual File system นี้ทุกครั้งที่ boot ให้เพิ่มบรรทัดด้านล่าง (ในกรณีของคุณจะต่างออกไป ขึ้นอยู่กับ mount point) ที่ท้ายไฟล์ /etc/fstab เป็น root:
mhddfs# /boot/efi, /, /media/avi/BD9B-5FCE/, /media/avi/Debian\ 8.1.0\ M-A\ 1/ /mnt/virtual_hdd fuse defaults,allow_other 0 0
6. หากต้องการเพิ่ม/ลบไดรฟ์ใหม่ใน Virtual_hdd ให้ mount ไดรฟ์ใหม่ คัดลอกเนื้อหาจาก mount point /mnt/virtual_hdd, un-mount โวล्यูม, Eject ไดรฟ์ที่ต้องการลบ และ/หรือ mount ไดรฟ์ใหม่ที่ต้องการเพิ่ม Mount ระบบไฟล์ทั้งหมดภายใต้ Virtual_hdd ด้วยคำสั่ง mhddfs และเสร็จสิ้น
วิธี Un-Mount Virtual_hdd?
การ unmount virtual_hdd ง่ายมาก:
# umount /mnt/virtual_hdd

สังเกตว่าเป็น umount ไม่ใช่ unmount ผู้ใช้หลายคนพิมพ์ผิด
ขอจบครับ ตอนนี้ผมกำลังทำบทความอีกเรื่องที่คุณจะชอบ อ่านต่อได้ที่ Tecmint ให้ความคิดเห็นมีค่าในคอมเมนต์ด้านล่าง Like และ share ช่วยเราเผยแพร่ได้