λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT

μ€‘μ†ŒκΈ°μ—…μ„ μœ„ν•œ μ™„λ²½ν•œ λ°±μ—… μ‹œμŠ€ν…œ NAS ꡬ좕 κ°€μ΄λ“œ " μ•ˆμ „ν•œ λ°±μ—…μœΌλ‘œ 자료 λ³΄κ΄€ν•˜κΈ°"

λ°˜μ‘ν˜•

μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ‹œμŠ€ν…œ Ubuntuλ₯Ό ν™œμš©ν•œ NAS ꡬ좕 방법

자료λ₯Ό μƒμ„±ν•˜λŠ” 것 λͺ»μ§€μ•Šκ²Œ, 이λ₯Ό μ•ˆμ „ν•˜κ²Œ λ³΄κ΄€ν•˜λŠ” 것 μ—­μ‹œ 맀우 μ€‘μš”ν•œ μš”μ†Œμž…λ‹ˆλ‹€. 특히 μ€‘μ†ŒκΈ°μ—…μ—μ„œλŠ” 데이터 λ³΄ν˜Έμ™€ 관리가 점점 더 μ€‘μš”ν•œ 문제둜 λ– μ˜€λ₯΄κ³  μžˆμŠ΅λ‹ˆλ‹€. μ€‘μš”ν•œ λ°μ΄ν„°λŠ” μ–Έμ œλ“ μ§€ μ ‘κ·Όν•  수 μžˆλ„λ‘ μ•ˆμ „ν•˜κ²Œ λ°±μ—…ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 것이 이제 선택이 μ•„λ‹Œ ν•„μˆ˜ 사항이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ§Žμ€ μ€‘μ†ŒκΈ°μ—…λ“€μ΄ λ°±μ—… μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜λŠ” 데 어렀움을 κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. 이와 κ΄€λ ¨ν•΄ μ™ΈλΆ€ 업체에 μ˜λ’°ν•˜μ—¬ λ°±μ—… μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜λŠ” 경우, μ˜ˆμƒμΉ˜ λͺ»ν•œ 경제적 뢀담이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ™ΈλΆ€ 업체에 μ˜λ’°ν•˜λ©΄ 지속적인 λΉ„μš©μ΄ λ°œμƒν•˜λ©°, μ΄λŠ” μ€‘μ†ŒκΈ°μ—…μ— 큰 뢀담이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

  • μ™ΈλΆ€ 업체에 의뒰 μ‹œ 지속적인 경제적 λΆ€λ‹΄ λ°œμƒ
  • μ€‘μ†ŒκΈ°μ—… μ˜ˆμ‚° λ‚΄μ—μ„œ λ°±μ—… μ‹œμŠ€ν…œ ꡬ좕 ν•„μš”
  • μ™ΈλΆ€ 업체 μ˜μ‘΄μ„ 쀄이고 자체적인 λ°±μ—… μ‹œμŠ€ν…œ ꡬ좕 μ„ ν˜Έ

μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ‹œμŠ€ν…œ

μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜λŠ” 것은 λ‹¨μˆœνžˆ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, 지속 κ°€λŠ₯ν•œ 보호 및 관리 체계λ₯Ό λ§ˆλ ¨ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λ§Žμ€ μ€‘μ†ŒκΈ°μ—…λ“€μ΄ κ³ λΉ„μš©μ˜ μ™ΈλΆ€ 업체 μ˜μ‘΄λ³΄λ‹€λŠ” 자체적인 λ°±μ—… μ‹œμŠ€ν…œ ꡬ좕을 μ„ ν˜Έν•˜λŠ” μ΄μœ μž…λ‹ˆλ‹€. 특히, λ°±μ—… μ†”λ£¨μ…˜μ„ κ΅¬μΆ•ν•˜λŠ” 데 λ“œλŠ” λΉ„μš©μ΄ 크기 λ•Œλ¬Έμ— μ€‘μ†ŒκΈ°μ—…μ˜ 경우 μ˜ˆμ‚° λ‚΄μ—μ„œ 효과적인 λŒ€μ•ˆμ„ μ°ΎλŠ” 것이 μ€‘μš”ν•œ 문제둜 λΆ€κ°λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

