์ฌ์
FSR(File Sync Replicator)์ ์ํํ ๋์์ ์ํด ์๊ตฌ๋๋ ํ๋ซํผ, ํ๋์จ์ด ๋ฆฌ์์ค, ๊ทธ๋ฆฌ๊ณ ๋ณต์ ์ง์ ๋ฒ์์ ๋ํ ์์ธ ์ฌ์์ ๊ธฐ์ ํฉ๋๋ค. ์์ ์ ์ธ ์๋น์ค ์ด์์ ์ํด ์๋ ๊ถ์ฅ ์ฌ์์ ์ค์ํ์ฌ ์์คํ ์ ๊ตฌ์ฑํ์ญ์์ค.
ํ๋ซํผ ๋ฐ ํ์ผ ์์คํ
FSR์ ์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ์ ์ฃผ์ ์ด์์ฒด์ ์ ํ์ผ ์์คํ ์ ์ง์ํฉ๋๋ค.
ย
์ง์ ์ด์์ฒด์ (OS)
Windows: Windows Server 2012 x64 ์ด์
Linux:
CentOS 7.x ์ด์
Ubuntu 18.04 LTS x64 ์ด์
(๊ธฐํ x86/x64 ํธํ ์ฃผ์ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ)
ย
์ง์ ํ์ผ ์์คํ
Windows: NTFS, ReFS
Linux: ext ๊ณ์ด (ext3, ext4), xfs
๋ฏธ์ง์: FAT/FAT32 ๋ฑ ๊ตฌํ ํ์ผ ์์คํ ์ ์ง์ํ์ง ์์ต๋๋ค.
ย
ํ๋์จ์ด ์๊ตฌ ์ฌํญ
์์คํ ์์ ์ฑ๊ณผ I/O ์ฒ๋ฆฌ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ต์ ๋ฐ ๊ถ์ฅ ํ๋์จ์ด ์ฌ์์ ๋๋ค.
ย
CPU
์ํคํ ์ฒ: x86/x64 ํธํ ํ๋ก์ธ์
์ฌ์: ์ต์ 2GHz ํด๋ญ, 4 Core ์ด์ ๊ถ์ฅ
์๋น์ค ์ํฅ๋ (CPU Usage):
์ผ๋ฐ ๋ณต์ ์: ์ค์๊ฐ ํ์ผ ์ด๋ฒคํธ ๊ฐ์ง ๋ฐ ์ ์ก ์ ํ๊ท 5% ์ด๋ด์ CPU ์ ์ ์จ์ ์ ์งํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด๋ ์ด์ ์๋ฒ์ ๋ฉ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์๋ ์ต์ ํ๋ ์์ค์ ๋๋ค.
๋๊ธฐํ ์: ์ด๊ธฐ ๊ตฌ์ถ์ด๋ ์ฅ์ ํ ์ฌ์ฐ๊ฒฐ ์ ์งํ๋๋ ์ ์ฒด ๋น๊ต ๋๊ธฐํ(Full Sync) ๋จ๊ณ์์๋ 10% ๋ด์ธ์ CPU ์์์ ์ฌ์ฉํฉ๋๋ค. ๋ค์์ ํ์ผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋น๊ต ๋ถ์ํ๋ ๊ณผ์ ์์ ์ผ์์ ์ผ๋ก ์ฌ์ฉ๋์ด ์ฆ๊ฐํ ์ ์์ผ๋, ์์คํ ์์ ์ฑ์ ํด์น์ง ์๋ ๋ฒ์ ๋ด์์ ์ค์ผ์ค๋ง๋ฉ๋๋ค.
์ต์ ํ ๊ธฐ๋ฅ: CPU ๋ถํ๊ฐ ์ฐ๋ ค๋๋ ์ ์ฌ์ ํ๊ฒฝ์์๋ ์์ง ์ค์ ์ ํตํด ๋๊ธฐํ ์๋๋ฅผ ์กฐ์ ํ๊ฑฐ๋, ํน์ ์๊ฐ๋์๋ง ๊ฐ๋ํ๋๋ก ์ค์ ํ์ฌ ์์ ์ ์ ๋ฅผ ์ ์ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
ย
๋ฉ๋ชจ๋ฆฌ (RAM)
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ์ ์์คํ ์ด์ ์์ญ๊ณผ ๋ณต์ ๋ฒํผ ์์ญ์ผ๋ก ๋๋๋ฉฐ, ๊ฐ ์ฉ๋์ ๋ง๋ ์ถฉ๋ถํ ๋ฆฌ์์ค ํ๋ณด๊ฐ ํ์ํฉ๋๋ค.
์์คํ ๊ถ์ฅ ๋ฉ๋ชจ๋ฆฌ
๊ธฐ๋ณธ ์ฉ๋: ์ต์ 4GB ์ด์
๊ฐ์ฉ ์ฉ๋: ์ ์ฒด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ 30% ์ด์ ์ฌ์ ๊ณต๊ฐ ํ๋ณด ๊ถ์ฅ
์ฃผ์: ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ ๋ฐ๋ฅธ I/O ์ฑ๋ฅ ์ ํ ์ด์์ฒด์ ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ถ์กฑํด์ง ๊ฒฝ์ฐ, ๊ฐ์ฉ ๋ฉ๋ชจ๋ฆฌ ํ๋ณด๋ฅผ ์ํด ๋์คํฌ๋ฅผ ํ์ฉํ๋ ํ์ด์ง(Paging/Swapping) ๊ธฐ๋ฒ์ ๊ฐ๋ํฉ๋๋ค.
ํ์ด์ง์ด ๋ฐ์ํ๋ฉด ๋์คํฌ ์ฝ๊ธฐ/์ฐ๊ธฐ ์์ ์ด ๊ธ์ฆํ์ฌ I/O ๋ณ๋ชฉ ํ์(Disk Thrashing)์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ ๋์คํฌ ์์์ ํ์์ ์ผ๋ก ์ฌ์ฉํ๋ FSR์ ๋ณต์ ์ฑ๋ฅ์ ์ฌ๊ฐํ ์ง์ฐ์ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์คํ ์์ ์ฑ์ ์ํด ํ์ด์ง์ด ๋ฐ์ํ์ง ์๋๋ก ์ถฉ๋ถํ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ ๊ณต๊ฐ์ ์์ ํ๋ณดํด์ผ ํฉ๋๋ค.
๋ณต์ ์ฉ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ (Memory Buffer)
๋ก์ปฌ I/O ๋ถํ๋ฅผ ์์ถฉํ๊ณ ์ ์ก ํจ์จ์ ๋์ด๊ธฐ ์ํ ๋ฒํผ ํฌ๊ธฐ ์ฐ์ ๊ณต์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Buffer Size = Max Bandwidth(/sec) * Timeout(sec)
์ฐ์ ์์ (1Gbps ๋์ญํญ ๊ธฐ์ค):
๋์ญํญ: 100MB/s (์ฝ 1Gbps)
ํ์์์: 5s
๊ณ์ฐ: 100MB/s * 5s = 500MB
๊ถ์ฅ ์ค์ : ๊ณ์ฐ๊ฐ์ ์ฌ์ ๋ฅผ ๋์ด 500MB ~ 1GB๋ก ์ค์
WAN ๊ตฌ๊ฐ (DR) ๊ตฌ์ฑ ์ ๊ณ ๋ ค์ฌํญ
DRX ๋ฒํผ๋ง: WAN ๊ตฌ๊ฐ์ ๋คํธ์ํฌ ๋ณ๋์ฑ์ ๋์ํ๊ธฐ ์ํด DRX ์ฐ๋ ๊ธฐ๋ฅ์ ๊ถ์ฅํฉ๋๋ค.
๋ฒํผ ํ์ฅ: DRX ๋ฏธ์ฌ์ฉ ์, ์ ์ฐ์ ๊ณต์์ 2~3๋ฐฐ๋ก ๋ฒํผ๋ฅผ ํ์ฅํ๊ฑฐ๋ ํ์ผ ๋ฒํผ(File Buffer) ์ฌ์ฉ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋ฒํผ ๋ธ๋กํธ(Bufferbloat) ์ฃผ์: WAN ๊ตฌ๊ฐ ๋์ญํญ ๋๋น ๋ฒํผ ํฌ๊ธฐ๋ฅผ ๊ณผ๋ํ๊ฒ ํฌ๊ฒ ์ค์ ํ ๊ฒฝ์ฐ, ๋ฒํผ์ ์์ธ ๋ฐ์ดํฐ ์์ฒด๊ฐ ๋ณ๋ชฉ์ ์ ๋ฐํ์ฌ ์ง์ฐ(Latency)์ด ์ฌํ๋ ์ ์์ต๋๋ค. ๋คํธ์ํฌ ํ๊ฒฝ์ ๋ง์ถฐ ์ ์ ํฌ๊ธฐ๋ก ํ๋ํ๋ ๊ณผ์ ์ด ํ์ํฉ๋๋ค.
ย
๋์คํฌ ๋ฐ ์คํ ๋ฆฌ์ง
์ค์น ๋ฐ ์ด์์ ์ํ ๋์คํฌ ๊ณต๊ฐ ์๊ตฌ์ฌํญ์ ๋๋ค.
๊ตฌ๋ถ | ํ์ ์ฉ๋ / ์ค๋ช |
๊ธฐ๋ณธ ์ค์น | ์ฝ 2GB (์ค์น ํ์ผ, ์์ง, ์ฑ๋ฅ ๋ก๊ทธ ๋ฑ) |
๋๋ฒ๊ทธ ๋ก๊ทธ | ๋ฆฌ์์ค ๋น ์ฝ 110MB ์ถ๊ฐ ํ์ |
ํ์ผ ๋ฒํผ | ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ถ์กฑ ์ ๋์คํฌ๋ฅผ ๋ฒํผ๋ก ์ฌ์ฉ. ์ค์ ํ ํฌ๊ธฐ๋งํผ ๋์คํฌ ๊ณต๊ฐ ์ ์ . |
์ค๋ ์ท (๋ฐฑ์ ) | ์ธ๋ถ ๋์คํฌ: ๋ฐ์ดํฐ ๋์คํฌ ์ฉ๋๋งํผ์ ๋ณ๋ ๋์คํฌ ์ค๋น ํ์ ๋ด๋ถ ๋์คํฌ: ๋ฐ์ดํฐ ๋์คํฌ ๋ด ์ถฉ๋ถํ ์ฌ์ ๊ณต๊ฐ ํ๋ณด ํ์ |
ํ์ผ ๋ฒํผ (File Buffer) ํน์ฑ
์ฉ๋: ๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค๊ฐ ๋ถ์กฑํ ๋ ์ผ๋ฐ ํ์ผ์ ๋ฒํผ๋ก ํ์ฉํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
์ฑ๋ฅ ์ํฅ: ๋ฉ๋ชจ๋ฆฌ ๋๋น I/O ์๋๊ฐ ๋๋ฆฌ๋ฏ๋ก ์ ์ฒด ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฑ๋ฅ ์ ํ๋ฅผ ์ต์ํํ๋ ค๋ฉด ํ์ผ ๋ฒํผ ์ ์ฉ ๋์คํฌ ๋ณผ๋ฅจ ๊ตฌ์ฑ์ ๊ถ์ฅํฉ๋๋ค.
ํฌ๊ธฐ ์ค์ : ํต์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ์ฐ์ ํฌ๊ธฐ์ 5 ~ 10๋ฐฐ ์์ค์ผ๋ก ์ค์ ํฉ๋๋ค.
๋ณต์ ์ง์ ๋ฒ์
FSR์ด ์ง์ํ๋ ๋ฐ์ดํฐ ์ ํ๊ณผ ์ ์ธ๋๋ ํญ๋ชฉ์ ๋ํ ์์ธ ์ ์์ ๋๋ค.\
๋์คํฌ ๊ฒฝ๋ก
๋ก์ปฌ ๋์คํฌ(Local Disk) ๊ฒฝ๋ก
NAS(NFS, CIFS) ๋ฑ์ ์๊ฒฉ ๋ง์ดํธ ๊ฒฝ๋ก๋ ์ค์๊ฐ ๋ณต์ ๊ฐ ์๋ '์ฃผ๊ธฐ์ ๋๊ธฐํ' ๋ฐฉ์์ ํตํด ๋ฐฑ์ ํด์ผ ํฉ๋๋ค.
ย
ํ์ผ ์ ํ ๋ฐ ์์ฑ
์ง์ ํ์ผ ์ ํ
์ผ๋ฐ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ
๋งํฌ ํ์ผ (Soft Link, Junction, Reparse Point)
์คํ์ค ํ์ผ (Sparse File), ์์ถ/์ํธํ ํ์ผ
ํน์ ํ์ผ: NTFS ADS(Alternate Data Stream), NTFS TxF(Transaction File)
๋ณต์ ์ ์ธ ๋์ (์ฃผ์)
์์คํ ์์ ์ฑ์ ์ํด OS ๊ตฌ๋๊ณผ ๊ด๋ จ๋ ํ์ผ์ ๋ณต์ ๋์์์ ์ ์ธํด์ผ ํฉ๋๋ค.
OS ์์คํ ํ์ผ, ๋๋ผ์ด๋ฒ ํ์ผ, ์ค์(Swap/Page) ํ์ผ
OS ์ค์น ๊ฒฝ๋ก (์:
C:\Windows,/boot,/proc๋ฑ)
๊ฒฝ๊ณ : ์์คํ ํ์ผ์ ๋ณต์ ๋์์ผ๋ก ์ง์ ํ ๊ฒฝ์ฐ ์์คํ ํ, ํจ๋ ๋ฑ ์๊ธฐ์น ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋งํฌ(Link) ํ์ผ ์ฒ๋ฆฌ ์ ์ฑ
๊ธฐ๋ณธ ๋์: FSR์ ๋งํฌ ํ์ผ ์์ฒด๋ง ๋ณต์ ํ๋ฉฐ, ๋งํฌ๊ฐ ๊ฐ๋ฆฌํค๋ ์๋ณธ ๋์(Target)์ ๋ณต์ ํ์ง ์์ต๋๋ค.
์ธ๋ถ ๋งํฌ: ๋งํฌ๊ฐ ๋ณต์ ์ค์ ๊ฒฝ๋ก ์ธ๋ถ๋ฅผ ๊ฐ๋ฆฌํฌ ๊ฒฝ์ฐ, ํด๋น ๋งํฌ์ ์๋ณธ ๋ฐ์ดํฐ๋ ๋ณต์ ๋์ง ์์ต๋๋ค. ์ด ๋ฐ์ดํฐ๊น์ง ๋ณต์ ๋ฅผ ์ํ๋ค๋ฉด ํด๋น ๊ฒฝ๋ก๋ฅผ ๋ณต์ ๋์์ ํฌํจํด์ผ ํฉ๋๋ค.(๋งํฌ๋ก ์ง์ ํ์ง ๋ง๊ณ )
ํ๋๋งํฌ(Hard Link) ์ ์ฝ: ํ๋๋งํฌ๊ฐ ๋ณต์ ๊ฒฝ๋ก ๋ด/์ธ๋ถ์ ๊ฑธ์ณ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ธ๋ถ ํ๋๋งํฌ๋ฅผ ํตํ ๋ณ๊ฒฝ ์ฌํญ์ FSR์ด ์ถ์ ํ ์ ์์ด ๋ฐ์ดํฐ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ํน์ ๊ฒฝ๋ก๋ฅผ ๋ณต์ ๊ตฌ์ฑํ๋ ค๋ฉด ํ๋๋งํฌ์ ์ ๋ฌด๋ฅผ ์์์ผ ํฉ๋๋ค.
FSR ์ ์ด์ ๊ฐ์ ์ํฉ์ ๋๋นํ์ฌ ๋ณต์ ๊ฒฝ๋ก ๋ถ์ ๊ธฐ๋ฅ์ ํตํด ๋์ ๊ฒฝ๋ก ๋ด์ ๋งํฌ ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ ์ ์ฉํ ์ ํธ๋ฆฌํฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
ย
ํ์ผ ์์ฑ ๋ฐ ๊ถํ
์ง์ ์์ฑ: ์ฝ๊ธฐ ์ ์ฉ, ์จ๊น, ์์คํ , ์์นด์ด๋ธ, ์์ถ, ์ํธํ ๋ฑ ํ์ค ์์ฑ.
์๊ฐ ์์ฑ: ์์ ์๊ฐ(mtime)๋ง ๋ณต์ ๋ฉ๋๋ค. (์ ๊ทผ ์๊ฐ ๋ฑ์ ๋ณต์ ์ ์ธ)
๋ณด์ ์์ฑ (ACL): ์์ค ํ์ผ์ ๋ณด์ ์๋ณ์(SID, UID/GID)๋ฅผ ๋ณต์ ํฉ๋๋ค.
์ฐธ๊ณ : ์์ค์ ํ๊น ์๋ฒ์ ๋ณด์ ๊ณ์ ์ฒด๊ณ๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ, ๋ณต์ ํ ํ๊น ์๋ฒ์์ ๊ถํ ์ฌ์ค์ (๋งคํ) ์์ ์ด ํ์ํ ์ ์์ต๋๋ค.
Windows ํน์ ์ ์ธ ์์ฑ:
์ฅ์น/๊ฐ์ ํน์ฑ (
FILE_ATTRIBUTE_DEVICE,VIRTUAL)OneDrive ๊ด๋ จ ์์ฑ (
RECALL_ON_OPEN,PINNED๋ฑ)
I/O ์ง์ ๋ฐ ์ด์ ๋ฐฉ์
I/O ์ฒ๋ฆฌ ์ ํ
Windows ๋ฐ Linux์ ํ์ค/ํน์ I/O๋ฅผ ํญ๋๊ฒ ์ง์ํฉ๋๋ค.
์ผ๋ฐ: Buffered I/O, Direct I/O, Memory Mapped I/O
Linux ํน์: AIO, Writev, Splice I/O, uring I/O
Splice I/O ์ฑ๋ฅ ์ฐธ๊ณ : Linux Splice I/O๋ Zero-copy ๊ธฐ๋ฐ์ ๊ณ ์ ์ ์ก ๊ธฐ์ ์ ๋๋ค. FSR์ด ์ด๋ฅผ ์บก์ฒํ์ฌ ๋ณต์ ํ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ์ฌ๋ณธ ์์ฑ ๊ณผ์ ์ผ๋ก ์ธํด ๋ถ๊ฐํผํ๊ฒ ์ค๋ฆฌ์ง๋ Splice I/O ๋๋น ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
ย
์ด์ ๋ชจ๋
๊ตฌ์ฑ ๋ฐฉ์: Active-Passive (๋จ๋ฐฉํฅ ๋ณต์ )
๋ณต์ ๋ฐฉ์: ๋น๋๊ธฐ(Asynchronous) ๋ฐฉ์ ์ง์
๋ฏธ์ง์: ๋๊ธฐ(Synchronous) ๋ฐฉ์, ํํ(Ring) ๋ฏธ๋ฌ๋ง, Active-Active(์ด์ค ํ๋ผ์ด๋จธ๋ฆฌ) ๋ชจ๋