• Categories
    Category
    {{ postCtrl.tags }}
    • {{ category.tag_type }}

      • {{tag.tag_name}}
      • View more
  • Categories
    Category
    {{ postCtrl.tags }}
    • {{ category.tag_type }}

      • {{tag.tag_name}}
      • View more
  • News
  • Tutorials
  • Forums
  • Tags
  • Users
Tutorial News Comments FAQ Related Articles

How to combine several partitions together to form single larger Storage using Mhddfs

{{postValue.id}}

To combine several partitions together to form single larger Storage using Mhddfs

This article is about how to combine smaller partitions into a larger virtual storage using Mhddfs. There is a two good solution for this. First solution is, create a RAID array of disk. RAID contains usable disk space and storage reliability. Another solution is termed as mhddfs. Mhddfs is a driver that forms small files into a big virtual file system. This is an easy way for storing a large amount of data.

Features of Mhddfs

  • File system and System Information needs to get.
  • File system attributes to be set.
  • Files and Directories is to create, Read, Remove and write.
  • File locks and Hard links on single device is to be supported.

Install Mhddfs in Linux

Dnf package manager is mentioned below we may use it for Fedora 22+ systems.

dnf installmhddfs

On Debian distributions you can install mhddfs package using the following command.

apt-get update & &  apt-get install mhddfs

To install in CentOS/Fedora systems

Before installing the mhddfs driver, you need to install epel repository and some dependency packages for mhddfs driver.
To install Epel-repository for Centos and use the below command.

[root@linuxhelpDesktop]# yum install epel-release
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
...
...
  Installing : epel-release-6-8.noarch                                      1/1 
  Verifying  : epel-release-6-8.noarch                                      1/1 
Installed:
  epel-release.noarch 0:6-8                                                     
Complete!

To install the dependency packages fuse-devel,gcc,gcc-c++, glibc-devel,uthash-devel use the following commands.

[root@linuxhelp Desktop]# yum install fuse-devel
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
...
...
Installed:
  fuse-devel.x86_64 0:2.8.3-4.el6                                               
Complete!
[root@linuxhelp Desktop]# yum install gcc gcc-c++
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
...
...
Installed:
  gcc.x86_64 0:4.4.7-16.el6            gcc-c++.x86_64 0:4.4.7-16.el6           
Dependency Installed:
  glibc-devel.x86_64 0:2.12-1.166.el6_7.7                                       
Complete!
[root@linuxhelp Desktop]# yum install glibc-devel
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: centos.webwerks.com
 * epel: epel.mirror.net.in
 * extras: centos.webwerks.com
 * updates: centos.webwerks.com
Setting up Install Process
Package glibc-devel-2.12-1.166.el6_7.7.x86_64 already installed and latest version
Nothing to do
[root@linuxhelp Desktop]# yum install uthash-devel
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
...
...
  Installing : uthash-devel-1.9.9-6.el6.noarch                              1/1 
  Verifying  : uthash-devel-1.9.9-6.el6.noarch                              1/1 
Installed:
  uthash-devel.noarch 0:1.9.9-6.el6                                             
Complete!

To install mhddfs in CentOS

First download the mhddfs package using the following wget command.

[root@linuxhelp Desktop]# wget http://mhddfs.uvw.ru/downloads/mhddfs_0.1.39.tar.gz
--2016-03-28 19:11:42--  http://mhddfs.uvw.ru/downloads/mhddfs_0.1.39.tar.gz
Resolving mhddfs.uvw.ru... 178.79.155.71
...
...
100%[======================================> ] 40,665       200K/s   in 0.2s    
2016-03-28 19:11:48 (200 KB/s) - â &euro &oelig mhddfs_0.1.39.tar.gzâ &euro  saved [40665/40665]

To extract the downloaded package using the following command.

[root@linuxhelp Desktop]# tar -xvf mhddfs_0.1.39.tar.gz 
mhddfs-0.1.39/
mhddfs-0.1.39/debian/
mhddfs-0.1.39/debian/source/
...
...
mhddfs-0.1.39/Makefile
mhddfs-0.1.39/README
mhddfs-0.1.39/mhddfs.spec

To run the make command in the extracted directory

[root@linuxhelp Desktop]# cd mhddfs-0.1.39/
[root@linuxhelp mhddfs-0.1.39]# make
mkdir -p obj
touch obj/obj-stamp
gcc -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse   -DFUSE_USE_VERSION=26 -MMD -c src/debug.c -o obj/debug.o
gcc -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse   -DFUSE_USE_VERSION=26 -MMD -c src/flist.c -o obj/flist.o
...
...
gcc -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse   -DFUSE_USE_VERSION=26 -MMD -c src/usage.c -o obj/usage.o
gcc -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse   -DFUSE_USE_VERSION=26 -MMD obj/debug.o obj/flist.o obj/main.o obj/parse_options.o obj/tools.o obj/usage.o -o mhddfs -pthread -L/lib64 -lfuse -lrt -ldl  
[root@linuxhelp mhddfs-0.1.39]# ll
total 148
-rw-rw-r--. 1 1000 1000  1864 Jun 17  2012 ChangeLog
-rw-rw-r--. 1 1000 1000   710 Jun 17  2012 COPYING
drwxrwxr-x. 3 1000 1000  4096 Jun 17  2012 debian
-rw-rw-r--. 1 1000 1000 35147 Jun 17  2012 LICENSE
-rw-rw-r--. 1 1000 1000  5447 Jun 17  2012 Makefile
-rwxr-xr-x. 1 root root 51403 Mar 28 19:16 mhddfs
-rw-rw-r--. 1 1000 1000  2635 Jun 17  2012 mhddfs.1
-rw-rw-r--. 1 1000 1000  3773 Jun 17  2012 mhddfs.spec
drwxrwxr-x. 2 1000 1000  4096 Jun 17  2012 mnt
drwxr-xr-x. 2 root root  4096 Mar 28 19:16 obj
-rw-rw-r--. 1 1000 1000  4311 Jun 17  2012 README
-rw-rw-r--. 1 1000 1000  6623 Jun 17  2012 README.ru.UTF-8
drwxrwxr-x. 3 1000 1000  4096 Jun 17  2012 src
drwxrwxr-x. 2 1000 1000  4096 Jun 17  2012 tests