이런 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ 방법 쀑 ν•˜λ‚˜κ°€ λ°”λ‘œ Ubuntu μ„œλ²„λ₯Ό μ΄μš©ν•œ NAS κ΅¬μΆ•μž…λ‹ˆλ‹€. μ €λΉ„μš©μœΌλ‘œ κ°•λ ₯ν•œ λ°±μ—… μ†”λ£¨μ…˜μ„ μ œκ³΅ν•˜λŠ” NAS(Network Attached Storage)λŠ” μ€‘μ†ŒκΈ°μ—…μ˜ 데이터 관리 및 백업에 맀우 합리적인 선택이 될 수 μžˆμŠ΅λ‹ˆλ‹€. NAS μ‹œμŠ€ν…œμ„ 톡해 μ€‘μ†ŒκΈ°μ—…μ€ μ•ˆμ •μ μΈ λ°±μ—… ν™˜κ²½μ„ κ΅¬μΆ•ν•˜λ©΄μ„œλ„ 경제적인 뢀담을 μ΅œμ†Œν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • NAS μ‹œμŠ€ν…œμœΌλ‘œ λ°μ΄ν„°μ˜ μ•ˆμ „μ„± 확보
  • μ™ΈλΆ€ 업체 의쑴 없이 μžκ°€ 관리 κ°€λŠ₯
  • Ubuntu 기반으둜 μœ μ—°ν•œ μ»€μŠ€ν„°λ§ˆμ΄μ§• κ°€λŠ₯

특히 Ubuntuλ₯Ό ν™œμš©ν•œ NAS ꡬ좕은 λˆ„κ΅¬λ‚˜ μ‰½κ²Œ 따라할 수 μžˆλŠ” λ°©λ²•μœΌλ‘œ, μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ‹œμŠ€ν…œμ„ 효과적으둜 ꡬ좕할 수 μžˆλŠ” 쒋은 λŒ€μ•ˆμ΄ λ©λ‹ˆλ‹€. NASλ₯Ό κ΅¬μΆ•ν•˜λ©΄ λ°μ΄ν„°μ˜ μ•ˆμ „μ„±μ„ 높이고, μ™ΈλΆ€ 업체에 μ˜μ‘΄ν•˜μ§€ μ•Šκ³  μžκ°€ 관리가 κ°€λŠ₯ν•˜κ²Œ λ©λ‹ˆλ‹€. λ˜ν•œ Ubuntu 기반으둜 ꡬ좕할 경우, λ‹€μ–‘ν•œ μ»€μŠ€ν„°λ§ˆμ΄μ§•μ΄ κ°€λŠ₯ν•˜μ—¬ μ€‘μ†ŒκΈ°μ—…μ˜ ν•„μš”μ— 맞좘 λ°±μ—… μ‹œμŠ€ν…œμ„ 섀계할 수 μžˆμŠ΅λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ‹œμŠ€ν…œμ„ ꡬ좕할 수 μžˆλŠ” μœ μš©ν•œ λ°©λ²•μœΌλ‘œ Ubuntu μ„œλ²„λ₯Ό μ΄μš©ν•œ NAS ꡬ좕 방법을 λ‹¨κ³„λ³„λ‘œ μ†Œκ°œν•©λ‹ˆλ‹€.

1. ν•˜λ“œμ›¨μ–΄ μ€€λΉ„: μ΅œμ†Œ 사양과 μ˜ˆμ‚°

NAS ꡬ좕을 μœ„ν•΄μ„œλŠ” μ΅œμ†Œν•œμ˜ ν•˜λ“œμ›¨μ–΄ 사양이 ν•„μš”ν•©λ‹ˆλ‹€. 일반 PCλ‚˜ μ €μ „λ ₯ λ―Έλ‹ˆPCλ₯Ό ν™œμš©ν•˜μ—¬ 경제적인 NAS λ°±μ—… μ‹œμŠ€ν…œμ„ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” μΆ”μ²œν•˜λŠ” ν•˜λ“œμ›¨μ–΄ μ‚¬μ–‘μž…λ‹ˆλ‹€.

λΆ€ν’ˆ 사양 λΉ„κ³ 
PC/μ„œλ²„ x64 CPU (Intel Celeron 이상) 라즈베리파이 5도 μ‚¬μš© κ°€λŠ₯
RAM 4GB 이상 ZFS μ‚¬μš© μ‹œ 8GB 이상 ꢌμž₯
μ €μž₯μž₯치 HDD 2TB x2 (RAID 1 ꡬ성) NAS μ „μš© ν•˜λ“œ(WD Red, Seagate IronWolf λ“±)
SSD 120GB (μ‹œμŠ€ν…œ μ„€μΉ˜μš©) 선택 사항
λ„€νŠΈμ›Œν¬ κΈ°κ°€λΉ„νŠΈ μœ μ„  LAN Wi-FiλŠ” λΉ„μΆ”μ²œ
μ˜ˆμ‚° 20~50λ§Œμ› 쀑고 λΆ€ν’ˆ ν™œμš© μ‹œ 더 μ €λ ΄

이와 같은 ν•˜λ“œμ›¨μ–΄ 사양을 κ°–μΆ”λ©΄ 10TB μ΄μƒμ˜ 데이터 μ €μž₯μ†Œλ₯Ό μ•ˆμ „ν•˜κ²Œ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€. μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ†”λ£¨μ…˜μœΌλ‘œμ„œ λΉ„μš©μ„ μ΅œμ†Œν™”ν•˜λ©΄μ„œλ„ μ„±λŠ₯을 μΆ©λΆ„νžˆ 확보할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•

