Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드

⚠️ 시작하기 전에: mhddfs는 2012년 이후 개발이 중단되어 더 이상 유지보수되지 않으며, 알려진 보안 취약점도 있습니다. 홈랩(홈 서버) 커뮤니티가 이미 이주한 현대적이고 활발히 관리되는 대안인 mergerfs로의 전환을 권장합니다. 👉 mergerfs 설정 가이드를 참고해 보세요.

여러 드라이브를 하나로 합쳐야 하는 문제

예를 들어 30GB 분량의 영화 파일이 있고, 각각 20GB 용량의 드라이브 3개가 있다고 가정해 봅시다. 이 데이터를 어떻게 저장하시겠습니까?

물론 동영상을 둘 또는 셋으로 나누어 각 드라이브에 수동으로 저장할 수 있습니다. 하지만 이건 분명 좋은 방법이 아닙니다. 매번 수작업이 필요하고 많은 시간을 낭비하게 되는 번거로운 작업이기 때문입니다.

또 다른 해결책으로 디스크 RAID 배열을 구성하는 방법이 있지만, RAID는 저장 공간 낭비와 데이터 신뢰성 문제로 늘 지적받아 왔습니다. 이 글에서 소개할 또 하나의 해결책이 바로 mhddfs입니다.

mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드Mhddfs – 리눅스에서 여러 파티션을 하나로 결합

mhddfs란 무엇인가?

mhddfs는 여러 마운트 포인트를 하나의 가상 디스크로 묶어주는 리눅스용 드라이버입니다. FUSE 기반으로 동작하며, 대용량 데이터 저장에 대한 손쉬운 해결책을 제공합니다. 여러 개의 작은 파일 시스템을 하나의 거대한 가상 파일 시스템으로 결합하며, 이 가상 파일 시스템에는 멤버 파일 시스템의 모든 요소, 즉 파일과 빈 공간까지 전부 포함됩니다.

왜 mhddfs가 필요한가?

모든 저장 장치가 하나의 가상 풀(pool)로 통합되며, 부팅 시 자동으로 마운트할 수 있습니다. 이 작은 유틸리티는 어느 드라이브가 가득 찼고 어느 드라이브가 비어 있는지 판단해, 데이터를 기록할 드라이브를 지능적으로 선택해 줍니다. 가상 드라이브를 성공적으로 만든 후에는 SAMBA를 통해 가상 파일 시스템을 공유할 수도 있습니다. 클라이언트 입장에서는 언제나 하나의 거대한 드라이브와 넉넉한 여유 공간만 보이게 됩니다.

mhddfs의 주요 기능

  1. 파일 시스템 속성 및 시스템 정보 조회
  2. 파일 시스템 속성 설정
  3. 디렉터리와 파일 생성, 읽기, 쓰기, 삭제
  4. 단일 장치 내에서의 파일 잠금(file lock) 및 하드링크(hardlink) 지원

mhddfs의 장점과 단점

장점단점
홈 사용자에게 적합리눅스 커널에 드라이버가 내장되어 있지 않음
실행 방법이 간단함실행 중 많은 CPU 자원을 소모함
데이터 손실 사례가 보고된 적 없음중복성(redundancy)을 제공하지 않음
파일을 분할하지 않음하드링크 이동 미지원
통합 가상 파일 시스템에 새 파일 추가 가능
파일이 저장될 위치를 직접 관리 가능
확장 파일 속성(Extended attributes) 지원

리눅스에 mhddfs 설치하기

Debian 및 유사 계열 시스템에서는 다음 명령으로 mhddfs 패키지를 설치할 수 있습니다.

# apt-get update && apt-get install mhddfs
mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드Debian 계열 시스템에 Mhddfs 설치

RHEL/CentOS 시스템에서는 먼저 EPEL 저장소를 활성화한 후, 아래 명령으로 mhddfs 패키지를 설치합니다.

# yum install mhddfs

Fedora 22+에서는 dnf 패키지 관리자를 통해 설치할 수 있습니다.