Now copy the mhddfs file to /usr/bin and /usr/local/bin directories.

[root@linuxhelp mhddfs-0.1.39]# cp mhddfs /usr/bin
[root@linuxhelp mhddfs-0.1.39]# cp mhddfs /usr/local/bin

Mhddfs

Step 1:
Currently mounted HDD.

[root@linuxhelp mhddfs-0.1.39]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              15G  3.9G  9.9G  28% /
tmpfs                 495M  228K  495M   1% /dev/shm
/dev/sda1             194M   29M  156M  16% /boot
/dev/sda5             2.0G   67M  1.9G   4% /new
/dev/sda6            1020M   34M  935M   4% /test

Mount Point name needs to be point out. It will be used by later.

Step: 2
Create /mnt/virtual_storage for mounting the virtual storage.

[root@linuxhelp ~]# mkdir /mnt/virtual_storage

Step: 3
Use the following command to mount the virtual storage.

[root@linuxhelp ~]# mhddfs /new,/,/test /mnt/virtual_storage -o allow_other
mhddfs: directory ' /new'  added to list
mhddfs: directory ' /'  added to list
mhddfs: directory ' /test'  added to list
mhddfs: mount to: /mnt/virtual_storage
mhddfs: move size limit 4294967296 bytes

-o allow_other option is used to make virtual file system visible to all users not only the user who created it.

Step: 4
Now open the /etc/fstab file and add the following line to mount the virtual storage permanently. You need to be a root user to open this file.

mhddfs#/new,/,/test     /mnt/virtual_storage     fuse     defaults    0 0

To restart the system,

[root@linuxhelp~]#init 6

Step: 5
To see all the File systems run df -h.

[root@linuxhelp ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              15G  3.9G  9.9G  28% /
tmpfs                 495M  228K  495M   1% /dev/shm
/dev/sda1             194M   29M  156M  16% /boot
/dev/sda5             2.0G   67M  1.9G   4% /new
/dev/sda6            1020M   34M  935M   4% /test
/new / /test           18G  4.0G   13G  24% /mnt/virtual_storage

Step: 6
To unmount the virtual storage use the following command.

[root@linuxhelp Desktop]# umount /mnt/virtual_hdd

Tags:
elijah
Author: 

Comments ( 0 )

No comments available

Add a comment
{{postCtrl.cmtErrMsg}}

Frequently asked questions ( 5 )

Q

What is a command to create new mount point directory and how to join in mhddfs?

A

To create mount point

Syntax:"mkdir /virtual.data"

To join use this command

Syntax: "mhddfs /disk1,/disk2,/disk3 /virtual.data -o allow_other"

Q

How do I unmount mhddfs based fuse file systems?

A

Use the umount command to detaches the /virtual.data/ file system:
Syntax: "umount /virtual.data/"

Q

What is the option to find the free space in mhddfs?

A

This option accepts suffixes:
[mM] - megabytes
[gG] - gigabytes
[kK] - kilobytes
For an information about the additional options see an output of:
mhddfs -h

Q

Where to create a log file for a mhddfs?

A

Specify a file that will contain debug information.
path= logfile=/path/to/file.log

Q

Are there any mhddfs write performance issue or low powered CPU?

A

yes, I don't use it anymore as it reduces, ... I noticed that mhddfs consume a lot of CPU (over 50%) in 4 threads.

Back To Top!
Rank
User
Points

Top Contributers

userNamenaveelansari
135850

Top Contributers

userNameayanbhatti
92510

Top Contributers

userNamehamzaahmed
32150

Top Contributers

1
userNamelinuxhelp
31040

Top Contributers

userNamemuhammadali
24500
Can you help Lucas ?
Various options in Top command

Am using Top command only to view the load average, what are the various options in Top command..??

Networking
  • Routing
  • trunk
  • Netmask
  • Packet Capture
  • domain
  • HTTP Proxy
Server Setup
  • NFS
  • KVM
  • Memory
  • Sendmail
  • WebDAV
  • LXC
Shell Commands
  • Cloud commander
  • Command line archive tools
  • last command
  • Shell
  • terminal
  • Throttle
Desktop Application
  • Linux app
  • Pithos
  • Retrospect
  • Scribe
  • TortoiseHg
  • 4Images
Monitoring Tool
  • Monit
  • Apache Server Monitoring
  • EtherApe 
  • Arpwatch Tool
  • Auditd
  • Barman
Web Application
  • Nutch
  • Amazon VPC
  • FarmWarDeployer
  • Rukovoditel
  • Mirror site
  • Chef
Contact Us | Terms of Use| Privacy Policy| Disclaimer
© 2026 LinuxHelp.com All rights reserved. Linux™ is the registered trademark of Linus Torvalds. This site is not affiliated with linus torvalds in any way.