2. Ubuntu Server μ„€μΉ˜: NAS 운영체제 μ„€μ •

Ubuntu ServerλŠ” μ•ˆμ •μ μ΄κ³  κ°•λ ₯ν•œ NAS 운영체제둜, λ‹€μ–‘ν•œ λ°±μ—… μ†”λ£¨μ…˜μ„ μ§€μ›ν•©λ‹ˆλ‹€. μ„€μΉ˜ 과정은 κ°„λ‹¨ν•˜λ©°, λͺ‡ κ°€μ§€ μ€‘μš”ν•œ 섀정을 톡해 μ‹œμŠ€ν…œ μ•ˆμ •μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

1. Ubuntu Server 이미지 λ‹€μš΄λ‘œλ“œ

λ¨Όμ €, 곡식 μ‚¬μ΄νŠΈμ—μ„œ Ubuntu 22.04 LTS μ„œλ²„ 버전을 λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

wget https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso

2. USB μ„€μΉ˜ λ―Έλ””μ–΄ λ§Œλ“€κΈ°

USB λ©”λͺ¨λ¦¬λ‚˜ μ™Έμž₯ SSDλ₯Ό μ‚¬μš©ν•΄ Ubuntu Server μ„€μΉ˜ λ―Έλ””μ–΄λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. Rufus λ˜λŠ” Ventoy와 같은 도ꡬλ₯Ό ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. μ„€μΉ˜ μ‹œ μ£Όμ˜μ‚¬ν•­

  • OpenSSH μ„œλ²„λ₯Ό μ„€μΉ˜ν•˜μ—¬ 원격 접속을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.
  • LVM ꡬ성을 μ„ νƒν•˜μ—¬ μžλ™ νŒŒν‹°μ…˜μ„ μƒμ„±ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.
  • μ‚¬μš©μž 계정 생성: μ˜ˆμ‹œ - nasadmin

3. μ €μž₯μ†Œ μ„€μ •: RAID 1 κ΅¬μ„±μœΌλ‘œ 데이터 보호

NASμ—μ„œ κ°€μž₯ μ€‘μš”ν•œ κΈ°λŠ₯은 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ κ΄€λ¦¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. RAID 1(미러링) κ΅¬μ„±μœΌλ‘œ 두 개의 ν•˜λ“œ λ“œλΌμ΄λΈŒμ— λ™μΌν•œ 데이터λ₯Ό λ³΅μ œν•˜μ—¬ μ•ˆμ •μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€. Ubuntuμ—μ„œλŠ” ZFS λ˜λŠ” mdadm μ†Œν”„νŠΈμ›¨μ–΄ RAID둜 RAID 1을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

방법 1: ZFS 파일 μ‹œμŠ€ν…œ (μΆ”μ²œ)

ZFSλŠ” λ›°μ–΄λ‚œ 데이터 보호 및 μ„±λŠ₯ μ΅œμ ν™”λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

sudo apt update && sudo apt install -y zfsutils-linux
sudo zpool create tank mirror /dev/sdb /dev/sdc
sudo zfs set compression=lz4 tank
sudo zfs set atime=off tank

방법 2: mdadm μ†Œν”„νŠΈμ›¨μ–΄ RAID

mdadm을 μ‚¬μš©ν•΄ RAID 1을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

sudo apt install mdadm
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
sudo mkfs.ext4 /dev/md0
sudo mount /dev/md0 /mnt/backup

4. 곡유 폴더 μ„€μ •: NASμ™€μ˜ 데이터 곡유

NAS의 핡심은 데이터λ₯Ό λ‹€λ₯Έ μž₯μΉ˜μ™€ μ‰½κ²Œ κ³΅μœ ν•  수 μžˆλ‹€λŠ” μ μž…λ‹ˆλ‹€. Samba와 NFSλ₯Ό μ‚¬μš©ν•˜μ—¬ Ubuntu NASμ—μ„œ 데이터λ₯Ό κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Samba (Windows ν˜Έν™˜)

Windows μ‹œμŠ€ν…œκ³Ό ν˜Έν™˜λ˜λŠ” 곡유 폴더λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

sudo apt install samba
sudo smbpasswd -a nasadmin  # Samba μ „μš© νŒ¨μŠ€μ›Œλ“œ μ„€μ •

smb.conf νŒŒμΌμ„ νŽΈμ§‘ν•˜μ—¬ 곡유 폴더λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

[Backup]
path = /tank/backup
valid users = nasadmin
read only = no
create mask = 0664
directory mask = 0775