# dnf install mhddfs
mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드Fedora에 Mhddfs 설치

만약 EPEL 저장소에서 mhddfs 패키지를 찾을 수 없다면, 아래 의존성 패키지들을 준비한 뒤 소스에서 직접 컴파일해야 합니다.

  1. FUSE 헤더 파일
  2. GCC
  3. libc6 헤더 파일
  4. uthash 헤더 파일
  5. libattr1 헤더 파일 (선택 사항)

그다음 최신 소스 패키지를 다운로드하여 컴파일합니다.

# wget https://mhddfs.uvw.ru/downloads/mhddfs_0.1.39.tar.gz
# tar -zxvf mhddfs*.tar.gz
# cd mhddfs-0.1.39/
# make

현재 디렉터리에 mhddfs 바이너리가 생성된 것을 확인할 수 있습니다. root 권한으로 이 파일을 /usr/bin//usr/local/bin/으로 복사합니다.

# cp mhddfs /usr/bin/
# cp mhddfs /usr/local/bin/

이것으로 준비 완료! mhddfs를 사용할 수 있습니다.

mhddfs 사용 방법

1. 먼저 현재 시스템에 마운트되어 있는 HDD 목록을 확인합니다.

$ df -h
mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드
출력 예시
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. 이제 모든 파일 시스템을 마운트합니다. root 권한 또는 FUSE 그룹에 속한 사용자로 실행하면 됩니다.

# mhddfs /boot/efi, /, /media/avi/BD9B-5FCE/, /media/avi/Debian\ 8.1.0\ M-A\ 1/ /mnt/virtual_hdd -o allow_other
mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드리눅스에서 모든 파일 시스템 마운트

참고: 위 예제에서는 각 HDD의 마운트 포인트 이름을 사용했습니다. 실제 환경에서는 마운트 포인트가 당연히 다를 것입니다. 또한 "-o allow_other" 옵션은 생성자뿐만 아니라 다른 모든 사용자에게도 이 가상 파일 시스템이 보이도록 만들어 줍니다.

4. 이제 "df -h" 명령을 실행해 전체 파일 시스템을 확인합니다. 방금 생성한 가상 파일 시스템이 목록에 포함되어 있어야 합니다.

$ df -h
mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드가상 파일 시스템 마운트 확인

생성한 가상 파일 시스템에는 일반적인 마운트된 드라이브에서 하듯 모든 작업을 수행할 수 있습니다.

5. 시스템 부팅 시마다 이 가상 파일 시스템을 자동으로 생성하려면, 아래 코드 한 줄을(root 권한으로) /etc/fstab 파일의 맨 끝에 추가합니다. 물론 마운트 포인트는 본인의 환경에 맞게 수정해야 합니다.

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에 새 드라이브를 추가하거나 기존 드라이브를 제거하고 싶다면, 다음 순서로 진행합니다. 새 드라이브를 마운트하고, /mnt/virtual_hdd 마운트 포인트의 내용을 복사한 뒤 볼륨을 마운트 해제합니다. 그다음 제거할 드라이브를 꺼내거나 새로 포함할 드라이브를 마운트한 후, mhddfs 명령으로 전체 파일 시스템을 Virtual_hdd 아래에 다시 마운트하면 끝납니다.

virtual_hdd 마운트 해제 방법

마운트 해제는 아래처럼 아주 간단합니다.

# umount /mnt/virtual_hdd
mhddfs로 여러 드라이브를 하나의 가상 스토리지로 병합하기 – 리눅스 초보자 가이드가상 파일 시스템 마운트 해제

주의할 점은 unmount가 아니라 umount라는 것입니다. 많은 사용자가 이 철자를 잘못 입력하곤 합니다.

오늘은 여기까지입니다. 다음에 여러분이 즐겁게 읽으실 새로운 글을 준비하고 있으니 기대해 주세요. 소중한 피드백은 댓글로 남겨 주시고, 글이 도움이 되셨다면 공유 부탁드립니다!