NFS (Linux/macOS ν˜Έν™˜)

Linux 및 macOS와 ν˜Έν™˜λ˜λŠ” 곡유 폴더 μ„€μ • λ°©λ²•μž…λ‹ˆλ‹€.

sudo apt install nfs-kernel-server
sudo nano /etc/exports
/tank/backup 192.168.1.0/24(rw,sync,no_subtree_check)
sudo exportfs -a

5. μžλ™ λ°±μ—… μ‹œμŠ€ν…œ ꡬ좕: rsync와 BorgBackup ν™œμš©

NASλŠ” μ€‘μš”ν•œ 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ λ°±μ—…ν•˜λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. rsync와 cron을 μ‚¬μš©ν•œ μžλ™ λ°±μ—… μ„€μ •κ³Ό BorgBackup을 ν™œμš©ν•œ μ•”ν˜Έν™”λœ λ°±μ—… μ‹œμŠ€ν…œμ„ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€.

κΈ°λ³Έ λ°±μ—… (rsync + cron)

#!/bin/bash
rsync -av --delete /원본/경둜 /tank/backup
zfs snapshot tank/backup@$(date +%Y%m%d)
sudo chmod +x /usr/local/bin/backup.sh
(crontab -l ; echo "0 2 * * * /usr/local/bin/backup.sh") | crontab -

BorgBackup (μ•”ν˜Έν™” + μ€‘λ³΅μ œκ±°)

sudo apt install borgbackup
borg init --encryption=repokey /tank/borg-repo
borg create /tank/borg-repo::'{hostname}-{now}' /원본/경둜

6. 원격 접속 및 λ³΄μ•ˆ μ„€μ •: NAS 보호

SSH λ³΄μ•ˆ κ°•ν™”

κΈ°λ³Έ 포트λ₯Ό λ³€κ²½ν•˜κ³ , 루트 둜그인과 νŒ¨μŠ€μ›Œλ“œ 인증을 λΉ„ν™œμ„±ν™”ν•˜μ—¬ λ³΄μ•ˆμ„ κ°•ν™”ν•©λ‹ˆλ‹€.

sudo nano /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
sudo systemctl restart ssh

Tailscale VPN μ„€μΉ˜ (VPN 없이 μ•ˆμ „ν•œ μ ‘κ·Ό)

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

7. μ›Ή 관리 μΈν„°νŽ˜μ΄μŠ€ (선택)

Cockpit μ„€μΉ˜

μ›Ή λΈŒλΌμš°μ €λ₯Ό 톡해 NASλ₯Ό 관리할 수 μžˆλŠ” Cockpit을 μ„€μΉ˜ν•©λ‹ˆλ‹€.

sudo apt install -y cockpit
sudo systemctl enable --now cockpit.socket

접속 URL: https://NAS_IP:9090

Nextcloud μ„€μΉ˜

파일 관리 및 곡유λ₯Ό μœ„ν•œ Nextcloudλ₯Ό μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

sudo snap install nextcloud
sudo nextcloud.manual-install nasadmin λΉ„λ°€λ²ˆν˜Έ

8. ν•„μˆ˜ λ³΄μ•ˆ 쑰치 및 μ„±λŠ₯ μ΅œμ ν™”

μžλ™ μ—…λ°μ΄νŠΈ μ„€μ •

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

λ°©ν™”λ²½ μ„€μ •

sudo ufw allow 2222/tcp
sudo ufw enable

μ„±λŠ₯ μ΅œμ ν™” (ZFS)

sudo zfs set primarycache=all tank
sudo ethtool -K eth0 tx off rx off tso off gso off

μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ‹œμŠ€ν…œ ꡬ좕 ν™œμš©ν•˜κΈ°

μœ„ 단계λ₯Ό 톡해 Ubuntu μ„œλ²„λ₯Ό μ΄μš©ν•΄ μ€‘μ†ŒκΈ°μ—… λ°±μ—… μ‹œμŠ€ν…œμ„ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ°©λ²•μœΌλ‘œ 파일 μ €μž₯, λ°±μ—…, 원격 접속, μ›Ή κ΄€λ¦¬κΉŒμ§€ λͺ¨λ‘ μ§€μ›ν•˜λ©°, 슀마트폰 앱을 톡해 μ–Έμ œλ“ μ§€ 데이터λ₯Ό μ ‘κ·Όν•˜κ³  관리할 수 μžˆμŠ΅λ‹ˆλ‹€. μ€‘μš”ν•œ λ°μ΄ν„°λŠ” λ°˜λ“œμ‹œ λ°±μ—… 원칙을 μ μš©ν•˜μ—¬ μ•ˆμ „ν•˜κ²Œ λ³΄κ΄€ν•˜μ„Έμš”!

λ°˜μ‘ν˜•