์ด ๋ฌธ์ ๋ ์์ถ ๊ตฌํ ์์ฒญ๊ณผ ๊ด๋ จ๋ ํ ๋ก ๋ฐ ๊ธฐํ ๋ฌธ์ /PR์ ์ถ์ ํ๊ธฐ ์ํ ์ถ์ ๋ฌธ์ ์ ๋๋ค.
๋ค์ ๋ฌธ์ /PR์ด ์ด ์ฃผ์ ์ ๊ด๋ จ๋์ด ์์ต๋๋ค(๋ฐ๋ผ์ ์ด ์ฃผ์ ์ ์ฐฌ์ฑํ์ฌ ๋ง๊ฐ๋ ์ ์์).
์ด๊ฒ์ ๊ตฌํํ ๋ ๋ฒค์น๋งํฌ๋ฅผ ์ถ๊ฐํ๊ณ ํนํ -benchmem ๋ฐ benchcmp๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ดํด๋ณด์ญ์์ค!
lz4, lzo, lzma, null. bz2๋ ๋ค์ ๋๋ฆฝ๋๋ค.
snappy๋ ์ ๋นํ ์์ถ์ผ๋ก ๋น ๋ฆ ๋๋ค.
์์ถ์ด ์ฒญํฌ๋ณ๋ก ์ํ๋๋ ๊ฒฝ์ฐ ์ํฐ๋งํน/์ง๋ฌธ ๊ณต๊ฒฉ์ ๋ํ ์ผ๋ฐ ๋ฐฑ์ ์ด ์ด๋ ค ์์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๋ณธ์ง์ ์ผ๋ก CDC ์ค๋ณต ์ ๊ฑฐ ํ๋ก์ธ์ค์ ์ง๋ฌธ ์ฑ์ทจ์ ๊ด๋ จํ์ฌ ๋
ผ์ํ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ์
๋๋ค.
"์์งํ" CDC๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณต๊ฒฉ์๊ฐ ๊ฐ๋ณ ๋ธ๋ก์ ํฌ๊ธฐ๋ฅผ ๊ด์ฐฐํ ์ ์๋ ๊ฒฝ์ฐ "์๋ ค์ง ์ผ๋ฐ ํ
์คํธ" ํ์ผ์ด ๋ฐฑ์
๋ด์ ์กด์ฌํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ฒญํฌ ๊ธธ์ด.
์์ ๋
ผ์ํ ๋ฐ์ ๊ฐ์ด, ์ด๊ฒ์ ๋ค๋ฝ๋ฐฉ์์ ์ํ๋๋ ๊ฒ์ฒ๋ผ CDC ์๊ณ ๋ฆฌ์ฆ์ ๋น๋ฐ ๊ฐ์ผ๋ก ์ํธํ
ํจ์ผ๋ก์จ ์ด๋ ์ ๋ ์ํ๋ ์ ์์ต๋๋ค.
์ํฐ๋ CDC๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ์๋ ํ์ผ์ ์ฒญํฌ๋ก ๋ถํ ํ ํ ๊ฐ ๊ฐ๋ณ ์ฒญํฌ์์ ์์ถ์ด ๋ฐ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. Restic ์ฒญํฌ์ ๋ฒ์๋ 512KB์์ 8MB์ ๋๋ค(๊ทธ๋ฌ๋ ๊ณ ๋ฅด๊ฒ ๋ถ์ฐ๋์ง๋ ์์ต๋๋ค. ๋ง๋์?).
ํญ์ ๊ทธ๋ ๋ฏ์ด ํธ์ง์ฆ์ ์ด๊ณ ๋งค์ฐ ๋น๊ณผํ์ ์ธ ์์์ ํ๋ฆ.
์๊ฐ?
ํฅ๋ฏธ๋ก์ด. ๋๋ ๋น์ ์ด ์ค๋ช ํ๋ ๊ณต๊ฒฉ์ด ์์ถ ์ฌ์ฉ ์ฌ๋ถ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์ ํ ํ์ํฉ๋๊น? ์ด ๊ณต๊ฒฉ์ ์์ถ์ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์๊ณ ์๋ํ์ง ์์ต๋๊น?
ํ์ฌ #56์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๊ณ ์์ต๋๋ค. ์ฌ๋ฌ Blob์ ๋จ์ผ ํ์ผ๋ก ๋ฌถ๋ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
CDC ๊ตฌํ์ ์ ํํ ์๋์ ๋์๊ฒ ์ฝ๊ฐ ๋ถ๋ถ๋ช ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ง๋ฌธ์ ๋ตํ๋ ค๋ฉด:
์๋๋ CDC๋ฅผ ์ฌ์ฉํ๋ฉด "์ง๋ฌธ"์ (๋ด์ฉ + ๋น๋ฐ ์๋)์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ์ฒญํฌ _ํ_ ์์ถ์ด ์๋ฃ๋๋ฉด ๊ฐ๋ณ ๋ธ๋ก์ ์๋ก ๊ตฌ๋ณํ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ง๋ฌธ/ ์ด ์๋๋ฆฌ์ค์์ ์๋ ค์ง ์ผ๋ฐ ํ
์คํธ์ธ ์ฝํ
์ธ ์๋ง ์์กดํ๋ ์ํฐ๋งํฌ(ํน์ ๋ธ๋ก์ ์์ถ๋ฅ ).
์์:
์ํฐ๋งํฌ๊ฐ ์๋ ํ์ผ์ 64MB(8-128 ์ฒญํฌ)์ "AAAA", 64MB์ "ABCABCABCABC", 64MB์ ์์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ์ฒ์ 16-256 ์ฒญํฌ๋ ๋งค์ฐ ์์ต๋๋ค(ํด๋น ์ํ์ค๊ฐ โโ๋งค์ฐ ์ ์์ถ๋๊ธฐ ๋๋ฌธ์ , ์ฌ๊ธฐ์ 8-128 ์ฒญํฌ๋ ์์ถ์ด ์ ๋์ง ์์ต๋๋ค.)
๊ณต๊ฒฉ์๋ ๋ํ ๊ฐ์ฅ ๋ง์ง๋ง(24~384๋ฒ์งธ) ์ฒญํฌ๋ถํฐ ๊ฑฐ๊พธ๋ก ์์
ํ์ฌ ๊ณต๊ฒฉ์๊ฐ ์ ํํ ๋์ผํ ์ฒญํฌ ํฌ๊ธฐ๋ก ์์ถ๋๋ ํฌ๊ธฐ๋ฅผ ์ฐพ์ ๋๊น์ง 512KB-8MB๋ฅผ ์์ถํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฐ๊ฒฌ๋๋ฉด ์๋ ํ๋ฌธ์ "๋ค์" 512KB-8MB๊ฐ ์์ถ๋์ด ๊ณต๊ฒฉ์๊ฐ ๋ง๋ ๋๊น์ง ๋ง์ง๋ง์์ ๋ ๋ฒ์งธ ๋ธ๋ก(23๋ฒ์งธ - 383๋ฒ์งธ)์ ๊ธธ์ด๋ก ์์ถ๋๋ ๊ธธ์ด๋ฅผ ์ฐพ๋ ์์ผ๋ก ์งํ๋ฉ๋๋ค. "AAAA" ๋ฌธ์์ด์ ๊ฒฐ๊ณผ์ธ ์์ ์ฒญํฌ.
์ด๋ ๊ฒ ํ๋ฉด ๊ณต๊ฒฉ์๊ฐ ์ํฐ๋งํฌ๊ฐ ํ์๋ ํ์ผ์ด ๋ฐฑ์
์ ์ ์ฅ๋์ด ์๋์ง ๊ธ์ ์ ์ผ๋ก ํ์ธํ ์๋ ์์ง๋ง ์ถฉ๋ถํ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ง๋ฉด ํต๊ณ์ ์ผ๋ก ์๋นํ ๋ช
ํํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ช ๊ฐ์ง ์ ์ฌ์ ์ธ ์๋ฃจ์ ์ด ์์ต๋๋ค. ์๋ง๋ ๋ ๋ง์ ์์ด๋์ด๊ฐ ์์ ๊ฒ์ ๋๋ค.
์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด์ ์๋๋ฆฌ์ค๋ฅผ ์ดํดํ์ต๋๋ค.
restic์์ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํด์ ํ๋ ์ต์ ์ ์์ ๊ฒ์ ๋๋ค. ํ๋ก๊ทธ๋จ์ ํ์ฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ํ ๋ ๊ทธ๋ ๊ฒ ํ๊ธฐ๊ฐ ์ ๋ง ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ค. restic์ CDC๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. ์์ถ ์ง์์ ์ถ๊ฐํ๋ ๊ฒ์ ํ์ฌ ์ฐ์ ์์๊ฐ ๋ฎ์ผ๋ฉฐ ์ํ ๋ฆด๋ฆฌ์ค์ ๋ชฉํ๊ฐ ์๋๋๋ค.
๊ทํ์ ์ธ ๋ฒ์งธ ์์ด๋์ด๋ #56(์ฌ๋ฌ ์ฒญํฌ ๋ฌถ์)์์ ๊ตฌํ๋ ๊ฒ์
๋๋ค. ์ง๊ธ ์์
์ค์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ฒญ์ปค์ ์๋ ๋ฐฉ์์ ๊ดํด doc/Design.md
์ ๋ ๋ง์ ๋ฌธ์๋ฅผ ์ถ๊ฐํ ๊ฒ์
๋๋ค.
์ด ์๋๋ฆฌ์ค๋ฅผ ์ ์ํด ์ฃผ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@cfcs๋ฅผ ๋ฐ๋ฅด๋์ง ํ์คํ์ง ์์ต๋๋ค. ์์ถ๋ ํฌ๊ธฐ๊ฐ ์์ฒญ๋๊ฒ ๋์ ํด์์ ๊ฐ์ง ์์ต๋๊น? ์์ถ๋ ํ์ผ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ง๋ฉด ํด๋น ํ์ผ ํฌ๊ธฐ๋ฅผ ์์ฑํ๋ ๊ฐ๋ฅํ ์ ๋ ฅ ์๋ ๋ฌดํํฉ๋๋ค. ํ์ง๋ง ์๋ง๋ ๋๋ ์ดํดํ์ง ๋ชปํ ๊ฒ์ ๋๋ค.
์ด์จ๋ . ๋ด๊ฐ ๋ง๋ ์์ ๋ deflate/gzip ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฅผ ๋ป๋ปํ๊ฒ ์๋ ค์ฃผ๊ณ ์ถ์์ต๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ํด ~150MB/s/์ฝ์ด ์ฒ๋ฆฌ๋์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ผ์ ์๊ฐ ์์ถ ๋ชจ๋ ๋ฅผ ์ค์ ํ๋ฉด ๋ฐฑ์ ์๋๋ฆฌ์ค์์ ๊ฑฐ์ ๋ณด์ด์ง ์์ต๋๋ค. ์ฌ๋ฌ ์ฝ์ด์์ ๋ ํฐ ํ์ผ์ gzip์ผ๋ก ์์ถํ๋ ๋ณ๋ ฌ gzip ํจํค์ง ๋ ์์ต๋๋ค.
@klauspost : ์ฐ๋ฆฌ๋ ํ์ผ์ด ์๋ ๊ฐ๋ณ ์ฒญํฌ ์ ์์ถ๋ ํฌ๊ธฐ์ ๋ํด ๋ ผ์ํ๊ณ ์์์ ๋ช ์ฌํ์ญ์์ค. ํ๊ท ์ฒญํฌ ํฌ๊ธฐ๊ฐ 1MB์ธ 100GB ํ์ผ์๋ ์ฝ 100 x 1024 ์ฒญํฌ๊ฐ ์์ผ๋ฉฐ ๊ฐ ์ฒญํฌ๋ ํ์ผ์ ํน์ ๋ถ๋ถ์ ๋ํ ์์ถ ๋น์จ์ ๋์ถํฉ๋๋ค. ์ด๊ฒ์ ๋จ์ผ ์์ถ ํ์ผ์ ํฌ๊ธฐ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ํต๊ณ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ฏ๋ก CDC ์ํธ(๋ฐ๋ผ์ ์ฒญํฌ์ ์ ํํ ์ ๋ ฌ ๊ฒฝ๊ณ)๋ฅผ ์ ์ ์๋ ๊ฒฝ์ฐ์๋ ์๋ ค์ง ์ผ๋ฐ ํ ์คํธ๋ฅผ ์์ถ ๋ฐ ์ฒญํฌ ํ์ผ๊ณผ ๋น๊ตํ ์ ์์ต๋๋ค.
๋ด ์๊ฐ์, ์ด ์ ๋ณด ๋์ถ์ ์๋๋ ์ฒญ์ปค(์ฌ์ฉ์ ์ง์ repo๋ณ ๋คํญ์์ ํตํด)์ blob ํจํน(๊ณต๊ฒฉ์๊ฐ ๊ฐ๋ณ ์ฒญํฌ๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฒญํฌ ๊ทธ๋ฃน๊ณผ ์ฒญํฌ ์๋ง ๋ณผ ์ ์๋ ๊ฒฝ์ฐ)์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ์ค์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฃน์์ ์ผ๋ฐ ํ ์คํธ ํค๋ ๊ธธ์ด๋ฅผ ํตํด). ์๋๋ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฌธ์ ๋ฅผ ์ํด ์์ถ์ ์์ ํ ๋นํ์ฑํํ๋ ๊ฒ์ด ์ข์ ์์ด๋์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ธฐ๋ณธ๊ฐ(๊ตฌํ๋ ๊ฒฝ์ฐ)์ ์๋ง๋ "ํ์ฑํ"์ผ ๊ฒ์ ๋๋ค.
@klauspost ์ง์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@fd0 ์์ ๊ด์ฐฐ์ ๋์ํ์ง๋ง ์ด๋ฏธ ์ง์ ๋ ๋ฉํฐ๋ฏธ๋์ด ํ์์ ๋ฐฑ์ ํ ๋์ ๊ฐ์ด ํน์ ๋์ ํ์ผ/๋๋ ํ ๋ฆฌ/์ฅ์น์ ๋ํ ์์ถ์ ์ ํ์ ์ผ๋ก ๋นํ์ฑํํ๋ ๋ ๋ค๋ฅธ ์ค์ํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ถ์ด ์ ๋์ง ์๋ ๋์ ์ํธ๋กํผ๋ฅผ ๊ฐ์ง ์์ถ๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋๋ ์ํธํ๋ ๋ณผ๋ฅจ์ ์ฆ๋ถ ๋ฐฑ์ ์ ์ํํ ๋.
@cfcs - ok - ๊ทํ์ ํ ์คํธ์์ ๊ทํ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ก ํ ์ ์์์ ์์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ด ์ฐจ์ด๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋๋ฌธ ๊ฒฝ์ฐ์ธ ์๋ณธ ๋ฐ์ดํฐ๊ฐ ํ์ํฉ๋๋ค.
์์ถํ ์ ์๋ ํ์ผ๊ณผ ๊ด๋ จํ์ฌ ๋ด๊ฐ deflate์ ๋ฃ์ ์ผ์ ํ ์๊ฐ Huffman ์ ์ฉ ๋ชจ๋๋ฅผ ์ธ๊ธํ ์ด์ ๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋์ผํ ์๋๋ก ์์ถํ๊ณ ์์ถ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์๋ ํด๋ฐฑ์ด ์์์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ์ฝํ ์ธ ๊ฐ ์์ถ๋ ๊ฒฝ์ฐ ์ต๋ ์ค๋ฒํค๋๋ ์ฝ 0.04%์ ๋๋ค.
๋ค์์ ๋ช ๊ฐ์ง ๋ฒค์น๋งํฌ ์ ๋๋ค. ๋ฐฑ์ ์ ๊ฐ์ฅ ์ ํฉํ ๊ฒ์ ์๋ง๋ "Medium Compression"(์์ถ ๊ฐ๋ฅ ๋ฐ ๋น์์ถ 10GB ํผํฉ ์ฝํ ์ธ )์ผ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก gzip Huffman๋ง ์ฌ์ฉํ๊ณ CPU๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ๋ ์์ถ ์์ค์ ์ง์ ํ๋ ์ต์ ์ด ์์ ์ ์์ต๋๋ค.
์ ์๊ฐ์๋ ๋ฐ์ดํฐ ๋ฐ ํธ๋ฆฌ ๊ฐ์ฒด์ ๋ํด ๋ณ๋๋ก ์์ถ์ ์ ํ์ ์ผ๋ก ํ์ฑํ/๋นํ์ฑํํ๋ ๊ฒ์ด ์ค์ํ ์ ์์ต๋๋ค. ํนํ ํฐ ๋๋ฌด ๊ฐ์ฒด๋ ์ ๋ง ์ ์์ถ๋์ด์ผ ํฉ๋๋ค.
์์ถ์ ์ฝ์ ํ๋ ๊ฒ์ด ํ๋นํ ์ ์๋ ๋ช ๊ฐ์ง "ํฌ์ธํธ"๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ๊ฐ์ฅ ํฌ๋ช ํ๊ณ ๋ค์ฌ๋ค๋ฅํ ์ฅ์๋ ์ ์ฅ์์ ๋ฐฑ์๋ ์ฌ์ด์ ์ด๋๊ฐ์ ๋๋ค.
Repository.Encrypt ๋ฐ Repository.DecryptTo ์์ ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด์์ง๋ง ์ ํ์ด ์๊ณ ํฌ๊ธฐ๊ฐ ๋ค์ํ๋ฉด ๋ฌธ์ ๊ฐ ๋ณต์กํด์ง๋๋ค.
๋ด ์ ์์ ์์ถ๊ณผ _encryption_์ "๋ฐฑ์๋"๋ก ๊ตฌํํ๋ ๊ฒ์ด๋ฉฐ ๋ ๋ค ๊ธฐ๋ณธ ๋ฐฑ์๋์ ์์ฑํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ถ ๋ฐ ์ํธํ๊ฐ ์ ์ฅ์์ ํฌ๋ช ํ๊ฒ ๋ฉ๋๋ค.
์ํธํ๋ฅผ ๋ถ๋ฆฌํด์ผ ํ๋ ์ด์ ๋ ์ํธํ๋ ๋ฐ์ดํฐ๊ฐ ์์ถ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ด๊ธฐํ ์์๋ง ์ค์ ํ ์ ์์ผ๋ฉฐ ๊ตฌ์ฑ์ ์ ์ธํ ๋ชจ๋ ํญ๋ชฉ์ ํด๋น ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์์ถ๋ ๊ฒ์ผ๋ก ๊ฐ์ ํฉ๋๋ค.
๊ตฌ์ฑ์ ์์ถํ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ ์์ถ ํด์ ์ ํ์ ๋ํ๋ด๋ ๋ฌธ์์ด์ ์ถ๊ฐํฉ๋๋ค. ๋น์ด ์์("")์ ์์ถ ํด์ ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ๋ ์์ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจํค์ง ์ด๋ฆ์ ๋ง์ง๋ง ๋ถ๋ถ์ ๋๋ค.
์์ถ ์์ค์ ๊ฐ ์คํ/์ ํ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์์ถ ํด์ ๊ธฐ๊ฐ ๋์ผํ๋ค๋ฉด ์ผ๋ถ ์ค๋ ์ท/์ ํ์ด deflate ์์ค 0(์ ์ฅ)์ด๊ณ ์ผ๋ถ๋ ์์ค 9(์ต์์ ์์ถ)์ธ ์ ์ฅ์๋ฅผ ๊ฐ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
type Config struct {
Version uint `json:"version"`
ID string `json:"id"`
ChunkerPolynomial chunker.Pol `json:"chunker_polynomial"`
+ Compression string
}
์์ฑ ๋งค๊ฐ๋ณ์๋ก ์์ถ์ด ์ถ๊ฐ๋ฉ๋๋ค.
-func CreateConfig(r JSONUnpackedSaver) (Config, error) {
+func CreateConfig(r JSONUnpackedSaver, compression string) (Config, error) {
๋ฐฑ์๋๋ LoadConfig/CreateConfig ํ์ ๊ต์ฒด๋ฉ๋๋ค. ๋ค์์ ํ์ ๋ฐฉ๋ฒ์ ์์ ๋๋ค.
// SearchKey finds a key with the supplied password, afterwards the config is
// read and parsed.
func (r *Repository) SearchKey(password string) error {
key, err := SearchKey(r, password)
if err != nil {
return err
}
- r.key = key.master
- r.keyName = key.Name()
r.Config, err = LoadConfig(r)
+ r.be, err = FindCompressor(r.Config.Compression, Encryption(key, r.be))
return err
}
์์ถ๊ธฐ๋ ์ผ๋ถ ์ ํ์ ๋ํด ์ ํ/์กฐ์ ๊ฐ๋ฅํ ์์ถ์ ๊ตฌํํ ์ ์์ต๋๋ค. "๋ฐฑ์๋"๋ก ํ์๋๊ธฐ ๋๋ฌธ์ ์์ถ๋ ํฌ๊ธฐ๋ ์ ์ฅ์์ ํ์๋์ง ์์ต๋๋ค. ์์ถ๊ธฐ๋ ๋ชจ๋ ์ค์ ๊ณผ ํจ๊ป ์์ฝ๋์ด์ผ ํฉ๋๋ค.
HELPME/FIXME: ๊ฐ ํ์ผ์์ ์ํธํ๊ฐ ๋ค์ ์์๋๊ธฐ ๋๋ฌธ์ "ํฌ์ฅ๋" ํ์ผ์ด ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ํธํ๊ฐ ๋ฐฑ ์๋๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์ํธํ๋ ๊ฐ ํ์ผ์ด ์๋๋ผ ์ ์ฒด Blob์ ๋ํด ์ํ๋ฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ฌธ์ ๋ผ๊ณ ๊ฐ์ ํ๊ณ ์ข์ ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค.
TODO: ๋งค๊ฐ๋ณ์/๊ตฌ์ฑ์ด ์์ถ๊ธฐ๋ก ์ ์ก๋๋ ์ข์ ๋ฐฉ๋ฒ์ ์ฐพ์ผ์ญ์์ค. ์ฒซ ๋ฒ์งธ ๊ตฌํ์๋ ํ์ํ์ง ์์ต๋๋ค.
TODO: ๋์คํฌ ํฌ๊ธฐ์ ๊ด์ฌ์ด ์์ต๋๊น? ์์ ์ฌํญ์ด ๊ตฌํ๋๋ฉด ์ ์ฅ์๋ ์ด๋ฅผ ์์ง ๋ชปํฉ๋๋ค.
์๊ฒฌ์ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ ์๊ฒฌ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ถ๊ณผ ์ํธํ๊ฐ ์๋ก ํตํฉ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ด์ ๋ํด ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. ํ์ฌ๋ก์๋ ์์ถ/์ํธํ ๊ณ์ธต์ ์๋ก ์์ ํ ์ถ์ํํ๋ค๋ ์๊ฐ์ด ๋ง์์ ๋ค์ง ์์ต๋๋ค. ์ด๋ฏธ ์ค๋ช ํ๋ฏ์ด ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ถํ๋ ๋ฑ ์ด๋ฆฌ์์ ์ผ์ ํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค. ๋ํ ์๋ ๋ฐ/๋๋ ๋ณด์ ๋ฌธ์ ๋ฅผ ์ํด ์์ถ์ ๋นํ์ฑํํ๋ ์ต์ ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์ํธํ์ ๊ด๋ จํ์ฌ: ๋์ค์ ๋๋จธ์ง๋ฅผ ์ํ ๋น์ํธํ ๋ชจ๋๊ฐ ์์ ์ ์์ง๋ง ํ์ฌ๋ก์๋ ์ํธ๊ฐ ์ ํ ์ฌํญ์ด ์๋๋๋ค.
๋ํ ์์ถ๋ ํ์ผ์ ๊ทธ ์์ฒด๋ก ์ถ์ํ ์์ค(์: ๋ฌผ๊ฑด์ ๋ค์ ์์ถํ ์ ์์)์ผ๋ก ์ํธํ ์ถ์ํ์ ํจ๊ป ์๋ํ์ง ์์ต๋๋ค.
Repository
๊ฐ์ฒด๊ฐ ๋๋ฌด ๋ณต์กํ๊ณ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ ์ ์ ๋ฐ์ ์ธ ์ ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ง๊ธ ๋น์ฅ์ ์ข์ ๊ณํ์ด ์์ต๋๋ค.
๋ค์ํ ์์ถ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ต์ ์ ๋ํด: ๋ฐ์ดํฐ์ ๋ํด ํ๋์ ์๊ณ ๋ฆฌ์ฆ(๋งค๊ฐ๋ณ์ ์งํฉ ํฌํจ)์ ์ ํํ๊ณ JSON ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์์ถํ๋ ๋ฐ ๋ ๋ฒ์งธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค. ๋ชจ๋ ์ ํ ์ฌํญ(์: ๋ค๋ฅธ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์์ถ ์๊ณ ๋ฆฌ์ฆ ๋ฐ/๋๋ ๋งค๊ฐ๋ณ์)์ ๋ํด ์ถ๊ฐ๋ ์ฝ๋์ ๋ณต์ก์ฑ๊ณผ ์์ ๋ํ ์ด์ ์ ๊ฐ์ค์น๋ฅผ ๋๋ ๊ฑด์ ํ ๊ณ ๋ ค๋ฅผ ํ๊ณ ์ถ์ต๋๋ค.
์ ๋ฅผ ์คํดํ์ง ๋ง์ญ์์ค. ๋๋ restic์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ํนํ ์จ๋์คํฌ ํ์์ ์์ ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒฝ์ฐ ๋งค์ฐ ์ข์ ์ธ์๊ฐ ํ์ํฉ๋๋ค. ์์ถ์ ์ถ๊ฐํ๋ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์๋ ์ด์ ์ ๋ณผ ์ ์์ง๋ง ์จ๋์คํฌ ํ์์ ๋ณต์ก์ฑ๊ณผ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋งค๊ฐ๋ณ์๊ฐ ํ์ํฉ๋๋ค(๋ฆฌํฌ์งํ ๋ฆฌ๋น๋ฟ๋ง ์๋๋ผ ๋ฐฑ์ ์คํ๋น). "๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๊ฐ์ฅ ์ ํฉํ" ์์ถ์ ์์ต๋๋ค.
์ค์ฉ์ ์ธ ์๋ก์:
ํ์ฌ ์๋ฒ์์ ์ง์ ์๋ ๋ฐฑ์
์๋ฒ๋ก ๋ฐฑ์
์ ํฉ๋๋ค. ~700kbit/s์ dsl ์
๋งํฌ
์ด๋ฅผ ์ํด ๋๋ ์ต๊ณ ์ ์์ถ(lzma + ๋์ ์์ค๊ณผ ๊ฐ์)์ ์ํฉ๋๋ค. cpu๋ ๋ค์ ํจํท์ ์๋ฝํ๊ธฐ ์ํด ํํธ์๋ ์ฐ๊ฒฐ์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๋ฐค์ ๋ง์ ์ฌ๊ฐ ์๊ฐ์ ๊ฐ์ง๋๋ค.
๊ฐ์ ์ ์ฅ์์ ์ง์ ์์ ๋๋ ๋ฉํฑ์ ๋ฐฑ์ ํฉ๋๋ค. ๋ฌด์ "N" ์ฐ๊ฒฐ์ด ์์ต๋๋ค. ๋ฌผ๋ก lzma + ๋์ ์์ค์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ ์๋๋ฅผ ๋ฆ์ถ๊ณ ์ถ์ง๋ ์์ง๋ง lz4์ ๊ฐ์ด ์๋๊ฐ ์ ํ ๋๋ ค์ง์ง ์๋ ๋งค์ฐ ๋น ๋ฅธ ๊ฒ์ ์ํฉ๋๋ค. ๋๋ ์ฌ์ ํ ์์ถ์ ์ํ์ง๋ง lz4๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฝ 2๋ฐฐ์ ๊ณต๊ฐ์ด ํ์ํฉ๋๋ค.
๋๋ ์ฌ๊ธฐ์ lzma๋ฅผ ์ํ์ง๋ง ๊ฑฐ๊ธฐ์๋ lz4๋ฅผ ์ํฉ๋๋ค.
๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค imho... ํฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ์ ์ ํํ๊ณ ๋๋ฌด ๋ง์ ๊ตฌ์ฑ์ ๋ ธ์ถํ์ง ์๋๋ก ํฉ์๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ ์ด๋์ ์ํด ๋ง์ ๋ณต์ก์ฑ์ด ๋์ ๋ ๊ฒ์ ๋๋ค. imho.
Repository
๊ฐ์ฒด๊ฐ ๋๋ฌด ๋ณต์กํ๊ณ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ ์ ์ ๋ฐ์ ์ธ ์ ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ง๊ธ ๋น์ฅ์ ์ข์ ๊ณํ์ด ์์ต๋๋ค.
๊ทธ๋ด ์ ์์ง. ๋๋ repository.go๋ฅผ ๋ค์ง๊ธฐ ์์ํ๊ณ ์์ถ/์์ถ ํด์ ๋จ๊ณ๋ฅผ ์ฝ์
ํ ๋ชจ๋ ์์น๋ฅผ ์ฐพ์๊ณ ์ถ๊ฐ๋ ๋ณต์ก์ฑ์ ์ข์ง ์์์ต๋๋ค. backend
์ธํฐํ์ด์ค๋ก ๊ตฌํํ๋ฉด ๊ฐ์๊ธฐ ๋ชจ๋ ์ํธํ๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐฑ์๋ ์ฒด์ธ์ ์ผ๋ถ๋ก ๋ง๋ค ์ ์์ต๋๋ค. ์์ถ ๋ฐ ์ํธํ๋ฅผ ํฌํจํ์ฌ ๋ฐฑ์๋ ๋ถ๋ถ์ ๋์นญ์ ๋ณด์ฅํ๋ ์ผ๋ฐ ํ
์คํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ํธํ์ ๊ด๋ จํ์ฌ: ๋์ค์ ๋๋จธ์ง๋ฅผ ์ํ ๋น์ํธํ ๋ชจ๋๊ฐ ์์ ์ ์์ง๋ง ํ์ฌ๋ก์๋ ์ํธ๊ฐ ์ ํ ์ฌํญ์ด ์๋๋๋ค.
์ด๊ฒ์ด ๋ฐฑ์๋ ์ฒด์ด๋์ด ์ข์ ์ด์ ์ ๋๋ค. ์ํธํ๋ฅผ ์๋ตํ๊ฑฐ๋(๋๋ ํต๊ณผ ๋ฐฑ์๋๋ฅผ ์์ฑ) ์ํํ๊ฒ ์๋ํฉ๋๋ค.
์์ถ์ ์ถ๊ฐํ๋ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์๋ ์ด์ ์ ๋ณผ ์ ์์ง๋ง ์จ๋์คํฌ ํ์์ ๋ณต์ก์ฑ๊ณผ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ ์ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ๋ณผ ์์๋ ๊ฐ์ฅ ๋ฐฉํด๊ฐ๋์ง ์๋ ๋ฐฉ๋ฒ์ด์์ต๋๋ค. '์์ถ ํ์ผ' ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒฝ์ฐ ์์ถ๋์ง ์์ ์ ์ฅ์๋ ์ด์ ๋ฒ์ ๊ณผ ์์ ํ ํธํ๋ฉ๋๋ค. ์ด์ ํด๋ผ์ด์ธํธ๋ ์ ํด๋ผ์ด์ธํธ์ ํจ๊ป ์ด์ ์ฒ๋ผ ์๋ํ ์ ์์ต๋๋ค.
์์ถ๋ ์ ์ฅ์๋ ๋ถ๋ช
ํ ๊ทธ๋ ์ง ์์ง๋ง ์ ์ฅ์๊ฐ ์์ถ๋ ๊ฒฝ์ฐ์๋ง version
๋ฅผ 2๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ด์ ํด๋ผ์ด์ธํธ๊ฐ ์คํจํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ์ธ์ด ๋ถ๋ช
ํ if cfg.Version > RepoVersion {
๋ก ๋ณ๊ฒฝ๋์ด์ผ ํ์ง๋ง ํธํ์ฑ ๋ฌธ์ ๋ ์์ต๋๋ค.
๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค imho... ํฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ์ ์ ํํ๊ณ ๋๋ฌด ๋ง์ ๊ตฌ์ฑ์ ๋ ธ์ถํ์ง ์๋๋ก ํฉ์๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ ์ด๋์ ์ํด ๋ง์ ๋ณต์ก์ฑ์ด ๋์ ๋ ๊ฒ์ ๋๋ค. imho.
๋์ํ๋ค. ๋๋ถ๋ถ์ ์๊ณ ๋ฆฌ์ฆ(lzma/deflate)์ ๋์ผํ ์์ถ ํด์ ํ์ ๋ด์์ ๋ง์ ์ ์ฐ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์์ถ์ฑ์ ํ ์คํธํ๊ธฐ ์ํด DataSmoke๊ฐ ์์ต๋๋ค: https://github.com/Bulat-Ziganshin/DataSmoke
๋ํ pcompress๋ ๋ค์ํ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํฉ๋๋ค. https://github.com/moinakg/pcompress
์ค์ฟผ์ ์์ถ ์ถ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ์ข์ ์๊ณ ๋ฆฌ์ฆ ๋ชฉ๋ก๊ณผ ๋ฒค์น๋งํฌ๊ฐ ์์ต๋๋ค. https://quixdb.github.io/squash/
์ฌ๊ธฐ์ ํ ์คํธ ์์ถ ๋ฒค์น๋งํฌ๊ฐ ์์ต๋๋ค: http://mattmahoney.net/dc/text.html
์ฌ์ด ์ ๊ทผ ๋ฐฉ์์ ํญ์ crypto/crypto.go
์ํธํ/๋ณตํธํ ๊ธฐ๋ฅ ๋ด๋ถ๋ฅผ ํํฐ๋งํ๋ ๊ฒ์
๋๋ค.
gzip-compression-v1.patch.txt ๋จธ๋ฆฌ์ ์ ์ฉํ ์ ์๋ ๊ฐ๋ ์ฆ๋ช diff์ ๋๋ค.
@mappu ๋ฅผ ์ฌ์ฉํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ์ง๋ง ์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ ์ ์ ๋ต์ ๋์ํด์ผ ํฉ๋๋ค. ์ด๋ฆฐ ์ง๋ฌธ (๋ด ๋จธ๋ฆฌ ๊ผญ๋๊ธฐ์์)์ ์ ์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ถ์ ์ธ์ ์ ์ฉ๋ฉ๋๊น? (๋ฐ์ดํฐ? ๋ฉํ๋ฐ์ดํฐ/JSON?)
๋ฐ์ดํฐ๋ ๋ถ๋ช
ํ ๊ทธ๋ ์ต๋๋ค.
Metadata/json, ์ด์ฉ๋ฉด ๋ฌด์๋ฏธํ ์๋ ์์ง๋ง JSON ๋ฐ์ดํฐ๋ ๋๋ถ๋ถ ASCII์ด๊ณ ์ฐ์ ์ฝ๋ฉ/ํํ๋ง ๋จ๊ณ(gzip์ด ์์)์ ์ด์ ์ด ์๊ธฐ ๋๋ฌธ์ ํฐ ๋ฉํ๋ฐ์ดํฐ ํ์ผ์ ๋์์ด ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ์ดํฐ/๋ฉํ๋ฐ์ดํฐ๋ ํญ์ ์ํธํ๋๊ธฐ ๋๋ฌธ์ ์ํธํ/๋ณตํธํ ๋ฃจํด์ ์ถ๊ฐํ๋ ๊ฒ์ "repository.go๋ฅผ ์ดํด๋ณด๊ธฐ ์์ํ๊ณ ์์ถ/์์ถ ํด์ ๋จ๊ณ๋ฅผ ์ฝ์
ํ ๋ชจ๋ ์์น๋ฅผ ์ฐพ์์ต๋๋ค. ์ถ๊ฐ๋ ๋ณต์ก์ฑ์ ์ข์ง ์์์ต๋๋ค." @klauspost์ .
๋ํ blob์ hash(ciphertext)๊ฐ ์๋ hash(plaintext)๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ {{๋ถ๋ช
ํ ์ค๋ณต ์ ๊ฑฐ์ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์์ IV๊ฐ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํ๊ดดํ ๊ฒ์
๋๋ค}}. ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์์์ํค์ง ์๊ณ ์ด ์์
์ ์ํํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํด์ผ ํ ๊น์? @klauspost ์ ๋ช ๊ฐ์ง ์ ์ ์ฌํญ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. :)
์ ๊ฒฝ์ฐ์ง ๋ง์ธ์. @ThomasWaldmann์ ๋ง์ ๋์ํ์ง๋ง ๊ตฌ์ฑํ ์ ์์ด์ผ ํฉ๋๋ค. ์ ์ด๋ --best
๋ฐ --fast
์ฌ์ฉ ์ฌ๋ก์์๋.
๋๋ ์์ ์ด๋์ด๊ณ golang ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๊ณ Google์์ ์ฑ๋ฅ์ฃผ์๋ฅผ ๋ฐ๊ธฐ ๋๋ฌธ์ gzip์ ์ ์ํฉ๋๋ค. xz๋ ํจ์ฌ ๋ ๊ฐ๋ ฅํ ๋๋ฆฐ ์์ถ์ ๋๋ค. lz4๋ ํจ์ฌ ์ฝํ ๋น ๋ฅธ ์์ถ์ ๋๋ค. gzip์ ๊ท ํ์ด ์กํ๊ณ ์ฝ๊ฒ ์กฐ์ ๋์ง๋ง, ์ด๋ ์ชฝ๋ ๊ทน๋จ์ ๋๋ฌํ์ง ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ๋ฅผ ์์์ํค์ง ์๊ณ ์ ์ฅ์์ ์ด๊ฒ์ ์ด๋ป๊ฒ ์ ์ฅํฉ๋๊น?
์ ์ฅ์๋ ํ ๋ฐฉํฅ์ผ๋ก๋ง ํธํ๋์ด์ผ ํฉ๋๋ค. new restic์ด ์ด์ repo๋ฅผ ์ฝ์ ์ ์๋ ํ old restic์ด ์ repo๋ฅผ ์ฝ์ ์ ์์ด๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
MAC ๋ค์ ํ๊ทธ ๋ฐ์ดํธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์กด์ฌํ์ง ์์ - ์์ถ ์์(์ด์ ์ ํ). ๊ทธ๋ฐ ๋ค์ ๋ฐ์ดํธ๋ ์ฌ์ฉ๋ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ๋ผ ์๋ ์์ต๋๋ค. 0x01 gzip 0x02 lz4 ์ ๋.
๋ค๋ฝ๋ฐฉ๊ณผ ๋์ผํ(๋๋ ๋ ๋์) ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค(ํ์ฌ ํ์์์ ์ฌ์ฉ๋๋ ์์ถ ์ ํ/๋งค๊ฐ๋ณ์ ๋ฐ์ดํธ ์์).
๋ค๋ฝ๋ฐฉ(๋ณด๊ทธ)์์๋ ์ด์ ํ์์ด gzip ์ ์ฉ์ด์๊ณ ์ฒ์ 2๋ฐ์ดํธ์์ gzip ํ์์ ๊ฐ์งํ ์ ์์๊ธฐ ๋๋ฌธ์ ์ด์ด ์ข์์ต๋๋ค. ๊ทธ๋์ ์ถ๊ฐ ๋ฐ์ดํธ ์์ด gzip์ ์ ์งํ๊ณ (์ด์ ์ ์ฅ์์ ๋์ผ) ์ ํ ๋ฐ์ดํธ(์์ถ ์์ ๋๋ ๊ธฐํ ์์ถ์ฉ)๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ์ฒ์ 2gzip ๋ฐ์ดํธ์ ์ ๋ ๋ชจํธํ์ง ์์ต๋๋ค.
์ด์ ํ์์ด ์์ ๋ฐ์ดํฐ์ธ ๊ฒฝ์ฐ์๋ ๋ถ๋ช ํ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
์๋์. ํ์ง๋ง ์ด ์ ๋ณด๋ฅผ ์๋ฆฌ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ํธํ๋ ์ฒญํฌ์ ์์ ๋ถ๋ถ์ ์๋ IV๊ฐ ์ ํํ "NEWFORMAT"(1 :: 2^xyz ์ถฉ๋ ๊ฐ๋ฅ์ฑ)์ด๋ฉด ์ ํ์์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํฉ๋๋ค. ๊ทธ๋ ๊ฒ "๊นจ๋ํ" ๊ฒ์ ์๋์ง๋ง ์ค์ ๋ก๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
nmdc ์ ๊ธ ํธ๋ ์ ฐ์ดํฌ์์ EXTENDEDPROTOCOL๋ก ์ํ๋๋ ๊ฒ์ฒ๋ผ.
์ค, ์ฐ๋ฆฌ๋ ์ด์ ๊ฐ์ด ์ถํ ์ผ์ ํ์ง ์์ ๊ฒ์ด๋ฉฐ ๊ทธ๋ด ํ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ ํฉ ํ์ผ์๋ ๊ฐ blob์ ๋ํ type
ํ๋๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ uint8
์ด๋ฉฐ ํ์ฌ data
๋ฐ tree
๋ํด์๋ง ์ ์๋์ด ์์ผ๋ฉฐ compressed data
๋ฐ compressed tree
์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค. https://github.com/restic/restic/blob/master/doc/Design.md#pack ํ์
ํ์ฌ๋ก์๋ ์ด ๊ธฐ๋ฅ์ ๋์ ์ฐ์ ์์๋ก ์๊ฐํ์ง ์์ต๋๋ค.
ํฉ ํ์์ ์ blob ์ ํ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ฐ์ดํฐ ์์ถ์ ์ ํฉํ์ง๋ง ์ธ๋ฑ์ค ์์ถ์ ์ ๊ณตํ์ง ์์ต๋๋ค. ์ธ๋ฑ์ค๊ฐ ์ปค์ง ์ ์๊ณ JSON์ ์์ถ๋ฅ ์ด ์ข๊ณ ์ธ๋ฑ์ค์ ๋ก์ปฌ ์บ์๊ฐ ์์ ์๋ ์์ผ๋ฏ๋ก ์ธ๋ฑ์ค๋ ์์ถํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฝ๊ฒ ์
๊ทธ๋ ์ด๋ํ ์ ์๋๋ก new-restic์ด old-repo์ ํจ๊ป ์๋ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋งค๋๋ฝ๊ฑฐ๋(์ ํธ) restic upgrade-repo
๋๊ตฌ๊ฐ ์์ด์ผ ํฉ๋๋ค(์ ํธํ์ง ์์).
๊ทธ๋ผ ์ด๊ฑด ์ด๋์?
๋ชจ๋ restic ๋ช
๋ น์ ์ด๋ฏธ config
๋จผ์ ๋ก๋+๋ณตํธํํฉ๋๋ค.
config
๋ฐ์ดํธ๊ฐ {
์ด๋ฉด(json ๊ฐ์ฒด ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ) ์ ์ฒด ์ ์ฅ์๋ ์ด์ ํ์(์์ถ๋์ง ์์)์
๋๋ค.config
๋ฐ์ดํธ๋ {ํ๊ทธ ๋ฐ์ดํธ}์ด๊ณ ์ ์ฒด ์ ์ฅ์๋ ์ ํ์์
๋๋ค. ๋ณตํธํ ๋ฐ์ดํฐ ์์ ๋ถ๋ถ์ {ํ๊ทธ ๋ฐ์ดํธ}๋ ์์ถ ํ์์ ๋ํ๋
๋๋ค. ์ 0x00 ์์ถ๋์ง ์์ 0x01 gzip์ ์ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ตฌ์ฑ์ ์์ถํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ํ์ผ์ ์ ๋ง ์์ ํ์ผ์ด๊ณ ํญ์ JSON ํ์์ผ๋ก ์ ์ง๋ ์ ์๊ณ ํ์์ ๋ฐ๋ผ ํ๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค(์: ์ธ๋ฑ์ค ํ์ผ ์์ถ ์ฌ๋ถ).
์ด์ ์ข์ ๋ฐฑ์ ์๋ฃจ์ ์ ์ฐพ๋ค๊ฐ ๊ฒจ์ฐ ์ฐพ์์ต๋๋ค. ๋ด ์ฃผ์ ๊ด์ฌ์ฌ ์ค ํ๋๋ ๋ด ๋ฐ์ดํฐ๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ์ ์ ํํ๋ ๊ฒ์ ๋๋ค. ํนํ S3์ ๊ฐ์ด ๋ด๊ฐ ๋น์ฉ์ ์ง๋ถํ๋ ๊ณณ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒฝ์ฐ. Dedup์ ํ์คํ ๋์์ด ๋ ๊ฒ์ด์ง๋ง ์์๋๋ ์์ถ์ ๋ฐฑ์ ์๋ฃจ์ ์ ์ผ๋ถ์ผ ๊ฒ์ ๋๋ค... https://github.com/restic/restic/issues/21#issuecomment -185920429์์ ๋น์ ์ ( @fd0 ) ์ด๋ ๊ฒ ๋งํฉ๋๋ค. ์ฐ์ ์์๊ฐ ๋ฎ์ต๋๋ค. ์ด์ ๋ฅผ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ด๋์์๋ ๋ณผ ์ ์๋ ๋ก๋๋งต์ด ์์ต๋๊น?
๋ํ +1. ;)
ํ์ฌ ์ค๋๋ ๋ฐฑ์ ๋ฐ์ดํฐ(#518)๋ฅผ ์ ๊ฑฐํ๋ ์์ ์ ํ๊ณ ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ์์ถ๊ณผ ๋ณด์์ ๋์์ ์ป๋ ๊ฒ์ ์ฝ์ง ์์๋ฐ, ์ด๊ฒ์ ์ ์ฅ์ ํ์์ผ๋ก ํตํฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์กฐ๊ธ ๋ ์๊ฐํด์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์์ถ์ ๊ตฌํํ ๊ฒ์ ๋๋ค(์ด ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์๊ณ ๋๋ฉด), ์์ง ์ํ๋์ง ์์์ ๋ฟ์ ๋๋ค. restic์ ๋ค์ ์๋ก์ด ํ๋ก์ ํธ์ ๋๋ค. ์ ํฌ์ ํจ๊ป ํด์ฃผ์ธ์ :)
์ด ๋ฌธ์ ๋ #116๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ํธํ ๋๋ฌธ์ ๋ค๋ฅธ ๋๊ตฌ๋ก ๋ฐฑ์
์ ์์ถํ ์ ์์์์? ์์ถ๊ณผ ์ํธํ๋ฅผ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋๋ ๊ฒ ์ฌ์ด์ ์ด๋ค ์ฐ์ ์์๊ฐ ์์ต๋๊น? (๋๋ ๋จผ์ ์์ถ์ ๋ฒ ํ
ํฉ๋๋ค!)
_์ด ๋ฌธ์ ์ ๋ํด ์๋ ฅ์ ๊ฐํด ์ฃ์กํฉ๋๋ค. ์ ์ฅ์ ํ์์ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๋ง์์ด ๋ง์ต๋๋ค!_
์ด๊ฒ์ ๋๋ตํ๊ธฐ ์ฝ์ต๋๋ค. ์์ถ์ด ๋จผ์ ๊ตฌํ๋ฉ๋๋ค.
ํ์ฌ๋ก์๋ ์ํธํ๋ฅผ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋ค ๊ณํ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ถ๋ ๊ฒ๋ ๋๋ฌด ํ๋ ๊ฒ ๊ฐ์์. ์ด๊ฒ์ ์ ํ ์ฌํญ์ด ์๋์ด์ผ ํ์ง๋ง (์ ์ด๋ ํ์ฌ๋ก์๋) ์ํธํ์ ๋ฐ์ ํ๊ฒ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌด๊ฒฐ์ฑ์ ๋ํด ์๊ฐํด์ผ ํฉ๋๋ค.
@fd0 ์ ์ง๋ฌธ์ ๋ต๋ณํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ด ๊ฐ๋ฐ ๊ธฐ์ ์ด ์ด๊ฒ์ ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค. ํ์ง๋ง go๋ ๊ฑฐ์ ๊ฑด๋๋ฆฌ์ง ์์์ผ๋ฉฐ ๋ค๋ฅธ xp์ ๋๋ถ๋ถ์ webdev ๋๋ sysadmin ์คํฌ๋ฆฝํธ์ ์์ต๋๋ค.
์์ถ์ด "์ฌ๋ฐ๋ฅด๊ณ ์์ ํ๊ฒ" ์ํ๋์๋์ง ํ์ธํด์ผ ํ๋ค๋ ๋ฐ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ผ์ ์ง์ฐ์ํจ๋ค๋ฉด, ๊ทธ๋ ๊ฒ ํ์ญ์์ค. :์๋ค:
https://github.com/viric/restic/tree/snappy ์์ restic์์ ๋น ๋ฅธ ์์ถ์ ๊ตฌํํ์ต๋๋ค.
๊ทธ๋ฅ ์ ์์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ ํฉ์ ์๋ ๋ธ๋กญ์ ๋ํ ๋น ๋ฅธ ์์ถ/์์ถ ํด์ ๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ์ฝ๊ฐ์ ๋ธ๋กญ ์ ํ ๋ฐ์ดํธ๋ฅผ ํ์๋ก ์ฌ์ฉํฉ๋๋ค. ๋ํ ํฉ ์ธ๋ฑ์ค์ ํ๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. PLength(์ผ๋ฐ ํ ์คํธ ๊ธธ์ด)๋ ๊ทธ๋๊น์ง ์ ์ฅ๋์ง ์์์ง๋ง "bloblength - crypto.Extension"์ผ๋ก ๊ณ์ฐ๋์์ต๋๋ค.
์ผ๋ถ ๋ฐฑ์ ์ ๊ฒฝ์ฐ ๊ณต๊ฐ์ ๋ ์ฐจ์งํ ๋ฟ๋ง ์๋๋ผ ๋ ๋น ๋ฅด๊ฒ ์๋ํฉ๋๋ค(์ฒ๋ฆฌํ ๋ฐ์ดํฐ๊ฐ ์ ์).
๋ชจ๋ restic ํ ์คํธ๋ ์ ํต๊ณผํฉ๋๋ค. ์ด์ restic ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์๋ํ ์ ์์ง๋ง ์ผ๋ฐ restic(๋ง์คํฐ์ ์ ์ฅ์)์ ์ blob์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋๋ @fd0์ ์๋ ๋ชฉํ์ ๋ ์ํฅ์ ์ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ snappy(https://github.com/golang/snappy)๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
์์์ ์ธ๊ธํ๋ฏ์ด ๋ฏธ๋์ด, ์ํธํ๋ ํ์ผ ๋๋ ์ด๋ฏธ ์์ถ๋ ํ์ผ๊ณผ ๊ฐ์ด ์์ถํ ์ ์๋ ํ์ผ์ ์์ถํ์ง ์๋๋ก ๊ตฌ์ฑํ ์ ์๋ ์๋ํ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋ด์ฉ์ด ์์ถ ๊ฐ๋ฅํ๊ฑฐ๋ ์์ถํ ์ ์๋ PDF์ ๊ฐ์ ์ผ๋ถ ์ปจํ ์ด๋ ํ์์ผ๋ก ์ธํด ์ ํ๋ฉ๋๋ค.
@klauspost์ ์ฒซ ๋ฒ์งธ ๋๊ธ์์ ์ธ๊ธํ ์ผ์ ์๊ฐ ์์ถ ๋ชจ๋์ ๊ฐ์ด ์ด๋ฅผ ํฌ๋ช ํ๊ฒ ์ฒ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฝ์ต๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ํ์ผ ์ ํ ๋ชฉ๋ก์ด ํ์ํฉ๋๋ค. ๋ธ๋๋ฆฌ์คํธ๋ ์ ๋ ์์ถ๋์ง ์๊ณ ํ์ดํธ๋ฆฌ์คํธ๋ ํญ์ ์์ถ๋๋ฉฐ ๋๋จธ์ง๋ ํ์ผ์ ์์ ๋ถ๋ถ์ ์์ถํ๋ ค๊ณ ์๋ํ๊ณ ํฌ๊ธฐ ์ถ์๊ฐ ์คํจํ๋ฉด ํฌ๊ธฐํฉ๋๋ค. ์ฃผ์ด์ง ์๊ณ๊ฐ ์ด์.
์ด๊ฒ์ด ํ์ผ ์์ค์ด ์๋ ์ฒญํฌ์์ ์ผ๋ง๋ ์ ๋งคํ๋๋์ง ํ์คํ์ง ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ ์ํธํ/์ํธ ํด๋
ํจ์ค์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ฐ๋ํฉ๋๋ค.
์ผ๋ถ๋ ์์ธกํ ์ ์๊ณ ๊ฒฐ๊ณผ ํฉ/๋ธ๋กญ ๊ธธ์ด๋ ์์ธกํ ์ ์๋/๋น๋ฐ ๋ฐ์ดํฐ์ ์ผ๋ฐ ํ
์คํธ์ ๋ํ ์ ๋ณด๋ฅผ ๋์ถํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ์ข
๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ํผํฉํ๊ณ ์ถ์ง ์์ต๋๋ค.
์ด๊ฒ์ด "๋ ๋ฉ์ง๋ค"๊ณ ํด๋ ํ์ผ๋ณ๋ก ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ผ์ ์ฝ๊ธฐ ์ํด ์๋ง์ ํฉ ํ์ผ(๊ฐ BLOB์ด ํ๋๋ง ์ค์ํจ)์ ์์ถ ํด์ ๋ฅผ ์ํํ ํ์๊ฐ ์๋ค๋ ์ด์ ์ด ์์ต๋๋ค.
@teknico
์์์ ์ธ๊ธํ๋ฏ์ด ๋ฏธ๋์ด, ์ํธํ๋ ํ์ผ ๋๋ ์ด๋ฏธ ์์ถ๋ ํ์ผ๊ณผ ๊ฐ์ด ์์ถํ ์ ์๋ ํ์ผ์ ์์ถํ์ง ์๋๋ก ๊ตฌ์ฑํ ์ ์๋ ์๋ํ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
์์ ๋ ์์ถ ํจํค์ง๋ ์ด๋ฏธ ์์ถ๋ ๋ฐ์ดํฐ ๊ฑด๋๋ฐ๊ธฐ๋ฅผ ๊ตฌํํ๋ฉฐ ์ฝ์ด๋น ~250MB/s์ ์๋๋ก ์ํํฉ๋๋ค. Go 1.7 ์์ถ์ ๊ฐ์ฅ ๋น ๋ฅธ ์์ถ ์์ค์์๋ง ์ง์ํฉ๋๋ค.
Snappy ๋ฐ LZ4๋ ์ ์ฌํ ๊ฑด๋๋ฐ๊ธฐ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
์ผ์ ์๊ฐ ์์ถ ๋ชจ๋์ ๊ฐ์ด ์ด๋ฅผ ํฌ๋ช ํ๊ฒ ์ฒ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฝ์ต๋๋ค.
๋ฐ๋์ ์ ํ์ฌํญ์ด์ด์ผ ํฉ๋๋ค. Go 1.7(ํ์ฌ HuffmanOnly ๋ฐ ์ด์ ์์ํ๋ ๊ฒ์ผ๋ก ๋ถ๋ฆผ)์์ ์ด ๋ชจ๋๋ ์ ๋ ฅ์ ๊ด๊ณ์์ด ์ฝ์ด๋น ~200MB/s๋ฅผ ์ง์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ถ์ ์ผ๋ฐ์ ์ผ๋ก 80MB/s/์ฝ์ด์์ ์๋ํ๋ "์ต๊ณ ์๋"์ ๋นํด ์ฌ๊ฐํ๊ฒ ์ ํ๋ฉ๋๋ค.
@cfcs
์ด๊ฒ์ด "๋ ๋ฉ์ง๋ค"๊ณ ํด๋ ํ์ผ๋ณ๋ก ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋๋ restic์ ์๋ก ์ฝ์ด์ผ ํ ๊ฒ์ด๋ค. ๊ฐ ํฉ ํฌ๊ธฐ์ ๋ฐ์ด๋๋ฆฌ ํฌ๊ธฐ๋ ์ํธํ๋์ง ์์ ์ํ์์ ์ฌ์ฉํ ์ ์์ต๋๊น?
@klauspost ๊ฐ์ ์ฌํญ ์ค ์ผ๋ถ๊ฐ Go 1.7 DEFLATE "BestSpeed" ๋ชจ๋์ ๋ณํฉ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์ต๋๊น? ์ด์ฉ๋ฉด ๊ทธ๊ฒ์ ํฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ์ด ๋ ๊ฒ์ ๋๋ค.
DEFLATE ํ์์ ์ฌ์ฉํ๋ ์ฅ์ ์ ํธํ ๊ฐ๋ฅํ ๋นํธ์คํธ๋ฆผ์ ์์ฑํ๋ ๋ค์ํ ์์ถ๊ธฐ๊ฐ ์์ผ๋ฏ๋ก ์์ถ ํด์ ๊ธฐ์ ์์ ํ ํฌ๋ช ํ๋ค๋ ๊ฒ์ ๋๋ค.
Restic ์๋ ๋ฐฉ์์ ํน์ฑ(ํ์ผ์ ์ผ๋ฃฉ์ผ๋ก ๋ถํ ํ๊ณ ๋์ค์ ์ผ๋ฃฉ๋ง ์ฒ๋ฆฌ)์ผ๋ก ์ธํด ์์ถ์ ์ถ๊ฐํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ผ๋ฃฉ ์์ค์์ ์ํํ๋ ๊ฒ์ ๋๋ค. ๋ธ๋กญ์ ์์ถํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ๊ฒฝํ์ ๋ฐฉ๋ฒ์ ์ถ๊ฐํ ์ ์์ง๋ง ์ด๊ฒ์ด ๋ ๋ฒ์งธ ๋จ๊ณ๊ฐ ๋ ์ ์์ต๋๋ค.
Blob์ ํฉ ํ์ผ๋ก ๊ฒฐํฉ๋ ๋ค์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค. ํฉ ํ์ผ์๋ (๊ฐ๋ณ์ ์ผ๋ก ์ํธํ๋) ๋ง์ Blob, (์ํธํ๋) ํค๋, (์ํธํ๋์ง ์์) ํค๋ ๊ธธ์ด๊ฐ ์ฐจ๋ก๋ก ํฌํจ๋ฉ๋๋ค. ๋ณตํธํ ํค๊ฐ ์๋ ๊ณต๊ฒฉ์๋ ์ํธ๋ฌธ, ํค๋ ๊ธธ์ด ๋ฐ ํ์ผ ๊ธธ์ด๋ง ๋ณผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ณต๊ฒฉ์๋ ํฉ ํ์ผ์ ํฌ๊ธฐ์ ํค๋ ๊ธธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํน์ ํฉ ํ์ผ์ ์๋ ์ผ๋ฃฉ์ ํ๊ท ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์์ง๋ง ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค. ์ธ๋ฑ์ค ํ์ผ์๋ ๋ชจ๋ ๋ฐ์ดํฐ(ํฌ๊ธฐ, ์ํธํ๋ ํฌ๊ธฐ, ๋์ค์ ์์ถ๋ ํฌ๊ธฐ)๋ ํฌํจ๋์ง๋ง ์ด ๋ฐ์ดํฐ๋ ์ํธํ๋ฉ๋๋ค. ๋๋ ์ฌ๊ธฐ์ ์ด๋ค ์ํ๋ ๋ณด์ด์ง ์๋๋ค.
"์์ถ ๊ฐ๋ฅํ" ํ ์คํธ ํด๋ฆฌ์คํฑ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. AMD64์ ์ค๋ณต ์ ๊ฑฐ ํจํค์ง ์์ 1์ฐจ ์กฐํ ์๋์ธ 200MB/s/์ฝ์ด๋ฅผ ํจ์ฌ ์ด๊ณผํ๋ ๊ฒ์ ์ด๋ ค์ธ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
๋ํ ์ฌ์ฉํ๋ ์์ถ๊ธฐ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. Snappy๋ ์์์ base 64 ๋ฐ์ดํฐ๋ฅผ ์์ถํ ์ ์์ง๋ง, ์๋ฅผ ๋ค์ด deflate๋ ์์ถํ ๊ฒ์ด๋ฏ๋ก ๊ทธ ๋ถ๋ถ์ ์์ถ๊ธฐ์ ๋งก๊ธธ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ Snappy, LZ4 ๋ฐ deflate๋ฅผ ์ํด ๋ด์ฅ๋์ด ์์ต๋๋ค.
@fd0 ์ฃ์กํฉ๋๋ค. ํ์ผ ๋จ์๊ฐ ์๋๋ผ blob ๋จ์๋ฅผ ์๋ฏธํ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฒผ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ์ง ์๋ ํ, ๋ค์ CPU๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์์ถ์ ๋ณ๋ชฉ ํ์์ด ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค(AES ์์ ์์ผ๋ฉฐ ํฅํ AES-NI์์ ์ฒ๋ฆฌ๋๊ธฐ๋ฅผ ํฌ๋งํฉ๋๋ค).
@fd0 - ๋น ๋ฅธ "์์ถ์ฑ ์ถ์ ๊ธฐ"๋ฅผ ๋ง๋ค์์ต๋๋ค. https://play.golang.org/p/Ve5z3txkyz - ์์ ๋ฐ์ดํฐ์ ์์ธก ๊ฐ๋ฅ์ฑ๊ณผ ์ํธ๋กํผ๋ฅผ ์ถ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ์ธ๊ธํ๋ฏ์ด ๊ฒฐ์ ํ๋ ๊ฒ์ ์์ถ๊ธฐ์ ๋ฌ๋ ค ์์ต๋๋ค.
borg 1.1์๋ 2๊ฐ์ "์์ถ ๊ฒฐ์ ์"๊ฐ ์์ต๋๋ค.
*.zip
, *.mp3
, /htdocs/photos/*
, ...)@klauspost ํ , ๊ทธ ํ ์คํธ๋ ๋ด ์ปดํจํฐ์์ ๊ทธ๋ ๊ฒ ๋์์ง ์์ต๋๋ค.
BenchmarkCompressibility-4 100 10345544 ns/op 810.84 MB/s
๋ฒค์น๋งํฌ ์ฝ๋๋ ์ฌ๊ธฐ: https://gist.github.com/908c23123dda275a479cf931f2784f5d
Lz4์๋ ์ํธ๋กํผ ์ฝ๋๊ฐ ์์ผ๋ฏ๋ก ์ฌ๋ฌ ๋ฒ ์์์ฑ์ด ๋ฐ์ํฉ๋๋ค.
์๋ง?
์ธ ๊ฐ์ง ๋ชจ๋๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(์ ์ญ์ ์ผ๋ก).
๋๋ ํญ์ ํธ๋ฆฌ ๊ฐ์ฒด(JSON)๋ฅผ ์์ถํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ASCII ํ ์คํธ์ ๋ํ ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํฉ๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ํ๋กํ ํ์ ์ ๊ตฌ์ถํ๊ธฐ ์ํด @viric ๊ณผ ํจ๊ป ์์ ํ ๊ฒ์ ๋๋ค.
์๊ฐ?
@klauspost ํ , ๊ทธ ํ ์คํธ๋ ๋ด ์ปดํจํฐ์์ ๊ทธ๋ ๊ฒ ๋์์ง ์์ต๋๋ค
๋๋ ํญ์ ์๋ก์ด Go ์ปดํ์ผ๋ฌ๊ฐ ์ผ๋ง๋ ๋์ ์ผ์ ํ ์ ์๋์ง ์์ด๋ฒ๋ฆฝ๋๋ค. ๋ด๊ฐ ์์ํ๋ ๊ฒ์ ์ ์ด๋ ๋ ๋ฐฐ.
์ธ ๊ฐ์ง ๋ชจ๋๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(์ ์ญ์ ์ผ๋ก).
๋ ํจ์จ์ ์ธ ์์ถ๊ธฐ(๋๋ถ๋ถ LZMA)๊ฐ ์์ง๋ง Deflate๋ 3๊ฐ์ง๋ฅผ ๋ชจ๋ ์ ์ํํฉ๋๋ค. ์์ถ ์๋ ์์ถ์ ๋ฌผ๋ก ํ์ํ์ง ์์ง๋ง, ๋ฌผ๋ก ๋น ๋ฅด๊ณ ์ต์ํ์ ์ค๋ฒํค๋๊ฐ ์์ผ๋ฏ๋ก ๋์ค์ ๋ค๋ฅธ ๊ฒ์ ์ง์ ํ ๊ฐ๋ฅ์ฑ๊ณผ ํจ๊ป ์ผ๋ฐ์ ์ธ ์์ถ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๋ ์๋์ ์์ถ๋ฉด์์ ๋ ๋ฒจ 1๊ณผ Huffman ์ฌ์ด์ ์๋ ๋ ๋ค๋ฅธ ์๋ ํฅ์ ์ ๋ณด๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ๋ก์๋ ์๊ฐ์ด ์กฐ๊ธ ์์คํ๊ณ ์๋ก์ด ๊ฒ์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ์ต์ข Go 1.7 ๋ณ๊ฒฝ ์ฌํญ ์ค ์ผ๋ถ์ ๋ฐฑํฌํธ๋ฅผ ํ ์คํธํด์ผ ํฉ๋๋ค.
๋จ์ผ ์์ถ ์๊ณ ๋ฆฌ์ฆ๋ง ์ํ๋ค๋ฉด ์๋ก์ด ๊ฒฝ์์ zstd๋ฅผ ์ดํด๋ด์ผ ํฉ๋๋ค: https://github.com/facebook/zstd
lz4์ ๊ฐ์ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ์ผ๋ฉฐ gzip๋ณด๋ค ์์ถ๋ฅ ์ด ๋์ผ๋ฉด์ 3๋ฐฐ ์ด์ ๋น ๋ฆ ๋๋ค. https://code.facebook.com/posts/1658392934479273/smaller-and-faster-data-compression-with -zํ์ค/
Go์์ ๊ตฌํ์ ์ฐพ์ ์ ์์์ง๋ง zstd๋ ๋งค์ฐ ์ ๋งํด ๋ณด์ ๋๋ค.
๊ณต์ ์ฌ์ดํธ http://facebook.github.io/zstd/#other -์ด Go ๊ตฌํ์ ๋ํ ๋งํฌ: https://github.com/DataDog/zstd
์๋๋ฉด ์์ํ Go ๊ตฌํ์ ์๋ฏธํฉ๋๊น?
์, ์์ํ Go ๊ตฌํ์ ์๋ฏธํ์ต๋๋ค. ํ์ฌ restic์ C ์ฝ๋์ ์์กดํ์ง ์์ผ๋ฉฐ ์ด์์ ์ผ๋ก๋ ๊ทธ๋ ๊ฒ ์ ์งํ๊ณ ์ถ์ต๋๋ค.
์์ถ ๊ตฌํ์ ๋ํ ์์ธก์ด ์์ต๋๊น?
์์ถ ๊ตฌํ์ ์ ์ฅ์ ํ์ ๋ณ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ(๊ณํ/์์ด๋์ด๋ #628์ ์์) ์ธ์ฌํ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์์ถ์ด ์ถ๊ฐ๋๋ ์ ํํ ๋ ์ง๋ ์์ต๋๋ค. ;)
์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๊ฐ ํ ์ ์๊ฑฐ๋ ๊ธฐ์ฌํ ์ ์๋ ๊ฒ์ด ์์ต๋๊น?
๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์ต๋๋ค. ์ฃ์กํฉ๋๋ค :wink: ์๊ฐ์ด ํ์ํ ๋ฟ์ ๋๋ค.
๊ทธ๋์ #790์ ํ ์คํธ ๋ฒ ๋๋ฅผ ํ ๋ฒ ๋ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ด restic ๋น๋์์ ๋ชจ๋ ์ํธํ๋ฅผ ์ ๊ฑฐํ ๋ค์ ๋ค์ ํ ๋ฒ ์ ์ฒด ๋ฐฑ์ ์ ๋ง๋ค์์ต๋๋ค. ์ํธํ๋ ๊ฒ๊ณผ ๋์ผํ ํฌ๊ธฐ๋ก ์ ๊ณต๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ ์ฅ์๋ฅผ ์์ถํ๊ณ ๋ด๊ฐ ์ฐพ์ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
35G backup-unencrypted
6.4G backup-unencrypted.tgz2
๋ฌด์จ ์ฐจ์ด! ๋น๊ต๋ฅผ ์ํด ์์ถ๋ ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋คํ์ ํฌ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1.7G single-backup.sql.gz
์์ 29๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ผ๋ฐ ๋ฐฑ์ ๋๋น ์ฝ 100๋ฐฐ ์ ๊ฐ!
์ํธํ๊ฐ ์ถ๊ฐ๋ ๋ชจ๋ ์์น๋ฅผ ์ฐพ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ gzip
๊ตฌํ์ผ๋ก ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์์ถ์ ์ถ๊ฐํ ์ ์๊ณ ํฅํ ๋ค๋ฅธ ์์ถ ์์ง์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์๊ฐ ์์ผ์ ๊ฐ์?
(๋๋ ์๋ง๋ ์ฑ๊ณตํ๊ฑฐ๋ ์คํจํ๊ธฐ ์ํด 2์ฃผ๊ฐ์ ์ ๋ ์๊ฐ์ ๋ ์์ ์๊ฒ ์ค ๊ฒ์ด๋ค.)
์กฐ์ฌํด ์ฃผ์๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๊ธฐ์ ์ฌ๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ์์ํ์ต๋๋ค. ์์งํ ๋งํด์ ์ํธํํ๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋๋ ์ด๋ค ๊ฒ๋ ๋ณํฉํ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋์ค์ ํ ์ ์๋ ์ผ์ด์ง๋ง ์ ์คํ๊ฒ ๊ณํํด์ผ ํฉ๋๋ค.
์์ถ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ฒ์์๋ ์ฌ์ ๋ณด์ผ ์ ์์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ค์๋ก restic์ ์๊ธฐ์น ์์ ๊ณต๊ฒฉ์ ์ทจ์ฝํ๊ฒ ๋ง๋ค์ง ์๋๋ก ๋งค์ฐ ์ฃผ์ํด์ผ ํฉ๋๋ค(์ด๋ TLS ํ๋กํ ์ฝ์ ์ฌ๋ฌ ๋ฒ ์ฐ์์ผ๋ก ๋ฐ์ํ์ต๋๋ค(์, ์ด๊ฒ์ ๋ค๋ฅธ ์ํฉ์์ ์๊ณ ์์ต๋๋ค).
์ ์ฒด ํ๋ก์ ํธ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฝ๋๊ฐ ์๋๋ผ ์ ์ฅ์ ํ์์ ๋๋ค. ์ฌ์ฉ์๋ค์ ์ฐ๋ฆฌ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ขฐํ๊ณ ์ค๋ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ์ ์๋์ง ์ฌ๋ถ์ ์์กดํ๋ฏ๋ก ์ ์ฅ์ ํ์์ ์์ ์ฑ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ์์ถ์ ์ง์ํ๋ ค๋ฉด ๋จผ์ ์ ์ฅ์ ํ์์ ๋ค์ ๋ฒ์ ์ ๊ฒฐ์ (๋ฐ ๊ตฌํ)ํด์ผ ํฉ๋๋ค. ํ ๋ก ์ ์ฌ๊ธฐ: https://github.com/restic/restic/issues/628
๋๋ ๋น์ ์ด ์ด๊ฒ์ ๊ตฌํํ๊ธฐ๋ฅผ ์ด๋งํ๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ์ ์ฅ์ ํ์์ ๋์ํ๊ณ ์ด ๋ฌธ์ ์ ๋ชจ๋ ๊ฐ๋์ ๋ํด ๋ ผ์ํ ๋๊น์ง ์ด๊ฒ์ ์๊ฐ์ ํ ์ ํ์ง ๋ง์ญ์์ค. ๊ฐ์ฌ ํด์!
์ ๊ฑฐ๋ ์ํธํ์ ๊ดํด์๋ ๋ณํฉ์ ์ ์ํ์ง ์์ ๊ฒ์ ๋๋ค. ์์ถ์ด ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด์๋ง ๊ทธ๋ ๊ฒ ํ์ต๋๋ค . ๊ทธ๋ฆฌ๊ณ ์, ์ด๊ฒ์ ์ ์คํ๊ฒ ๊ณํ๋์ด์ผ ํ์ต๋๋ค(์๋ฌด๋ ๊ฐ์๊ธฐ ์ํธํ๊ฐ ๋นํ์ฑํ๋ ์ ์ฅ์๋ฅผ ํ์ธํ๋ ๊ธฐ๋ฅ์ ์๊ณ ์ถ์ดํ์ง ์์ต๋๋ค).
json.Unmarshal
๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ์ ์ํ๋ ๋งํผ ์ ํค๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. JSON์์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ์ ์งํฉ๋๋ค.
์๊ณ ๋ฆฌ์ฆ ์ ํ์ด ์์ ์ด ์๋๋ผ ์ดํด๋จ: ํ์ง๋ง ํฅํ ์ฐธ์กฐ๋ฅผ ์ํด Brotli ๋ ๊ฐ๋ ฅํ ๊ฒฝ์์๋ก ๋ณด์ ๋๋ค.
๋ด๊ฐ ์๋ ํ Brotli ์์ถ์ ๋งค์ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์(iirc 60 x gzip) ๋ฐฑ์ ์ ์ผ๋ฐ์ ์ด์ง ์์ ์ฐ๊ธฐ ๋ฐ ์์ถ์ ๋นํด ๋งค์ฐ ์์ฃผ ์ฝ๋ ๋ฐ์ดํฐ์ ๊ถ์ฅ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์, ์์ง ์ธ๋ถ ์ฌํญ์ผ๋ก ๋ค์ด๊ฐ์ง ์๊ฒ ์ต๋๋ค. :)
์ด๊ฒ์ ๋ค์ํ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ์ข์ ๊ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
Brotli๋ ํญ์ ๋ ๋น ๋ฅด๊ฑฐ๋ ๋ ๋์ ์์ถ์ ์ ๊ณตํฉ๋๋ค. ์์ถ ์์ค์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
@ibib ์ด๋ป๊ฒ ๊ทธ ๊ฒฐ๋ก ์ ๋๋ฌํฉ๋๊น? ์ ์๊ฐ์๋ brotli
๊ฐ ๋ค๋ฅธ ๋๋ถ๋ถ(ํผํฉ ๋ฐ์ดํฐ ์ธํธ์์)๋ณด๋ค ๋๋ฆฌ๊ฒ ๋ณด์ด์ง๋ง ํนํ ๋๋ผ์ด ์์ถ๋ฅ ์ ๋ฌ์ฑํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํน์ ์ข
๋ฅ์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ์ ๋ ์ ํฉํ ๊น์?
Squash ๋ฒค์น๋งํฌ ์ ๋น๊ต์ ๋์ด๋ ๊ฒ์ฒ๋ผ ์ธ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
๋ฌ์ฑ๋ ์์ถ๋ฅ : ๋์คํฌ ๊ณต๊ฐ(๋ฐ ๋ฐฑ์๋์ ๋ํ I/O)์ ์ ์ฝํ๊ธฐ ์ํด ์์ถ๋ฅ ์ด ์ค์ํฉ๋๋ค.
์์ถ ์๋: ๋ธ๋ก์ ์ถ๊ฐํ ๋๋ง๋ค ์ด ์์
์ ์ํํ๊ธฐ ๋๋ฌธ์ ์ค์ํ๋ฏ๋ก AES-NI ๋ฐ ์ผ๋ฐ I/O๋ฅผ ๋ฐ๋ผ๊ฐ ์ ์์ด ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ์ง ์๋๋ก ํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ(์ zstd
, lz4
, brotli
๊ณผ ๋ฐ๋๋๋ ์น ๋ธ๋ผ์ฐ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์ถ ํด์ ๋ณด๋ค ๋๋ฆฌ๊ฒ ์์ถํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๊ณ ์ถ์ง ์์ ๊ฒ ์
๋๋ค brotli
)์ ์ต์ ํ๋์ด ์์ต๋๋ค("ํ ๋ฒ ์์ถ, ์์ฃผ ์์ถ ํด์ "์ ๋์กฐ์ ์ผ๋ก "์์ฃผ ์์ถ, ๊ฑฐ์ ์์ถ ํด์ "๊ฐ ์์).
๊ฐ์ ์๋: ๊ฐ์ ์๋๋ ๋ณต์ํ ๋๋ง ๊ด๋ จ์ด ์์ต๋๋ค. ๋๋ฆฐ ๋ณต์์ด ๊ด์ฐฎ๋ค๋ฉด ๋๋ฆฐ ์์ถ ํด์ ์๋๋ฅผ ๋ฐ์๋ค์ผ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ฒ์ฒํ ์์ถ์ ํ๊ณ ์ถ์ง ์์ ๋ฉํ๋ฐ์ดํฐ๋ ์์ผ๋ฏ๋ก ๋ ๊ฐ์ง ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด ํ์ํ ์๋ ์์ต๋๋ค.
density
๋ ์์ถ ๋น์จ ์ธก๋ฉด์์ ํนํ ํจ์จ์ ์ด์ง๋ ์์ง๋ง ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ณ๋ชฉ ํ์์ด ์๋ค๋ ์ ์์ (ํ๊ท ์ ์ผ๋ก) ๊ฑฐ์ ๋ฌด๋ฃ๋ก 2:1 ์์ถ ๋น์จ์ ์ป์ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. 4:1์ ์ํ๋ฉด ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํ์ง๋ง ๊ฒฐ๊ตญ ์์์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ ๋ ๊ฐ์ง(์ ์ด๋?) ๋ค๋ฅธ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ ๋ฐ์ดํฐ ์ฒญํฌ. ๋์ ๋ค๋ฅด๊ฒ ์ฌ์ฉ๋๋ฉฐ ์๋ก ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋์ง ๋ ผ์ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ํ๋์ ์๊ณ ๋ฆฌ์ฆ(์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ์ ํํ๋ ์ง ๊ฐ์)์ ๊ณ ์ํ์ฌ (์๋ก์ด ์ธ์ด๋ก๋ ๋ฌด์์ด๋ ) Restic์ ์ฌ๊ตฌํํ๋ ๊ฒ์ด ๋ถ๋นํ๊ฒ ์ด๋ ต๊ฒ ๋์ง ์๋๋ก ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์ผ์ด์ค์ ๋ํด ํ ์คํธํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋ฒ๊ทธ์ ๋ ธ์ถ๋์ง ์๋๋ก ํฉ๋๋ค.
๋๋ ๋น์ ์ด ์ ์ํ ์ ์ถฉ์(trade-offs)์ ๋์ํ์ง ์์ ์ ์์ต๋๋ค. ๋ฐฑ์ ์ ํธ๋ฆฌํ ์๊ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ ์ ์์ต๋๋ค(์๋ง๋ ์ข์ 10). ๊ทธ๊ฒ๋ค์ ๋ณต์ํ๋ ๊ฒ์ ์๊ฐ ์๋ฐ ํ์์ ๋ฐ์ํฉ๋๋ค. ๋ด๊ฐ ๋ณด๋ ๊ด๋ จ ์ ์ถฉ์ ๋ธ๋ก ํฌ๊ธฐ์ ์์ถ ๋น์จ ์ฌ์ด์ ๋๋ค. ๋๋ฌด ์์ ๋ธ๋ก์ ์ ์์ถ๋์ง ์๊ณ ๋ฉํ๋ฐ์ดํฐ ์ค๋ฒํค๋๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ๋ธ๋ก์ด ๋๋ฌด ํฌ๋ฉด ์ค๋ณต ์ ๊ฑฐ ๋น์จ์ด ๊ฐ์ํฉ๋๋ค. ๋๋ถ๋ถ์ ์์ถ ์๊ณ ๋ฆฌ์ฆ์์ ๋ ๋์ ์์ค์ ์ค์ ์ ์์ ์ ๋ ฅ์ ๋ํ ์์ถ ๋น์จ์ ํฅ์์ํค์ง ์์ต๋๋ค.
๋ํ ์์ถ๋ฅ ์ด ๋์ผ๋ฉด ์ฌ์ฉ์๊ฐ ๋์ผํ ๊ณต๊ฐ์ ๋ ๋ง์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ ์ ์์ต๋๋ค.
snappy๋ฅผ ์ฌ์ฉํ ํ ์คํธ ๊ฒฐ๊ณผ๊ฐ 1) ๋ ์์ ๋ฐฑ์ ํฌ๊ธฐ(์์ถ, ์ ์), 2) ๋ ๋น ๋ฅธ ๋ฐฑ์ ๋ฐ ๋ณต์(๋ ์ ์ ๋ฐ์ดํฐ ์ํธํ, HMAC ๋ฐ ์ ์ก)์ด๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์์์ ๊ธฐ์ตํ์ญ์์ค. ์์ฃผ ์ ๋ ดํ ๋ ธํธ๋ถ์ ์ฌ์ฉํฉ๋๋ค.
@cfcs gzip๊ณผ brotli์ ๋น๊ต๋ฅผ ์ฐธ์กฐํ์ต๋๋ค.
์ฌ๊ธฐ์์ brotli๋ ํญ์ ๋ ๋น ๋ฅด๊ณ ๋ ๋์ ์์ถ์ ์ ๊ณตํฉ๋๋ค.
@Crest ์ถฉ๋ถํ ๊ณตํํฉ๋๋ค. ์๋ง๋ ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ ๊ฒ์
๋๋ค. ์ ๋ restic
๋น์ ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ์ง ์์ ๋ฟ์
๋๋ค. ๋ฉํฑ ๋ฐฑ์
์ ์ํํ๊ณ ๋ฉํฑ์ ๊ฐ์ง๊ณ ๋ ๋ ์ ์๋๋ก ๋นจ๋ฆฌ ์๋ฃํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ฐฑ์
์๋๊ฐ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ ์๋ฒ ๋๋ ์ง์์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๊ธฐํ ๋จธ์ ์ ๋ฐฑ์
์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์๊ฐ ์๋ฐ์ ๋ฐ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ํ์๊ฐ ์์ต๋๋ค. ์๊ฐ ์๋ฐ์ด ์๋ ๊ฒฝ์ฐ(์ ๋ฌธ์ ์ธ ์ํฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์?) ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํ์ ์ผ๋ก ๋ณต์ํ๊ณ ๋๋จธ์ง ์์
์ ๋์ค์ ์งํํ ์ ์์ต๋๋ค.
๋น์ ์ "์ฌ๋ฌ ๋ฒ ์์ ์ ๋ ฅ"์ ๋ํด ์์ฃผ ์ข์ ์ง์ ์ ํฉ๋๋ค.
@viric ๋น์ ์ด ์ธ๊ธํ๋ ํจ๊ณผ๋ Transfer + Processing
์น์
์ Squash ๋ฒค์น๋งํฌ์์ ๊ณ ๋ ค๋ฉ๋๋ค :-)
@ibib ์, ์ก์๋ค!
@ibib ๊ทธ ์ฐจํธ๋ฅผ ์ด๋์
์ฐจํธ ์ถ์ฒ: https://quixdb.github.io/squash-benchmark/
brotli ๋ฐ zstd๋ก ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์ํํ์ผ๋ฉฐ ๊ฒฐ๊ณผ๊ฐ ์ค์ฟผ์ ๋ฒค์น๋งํฌ์ ๊ฒฐ๊ณผ์ ์ ํ ์ผ์นํ์ง ์๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ทธ ๋ฒค์น๋งํฌ๊ฐ 1,5๋ ์ด๋ผ๋ ๊ฒ์ ์ดํดํ์ต๋๋ค.
zstd๋ ๋๋ฅผ ์ํด ์์ฃผ ์ ์๋ํฉ๋๋ค. ๋น ๋ฅธ + ๋์ ๋น์จ, ๊ทธ๋ฆฌ๊ณ ๊ทธ "๋ ๋ฒจ"์ ๋น ๋ฅธ ๋น์จ๊ณผ ๋์ ๋น์จ ์ฌ์ด์ ๋งค์ฐ ํฐ ๋ฒ์๋ฅผ ํ์ฉํฉ๋๋ค. ์ข์ ์ผ์ด์ผ.
Brotli๋ ์ ์๊ฒ ๋งค์ฐ ๋๋ฆฌ๊ฒ ์๋ํ๋ฉฐ ํจ์ฌ ๋น ๋ฅธ zstd๋ณด๋ค ๋ ๋์ ์์ถ ๋น์จ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ brotli๋ ์์ด ํ ์คํธ์ ์์ ํ์ผ์ ์ด์ ์ ๋ง์ถ ๊ฒ ๊ฐ์ต๋๋ค(์์ด ์ฌ์ ํฌํจ). html ์์ถ ๋๋ ์ด์ ์ ์ฌํ ๊ฒฝ์ฐ.
๋ด๊ฐ ์ฐพ์ ๋ ์ต๊ทผ์ ๋ฒค์น๋งํฌ: https://github.com/inikep/lzbench
๊ทธ๋์ LZMA ์์ถ์ผ๋ก zbackup ์ ๋ํด ํ ์คํธ ๋ฒ ๋๋ฅผ ํ ๋ฒ ๋ ๋์ก์ต๋๋ค.
35G backup-unencrypted
6.4G backup-unencrypted.tgz
2.5G zbackup
์ธ์์ ์ด์ง ์๋์?
zbackup์๋ ๊ณ ์ ํ ์ ํ ์ฌํญ๊ณผ ๋จ์ ์ด ์์ต๋๋ค.
๋ฐ๋ผ์ @viric lzbench ๋งํฌ์ ๋ฐ๋ฅด๋ฉด ๊ฐ์ฅ ์ ์ ํ ์์ถ๊ธฐ๋ ๋ฐฑ์ ์๋๋ฅผ ๋ฆ์ถ์ง ์๋ ๊ฒ(๋์ ์์ถ ์๋?, >200MB/sec)์ด๊ณ ์ค์ ๋ก๋ ์ข์ ์์ถ๋ฅ (>=50)์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ๋๋ค. ๋ง์ฃ ?
๊ทธ๋์ ๋๋ ๋น์จ๋ก ์ ๋ ฌ๋ ํ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ฑธ๋ฌ๋์ต๋๋ค.
๋ํ Go ๊ตฌํ์ ๋ํด _๋น ๋ฅธ_ ๊ฒ์์ ์ํํ์ต๋๋ค(๊ทธ๋์ ํ ์ด๋ธ์ ๋ณด๊ดํ์ต๋๋ค). ์ทจ์์ ์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์ ๊ฑฐํ ๊ตฌํ์ ์ฐพ์ง ๋ชปํ์์ ์๋ฏธํฉ๋๋ค. ๋น ๋ฅธ ๊ฒ์์ด์๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ดํ์ต๋๋ค. ๋ํผ์ ๋ถ๊ณผํ zstd์ ๋ํ ์์ธ์ ๋๋ค.
| ์์ถ๊ธฐ ์ด๋ฆ | ์์ถ| ์์ถ์ ํ๋๋ค.| ๋น๊ต ํฌ๊ธฐ | ๋น์จ |
| --------------- | -----------| -----------| ----------- | ----- |
| zstd 1.1.4 -1 | 242MB/s | 636MB/s | 73654014 | 34.75 |
| ๋๋ง๋ฑ 1.0 -30 | 258MB/s | 867MB/s | 85727429 | 40.45 |
| ๋ฐ๋ 0.12.5 ๋ฒ ํ -3 | 253MB/s | 235MB/s | 87622980 | 41.34 |
| ๊นํ ๋ฆฌ 2016-07-13 | 233MB/s | 451MB/s | 87931759 | 41.49 |
| ์ชผ๊ผฌ๋ฏธ 2011-12-24 -9 | 257MB/s | 1263MB/s | 90360813 | 42.63 |
| ์ชผ๊ผฌ๋ฏธ 2011-12-24 -6 | 295MB/s | 1268MB/s | 92090898 | 43.45 |
| ํต 1.5.0 -1 | 346MB/s | 435MB/s | 94720562 | 44.69 |
| ๋๋ง๋ฑ 1.0 -20 | 284MB/์ด | 1734MB/์ด | 96924204 | 45.73 |
| ์ชผ๊ผฌ๋ฏธ 2011-12-24 -3 | 352MB/์ด | 1222MB/s | 97255186 | 45.89 |
| lzrw 1991๋
7์ 15์ผ -4 | 243MB/s | 392MB/์ด | 100131356 | 47.24 |
| lzo1x 2.09 -1 | 394MB/s | 551MB/s | 100572537 | 47.45 |
| lz4 1.7.5 | 452MB/s | 2244MB/s | 100880800 | 47.60 |
| fastlz 0.1 -2 | 243MB/s | 469MB/์ด | 100906072 | 47.61 |
| lzo1y 2.09 -1 | 397MB/์ด | 556MB/s | 101258318 | 47.78 |
| lzo1x 2.09 -15 | 406MB/s | 549MB/์ด | 101462094 | 47.87 |
| ๋ฐ๋ 0.12.5 ๋ฒ ํ -2 | 480MB/s | 655MB/s | 101706226 | 47.99 |
| lzf 3.6 -1 | 251MB/s | 565MB/s | 102041092 | 48.14 |
| ๋ ๋ ตํ 1.1.4 | 327MB/s | 1075MB/s | 102146767 | 48.19 |
| blosclz 2015-11-10 -9 | 220MB/s | 696MB/์ด | 102817442 | 48.51 |
| ์ชผ๊ผฌ๋ฏธ 2011-12-24 -0 | 384MB/s | 1221MB/s | 103072463 | 48.63 |
| lzo1x 2.09 -12 | 418MB/s | 550MB/s | 103238859 | 48.71 |
| ๋๋ง๋ฑ 1.0 -10 | 360MB/s | 2625MB/s | 103402971 | 48.79 |
| fastlz 0.1 -1 | 235MB/s | 461MB/s | 104628084 | 49.37 |
| lzrw 1991๋
7์ 15์ผ -3 | 226MB/s | 449MB/์ด | 105424168 | 49.74 |
| lzf 3.6 -0 | 244MB/์ด | 550MB/s | 105682088 | 49.86 |
| lzo1x 2.09 -11 | 424MB/s | 560MB/s | 106604629 | 50.30 |
| lz4fast 1.7.5 -3 | 522MB/s | 2244MB/s | 107066190 | 50.52 |
| ํ ๋ค์ด๋ 0.6a -1 | 233MB/s | 334MB/s | 107381846 | 50.66 |
| ๋ฉคํผ | 8657MB/s | 8891MB/s | 211947520 |100.00 |
LZ4๊ฐ ๊ฐ์ฅ ์ ํฉํ ์์ถ๊ธฐ์ฒ๋ผ ๋ณด์ ๋๊น?
์๋ ๊ฒฝ์ฐ lz4(>=1.7.0 r129) ๋ฐ zstd(>=1.3.0)๋ฅผ ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ borgbackup์ ์ํด ์ด๊ฒ์ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋ zstd๋ lz4 ์๋์์ ๋ ๋์ ์๋๊น์ง ํ๋์ ๋จ์ผ ์ ์๋ก ๋งค์ฐ ์กฐ์ ํ ์ ์์ต๋๋ค.
xz ์์ถ๋ณด๋ค. ๊ทธ๊ฒ์ ๋ฐ๋์ ํ๋ณตํ ์ฌ์ฉ์๋ฅผ ๋๋ฆฌ๊ฒ ๋ง๋ค ๊ฒ์
๋๋ค.
์์ถ ๋ฐ ๋น ๋ฅธ ์์ถ. zstd๋ ๋งํ ๊ฒ๋ ์๊ณ
์์ถ ๋
ธ๋ ฅ์ ๊ด๊ณ์์ด ๋งค์ฐ ๋น ๋ฅด๊ฒ ์์ถ์ ํ๋๋ค.
lz4๋ ๋ชฉ์ ์ด ๋งค์ฐ ์ข์ต๋๋ค.
2017๋ 12์ 16์ผ ํ ์์ผ 09:50:49AM -0800์ TW๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์๋ ๊ฒฝ์ฐ lz4 ๋ฐ zstd๋ฅผ ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ borgbackup์ ์ํด ์ด๊ฒ์ ์ฌ์ฉํฉ๋๋ค.
--
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/restic/restic/issues/21#issuecomment -352199097
--
(Escriu-me xifrat si saps PGP / Write ciphered if you know PGP)
PGP ํค 7CBD1DA5 - https://emailselfdefense.fsf.org/
์.. https://github.com/restic/restic/issues/21#issuecomment -250983311 ์ ๋ฐ๋ฅด๋ฉด restic ์ข ์์ฑ์ ๋ฌด๋ฃ๋ก ์ ์งํ๊ธฐ ์ํด zstd๋ ํ์ฌ๋ก์๋ ์ต์ ์ด ์๋๋๋ค. ๋ํ ํนํ/๋ผ์ด์ ์ค ๋ฌธ์ ์ ๋ํ ๋ช ๊ฐ์ง ์ค๋ ๋๊ฐ ์์ต๋๋ค.
xz ๋ฐ ๋์ ์์ถ๋ฅ ์ ๊ฒฝ์ฐ ๋ฎ์ ์์ถ ์ค์ ์์๋ ํ์ ๋ฐ๋ฅด๋ฉด ๊ฐ์ฅ ๋น ๋ฅธ ์์ถ๋ฅ ์ ์ฝ 15MB/sec์ ๋๋ค.
๋น ๋ฅธ ๋ฐฑ์ ์ ๋ํ ์๊ตฌ ์ฌํญ์ด ๋ฎ์์ง๋ฉด(์: >=30MB/sec) ๋ค์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
| ์์ถ๊ธฐ ์ด๋ฆ | ์์ถ| ์์ถ์ ํ๋๋ค.| ๋น๊ต ํฌ๊ธฐ | ๋น์จ |
| --------------- | -----------| -----------| ----------- | ----- |
| xz 5.2.3 -9 | 1.70MB/s | 56MB/์ด | 48745306 | 23:00 |
| xz 5.2.3 -6 | 1.89MB/s | 58MB/s | 49195929 | 23.21 |
| xz 5.2.3 -3 | 4.18MB/s | 55MB/s | 55745125 | 26.30 |
| zstd 1.1.4 -8 | 30MB/s | 609MB/s | 61021141 | 28.79 |
| ์ฆ๋ง 2016-01-10 -2 | 32MB/s | 136MB/์ด | 61917662 | 29.21 |
| xz 5.2.3 -0 | 15MB/s | 44MB/s | 62579435 | 29.53 |
| ์ฆ๋ง 2016-01-10 -0 | 38MB/s | 134MB/s | 63407921 | 29.92 |
| zstd 1.1.4 -5 | 88MB/s | 553MB/s | 64998793 | 30.67 |
| lzfse 2017-03-08 | 48MB/s | 592MB/s | 67624281 | 31.91 |
| libdeflate 0.7 -6 | 64MB/s | 609MB/s | 67928189 | 32.05 |
| ๋ธ๋กํ๋ฆฌ 2017-03-10 -2 | 98MB/s | 289MB/s | 68085200 | 32.12 |
| zstd 1.1.4 -2 | 185MB/s | 587MB/s | 70164775 | 33.10 |
| ํ ๋ค์ด๋ 0.6a -4 | 91MB/์ด | 197MB/s | 70513617 | 33.27 |
| libdeflate 0.7 -3 | 96MB/์ด | 602MB/s | 70668968 | 33.34 |
| ์์คํฉ 2016-06-02 -1 | 98MB/s | 506MB/s | 71090065 | 33.54 |
| ํ ๋ค์ด๋ 0.6a -3 | 119MB/์ด | 188MB/s | 72662044 | 34.28 |
| libdeflate 0.7 -1 | 117MB/s | 570MB/s | 73318371 | 34.59 |
| ๋๋ง๋ฑ 1.0 -42 | 90MB/s | 938MB/s | 73350988 | 34.61 |
| zstd 1.1.4 -1 | 242MB/s | 636MB/s | 73654014 | 34.75 |
์ฌ๋ฌ deflate ๊ตฌํ์ด ์์ง๋ง ๋น๊ตํ ์ ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
์ฐธ๊ณ ๋ฅผ ์ํด ์ผ์ชฝ xz
zstd๋ ๋งค์ฐ ์ ๋งํด ๋ณด์
๋๋ค. Go ๊ตฌํ์ด ์๋ค๋ ๊ฒ์ด ๋๋ฌด ์์ฝ์ต๋๋ค.
@viric zstd๋
๊ทธ๋ฌ๋ ์ฌ๋ฌ ์์ถ๊ธฐ๊ฐ ์๋ ํ๋์ ์์ถ๊ธฐ๋ง ๊ฐ๊ณ ์ถ๋ค๋ฉด zstd๊ฐ ๋ ์ ์ฐํฉ๋๋ค.
๋ด ์ง๊ฐ์ ์ฉ์ํ์ญ์์ค. ์ผ๋ถ ์๊ฒฌ:
์์ถ ์๋: ๋ธ๋ก์ ์ถ๊ฐํ ๋๋ง๋ค ์ด ์์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ ์ค์ํ๋ฏ๋ก AES-NI ๋ฐ ์ผ๋ฐ I/O๋ฅผ ๋ฐ๋ผ๊ฐ ์ ์์ด ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ์ง ์๋๋ก ํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ(zstd, lz4, brotli์ ๊ฐ์)์ด ์ต์ ํ๋ ์น ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์ถ ํด์ ๋ณด๋ค ๋๋ฆฌ๊ฒ ์์ถํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๊ณ ์ถ์ง ์์ ๊ฒ์ ๋๋ค("์์ฃผ ์์ถํ๊ณ ๋๋ฌผ๊ฒ ์์ถ ํด์ " "ํ๋ฒ ์์ถํ๊ณ ์์ฃผ ์์ถ ํด์ "์ ๋ฐ๋).
์๋์, ํ๋์จ์ด ๊ฐ์ AES ์๋๋ก ์์ถํ ํ์๊ฐ ์์ต๋๋ค. ์์ถ์ ํฌ๊ธฐ์ ๋ํ ๊ฑฐ๋ ์๊ฐ์ ๊ดํ ๊ฒ์ ๋๋ค. ์์ถ๋ ๋ฐฑ์ ์ ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฐ์ธ ๋ฐฑ์ ์ restic์ ์ฌ์ฉํ๋ ๋์ Obnam์ ๊ณ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์๋ํ๋ฉด ๋ด๊ฐ ์ ์ฅํ๋ ์์ ์๋ฒ ์ค ํ๋์์ ์์ถํ์ง ์์ผ๋ฉด ๋ง์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐฑ์ ์ ์ด๋ฏธ ๋ช ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฉฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ฏ๋ก ๋๋ ์์์ฐจ๋ฆฌ์ง ๋ชปํฉ๋๋ค.
๋๋ restic์ ์์ถ ๋ฐฑ์ ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๋๋ผ๋ ์๊ดํ์ง ์์ต๋๋ค. ์ฌ์ค, ๋๋ ๊ทธ๋ค์ด ๊ทธ๋ ๊ฒ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ฉฐ, ๊ทธ๊ฒ์ ๋ด๊ฐ ํด์ผ ํ ์ ์ถฉ์์ ๋๋ค. ์ด๋ฐ ์ข ๋ฅ์ ์์ถ์ด ์์ผ๋ฉด restic์ ๋์๊ฒ ์ ์ฉํ์ง ์์ ๊ฒ์ ๋๋ค.
๊ฐ์ ์๋: ๊ฐ์ ์๋๋ ๋ณต์ํ ๋๋ง ๊ด๋ จ์ด ์์ต๋๋ค. ๋๋ฆฐ ๋ณต์์ด ๊ด์ฐฎ๋ค๋ฉด ๋๋ฆฐ ์์ถ ํด์ ์๋๋ฅผ ๋ฐ์๋ค์ผ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ฒ์ฒํ ์์ถ์ ํ๊ณ ์ถ์ง ์์ ๋ฉํ๋ฐ์ดํฐ๋ ์์ผ๋ฏ๋ก ๋ ๊ฐ์ง ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด ํ์ํ ์๋ ์์ต๋๋ค.
๋ณต์์ ๋ฐฑ์ ๋ณด๋ค ํจ์ฌ ๋ ์์ฃผ ์ํ๋๋ฏ๋ก ์์ถ ํด์ ์๋๋ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ต๋๋ค. ๋๊ตฐ๊ฐ๋ ์ข ์ข ์๊ฐ ์๋ฐ์ ๋ฐ์ ์ํ๋๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ค์ด์ง๋ง ๋ณต์์ด ๋ฐฑ์ ๋งํผ ๋น ๋ฅด๊ฑฐ๋ ๋ฐฑ์ ์ ๊ฐ๊น์ด ๊ณณ์์ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ ๋ ๊ฐ์ง(์ ์ด๋?) ๋ค๋ฅธ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ ๋ฐ์ดํฐ ์ฒญํฌ. ๋์ ๋ค๋ฅด๊ฒ ์ฌ์ฉ๋๋ฉฐ ์๋ก ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋์ง ๋ ผ์ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ธ๋ฑ์ค๋ฅผ ์์ถํ ํ์๊ฐ ์ ํ ์์ ์๋ ์์ต๋๋ค(๋๋ ๋ฐ๋์ ์ข์ ์๊ฐ์ผ ์๋ ์์). ์ธ๋ฑ์ค๋ ๊ณ ์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์ ์ฒด ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์ ์ฒ์์๋ ์ ์์ถ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ํ๋์ ์๊ณ ๋ฆฌ์ฆ(์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ์ ํํ๋ ์ง ๊ฐ์)์ ๊ณ ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ผ (์๋ก์ด ์ธ์ด๋ก๋ ๋ฌด์์ด๋ ) Restic์ ์ฌ๊ตฌํํ๋ ๊ฒ์ด ๋นํฉ๋ฆฌ์ ์ผ๋ก ์ด๋ ต๊ฒ ๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์ผ์ด์ค์ ๋ํด ํ ์คํธํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋ฒ๊ทธ์ ๋ ธ์ถ๋์ง ์๋๋ก ํฉ๋๋ค.
์ด๋ฌํ ์ฐ๋ ค๋ฅผ ์ดํดํ์ง๋ง ๊ทธ๊ฒ์ ์ค์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ต์ํ repo ํ์์ ์ฌ๋ฌ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํด์ผ ๋์ค์ ๋ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ด ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ค๋ ๊ฒ์ ์ ํํ ์ ์๋๋ก ์์ถ์ ์ํ ํ๋ฌ๊ทธํ ๋ชจ๋์ด ์์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒฝ์ฐ ์ค์นํ ์ ์๋ restic-xz
, restic-zstd
๋ฑ๊ณผ ๊ฐ์ ๋ฐ๋น์ ํจํค์ง๋ฅผ ์์ํ ์ ์์ต๋๋ค. ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐฑ์
๋ฐ์ดํฐ์ ์์ถ์ restic์ด ์์ถ ๊ธฐ๋ฅ์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ๊ณ ๋ค์ ์์ถ๋๋๋ก ์ถ์ํํด์ผ ํ๋ฉฐ, restic์ ๊ทธ ์ฌ์ด์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ์ ๊ฒฝ ์ฐ์ง ์์์ผ ํฉ๋๋ค. ๊ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
๋น ๋ฅธ ๋ฐฑ์ ์ ๋ํ ์๊ตฌ ์ฌํญ์ด ๋ฎ์์ง๋ฉด(์: >=30MB/sec) ๋ค์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋์๊ฒ ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์ธ๋ค. ๋ก์ปฌ ๋ฐฑ์ ์ ํ ์ข ๋ฅ์ผ ๋ฟ์ ๋๋ค. ๋คํธ์ํฌ ๋ฐฑ์ ์ ์์ถ ์๋๋ก ์ธํด ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ํ์์ ๋ฐ๋ผ ์ ์ ํ ์๋ฃจ์ ์ ์ ํํ ์ ์๋๋ก ์กฐ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
๋งฅ์ฃผ์ 10$ ํ์๊ธ ์ถ๊ฐ::)
๐บ++
๋ค๋ฅธ ์ฌ๋์ด ๊ธฐ์ฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ BountySource์ ๋ํ ๋งํฌ๊ฐ ์์ต๋๋ค.
https://api.bountysource.com/badge/issue?issue_id=6096108
์ด๊ฒ์ด ์ฌ์ฉ์๊ฐ ๊ตฌ์ฑํ ์ ์๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๊ทธ๋์ ์๋์ ํฌ๊ธฐ์ ์ ํ์ ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ ๋์ ์์ถ์ ์ ํธํฉ๋๋ค.
์ธ์ ๋์ฐฉํ ์ง ๊ฒฐ์ ํฉ์๋ค. ๊ธฐ๋ก์ ์ํด: ๋๋ ์๋ ๋ ํฌ๊ธฐ ์ธก๋ฉด์์ ์ฌ์ฉ์์๊ฒ ์ฝ๊ฐ์ ์ ์ด ๊ถํ์ ์ฃผ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ถ ๊ตฌํ์ด ํ์ํ ๋๋จธ์ง๋ +1์ ๋๋ค. ๋๋ restic์ ์ฌ์ฉํ์ฌ VM ์ด๋ฏธ์ง๋ฅผ backblaze์ ๋ฐฑ์ ํ๊ณ ์ ๋ก๋ํ๊ธฐ ์ ์ ์์ถํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก์์๋ ์ ์ก/์ ์ฅ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ๊ฑฐ์ ๋ฌดํํ ์๊ฐ/CPU๋ฅผ ๊ตํํ ๊ฒ์ ๋๋ค. ๋๋ ์๋๊ฐ ์ผ๋ถ ์ฌ๋๋ค์๊ฒ ๋ ์ค์ํ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ฌ๋ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ์ ์๋ ํ๋ฌ๊ทธํ ์ํคํ ์ฒ๊ฐ ํต์ฌ์ ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ๋ ์์ธํ ์ดํด๋ณด๋ ๋์ ํ ์คํธ์ ๋์์ด ๋์ด ๊ธฐ์ฉ๋๋ค.
@fd0 restic ์ฝ๋ ๊ธฐ๋ฐ ์์ ์ ํ ์ง ๊ฝค ๋์์ต๋๋ค. ์ข์ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋ด๊ฐ ์ด๋๋ฅผ ๋ด์ผํ๋์ง์ ๋ํ ๋น ๋ฅธ ๋ฐฉํฅ์ ์ ์ํ ์ ์์ต๋๊น?
@klauspost ๊ธฐ์ ์ ์ธ ์์ค์์ ์์ถ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ ์ํํ๊ธฐ ์ฝ์ง๋ง ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฐฉ์์ผ๋ก repo ํ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ ๋ ํ์ฌ ์์นด์ด๋ฒ ๋ถ๋ถ์ ๋ค์ ์์ฑํ๋๋ผ ๋ฐ์ฉ๋๋ค(#549์ ๊ฐ์ ์ถ์ ํ ๊ฒ๋ค์ด ์ฌ๋ผ์ง๋๋ก). ๊ทธ ํ์ ์์ถ์ ์ถ๊ฐํ ๋ค์ repo v2๋ก ์ ํํ๊ณ ์ถ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํด์ผ ํ๋ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น? ์ธ ๊ฐ์ง ๋ชจ๋๋ฅผ ์ง์ํ ์๊ฐ์
๋๋ค.
1) ์์ถ ์์
2) "์ ํ ์๊ฐ" ์์ถ(๋ง์ CPU ๋ถํ๋ฅผ ์ถ๊ฐํ์ง ์์)
3) "์ต๋ ์์ถ"
์ฒซ ๋ฒ์งธ ๋ชจ๋์ ๋ ๋ฒ์งธ ๋ชจ๋๊ฐ ๊ฐ์ ์๋ ์์ง๋ง ์์ง ํ์คํ์ง ์์ต๋๋ค.
zstd์ ๊ฐ์ ๊ฒ์ ๊ธฐ๋ณธ Go ์ฝ๋๋ก ์ฌ์ฉํ ์ ์๋ค๋ฉด ๊ฐ์ฅ ์ข์ ๊ฒ์ ๋๋ค. Damian์ Java ๋๋ C ๋ฒ์ ์ ์ด์ํ๋ ๊ฒ์ด ๋ง์ ์์ ์ด ์๋ ์ ์๋ค๊ณ ์์ํ์ต๋๋ค. https://twitter.com/dgryski/status/947259359628738560, ์๋ํด ๋ณผ ์ ์๋๋ก ๋ด๊ฐ ํ ์ ์๋ ์ผ์ด ์์ต๋๊น? :)
๋๋ zstd ํ์ ์ฌ์์ ๋ณด์๊ณ ๋์๊ฒ ๊ตฌํํ๊ธฐ๊ฐ ์ฝ์ง ์์ต๋๋ค. Java ์์ค๋ โโ์์ถ ํด์ ๋ง ๊ฐ๋ฅํฉ๋๋ค.
๋น ๋ฅธ ์์ถ์ ์ํด LZ4๋ ๋งค์ฐ ์ ์๋ํฉ๋๋ค. Go ํฌํธ๋ ํ๋ฅญํฉ๋๋ค. zstd๊ฐ ๋ ๋์ ๊ฒ์ด์ง๋ง cgo ๊ตฌํ์ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด ์๋ํ๊ณ ํ ์คํธํ ํจํค์ง๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
์ค๋์ ๊ฒฝ์ฐ ์์ถ ์์ถ์ ์ฌ์ ํ โโ์ข์ ์๋/์์ถ์ ๋๋ค. ๋ฑ์ ํ ์คํธ๋ฅผ ์ ๋ฐ์์ต๋๋ค.
๊ณ ์์ถ์ ์กฐ๊ธ ๋ ๊น๋ค๋กญ์ต๋๋ค. ๊ทธ๋ฌ๋ github.com/ulikunitz/xz ํจํค์ง์ ๊ธฐ๋ณธ LZMA(2) Go ๊ตฌํ์ด ์๋
์์ถ ๋จ๊ณ๋ฅผ ์ฝ์ ํ ์์ฐ์ค๋ฌ์ด ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ์์ค๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ๋์๊ฒ ์๋ฏธ๊ฐ ์์๋ ๊ฒ์ ์ฌ๊ธฐ์์ ์์ถ์ ํ๊ณ ์ฌ๊ธฐ ์์ ์์ถ์ ํธ๋ ๊ฒ์ด์
๋ด๊ฐ ๋ง๋ "์์ถ์ฑ ์ถ์ ๊ธฐ"๋ฅผ ์ดํด๋ณผ ์๋ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ๊ฐ ์ผ๋ง๋ ์์ถ ๊ฐ๋ฅํ์ง ๋น ๋ฅด๊ฒ ์ถ์ ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก >500MB/s์์ ์๋ํ๋ฏ๋ก ์์ถํ๊ธฐ ์ด๋ ค์ด ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฑฐ๋ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ด๊ฐ ๋ง๋ "์์ถ์ฑ ์ถ์ ๊ธฐ"๋ฅผ ์ดํด๋ณผ ์๋ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ๊ฐ ์ผ๋ง๋ ์์ถ ๊ฐ๋ฅํ์ง ๋น ๋ฅด๊ฒ ์ถ์ ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก >500MB/s์์ ์๋ํ๋ฏ๋ก ์์ถํ๊ธฐ ์ด๋ ค์ด ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฑฐ๋ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ถ๋ฅ ์ถ์ ๊ธฐ๋ฅผ ์ข์ํ์ญ์์ค! ์์ถํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ถํ๋ ค๋ ์๋๋ฅผ ํผํ๋ฉด ๋ง์ ์๋๋ฅผ ์ป์ ์ ์์ต๋๋ค.
Zstd์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. [1]
Zstd๋ ์์ถํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์ ๋ฌํฉ๋๋ค. > 1GB/s๋ฅผ ์์ํ์ญ์์ค.
๋๋ ๊ทธ๊ฒ์ ๋ํ ๋ช ์์ ์ธ ๋ฒค์น๋งํฌ๋ฅผ ์ฐพ์ง ๋ชปํ์ง๋ง.
xz ํจํค์ง๋ lzma์๊ฒ ์ข์ ๊ฑฐ๋์ฒ๋ผ ๋ณด์ ๋๋ค. ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ๋ช ๊ฐ์ง ๋น ๋ฅธ ํ ์คํธ๋ฅผ ์ํํ์ต๋๋ค.
| ์๊ณ ๋ฆฌ์ฆ | ์์ค | ํฌ๊ธฐ | ํน๋ | ๋ฐ๋ฆฌ | ๋ฉ๊ฐ๋ฐ์ดํธ/์ด | ๋น์จ |
|----------|-------|------------|----------|---- ----|--------|--------|
| lz4 | - | 1000000000 | 625968314 | 5454 | 174.85 | 62.60% |
| ํ๋ซํ
| 1 | 1000000000 | 391051805 | 12367 | 77.11 | 39.11% |
| ํ๋ซํ
| 5 | 1000000000 | 342561367 | 20164 | 47.3 | 34.26% |
| ํ๋ซํ
| 9 | 1000000000 | 324191728 | 43351 | 22 | 32.42% |
| ์ด์ฆ๋ง2 | | 1000000000 | 291731178 | 149437 | 6.38 | 29.17% |
| ์ด์ฆ๋ง | | 1000000000 | 291688775 | 161125 | 5.92 | 29.17% |
๋งค์ฐ ํฉ๋ฆฌ์ ์ธ ์๋/์์ถ ์ ์ถฉ์. ๋ชจ๋ enwik9 - ์ค๊ฐ ์์ถ ๊ฐ๋ฅํ ํ ์คํธ ๋ณธ๋ฌธ์ ๋จ์ผ ์ฝ์ด ์ฑ๋ฅ์ ๋๋ค. ๋ถ๋ช ํ ์ ๋ ์ ์ฒด VM ์ด๋ฏธ์ง๋ ๋ ํผํฉ๋ ์ฝํ ์ธ ๊ฐ ํฌํจ๋ 10GB ์ฝํผ์ค ์ ๊ฐ์ ๊ฒ์ ํ ์คํธํ ์๊ฐ์ด ์์์ต๋๋ค.
lzma2๊ฐ ํ์ค lzma์ ๋นํด ํ์ฌ ๊ตฌํ์์ ๋ง์ ๊ฒ์ ์ ๊ณตํ๋ ๊ฒ ๊ฐ์ง ์์ต๋๋ค. ์์ ๋ธ๋ก์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ฐจ์ด๋ ์์ฃผ ์์์ผ ํฉ๋๋ค.
Zstd์๋ ์ด์ ๊ฐ์ ๊ฒ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค.
์, lz4 ๋ฐ deflate์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ฉ ๊ธฐ๋ฅ๋งํผ ๋น ๋ฅด์ง๋ ์์ต๋๋ค.
zstd๋ ์์ฌํ ์ฌ์ง ์์ด ์ ๋ง ์ธ์์ ์ ๋๋ค. cgo ๊ตฌํ์ ์ฌ์ฉํ ๋ฒค์น๋งํฌ:
| ์์ค | ํฌ๊ธฐ | ํน๋ | ๋ฐ๋ฆฌ | ๋ฉ๊ฐ๋ฐ์ดํธ/์ด | ๋น์จ |
|---------|------------|--------------|--------|--------- -|--------|
| 1 | 1000000000 | 358512492 | 5100 | 186.96 | 35.85% |
| 2 | 1000000000 | 332265582 | 6264 | 152.24 | 33.23% |
| 3 | 1000000000 | 314403327 | 8099 | 117.75 | 31.44% |
| 4 | 1000000000 | 310346439 | 8588 | 111.04 | 31.03% |
| 5 | 1000000000 | 305644452 | 12739 | 74.86 | 30.56% |
| 6 | 1000000000 | 292551252 | 18531 | 51.46 | 29.26% |
| 7 | 1000000000 | 287414827 | 23212 | 41.08 | 28.74% |
| 8 | 1000000000 | 282783804 | 27811 | 34.29 | 28.28% |
| 9 | 1000000000 | 280432907 | 31752 | 30.03 | 28.04% |
๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น ๊ฒ์ ์ฉ์ํ์ญ์์ค. ๊ทธ๋ฌ๋ ์ด์ ์ ์ด๋ฌํ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์ ๋๋ก ๋ณด์ง ๋ชปํ์ต๋๋ค.
๊ฐ์ฌ ํด์.
์ ์ฒด ํ์ผ์ ์์ถํ๋ฉด ์ค๋ณต ์ ๊ฑฐ ์๊ณ ๋ฆฌ์ฆ์ด ๋ณ์กฐ๋์ด ํจ์จ์ฑ์ด ๋จ์ด์ง ์ ์์ต๋๋ค.
๊ทธ ์ธ์ ๊ณต๊ฐ ์ธก๋ฉด ์์ ์ค๋ค๋ ์ฌ์ค์ ์์ง ๋ง์ญ์์ค. ์์ถ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์์ ๋ฐ์ดํฐ ๋ด์ฉ์ ๋ํ ๊ต์ก์ ์ธ ์ถ์ธก์ ํ ์ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ์ ์ ์ธ๊ธ๋์๋ค๊ณ ์๊ฐํ์ง๋ง ์ฌ์ ํ ๊ทธ๋ ์ต๋๋ค.
@์ํํํ
ํ์ผ ์์ค์ด ์๋ ์ฒญํฌ ์์ค์ ์์ถ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์ต๋๊น?
์, ์ฒญํฌ ์์ค์์.
๊ทธ๋ ๋ค๋ฉด ๋จ์ผ ํ์ผ์ ์ฌ๋ฌ ์ฒญํฌ์ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ณ ๊ฐ ์ฒญํฌ์ ๋ํด ์์ถ๋๋ฏ๋ก ํจ์จ์ฑ์ด ๋ถ๋ช ํ ์ ํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๋ถ๋ช ํ ์ฒญํฌ ํฌ๊ธฐ์๋ ๋ฌ๋ ค ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํ๊ท ์ฒญํฌ ํฌ๊ธฐ๋ ์ผ๋ง์ ๋๊น? ์ด๊ฒ์ด ์์ถ์ด ์ผ๋ง๋ ์ ์ฉํ์ง์ ์ค์ํ ์์์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๋ 1MiB๋ฅผ ๋ชฉํ๋ก ํ๊ณ ์์ง๋ง ์ต๋ 8MiB๊น์ง ํด ์ ์์ต๋๋ค.
์ฒญํฌ ํฌ๊ธฐ๊ฐ ์๋นํ ์์ ๊ฒฝ์ฐ ์์ถ๋ฅ ์ด ๋์ ํ์ผ์ ๋ํด ์ ์ฒด ํ์ผ, ์ฌ์ ์ฒญํฌ ์์ถ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค(์: @klauspost ์ ์ถ์ ๊ธฐ ์ฌ์ฉ). ์๋ฅผ ๋ค์ด, 50MB ํ ์คํธ ํ์ผ(์: ๋ก๊ทธ ํ์ผ, ํฐ ์กฐ์ง ๋ชจ๋ ํ์ผ ๋ฑ)์ ๋จ์ผ ํ์ผ๋ก ์์ถ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๊ทธ๋ฌ๋ ๋จผ์ ์ฒญํฌ๋ ๋ค์ ๊ฐ ์ฒญํฌ๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ณต์ ํ์ง ์๊ณ ๊ฐ๋ณ์ ์ผ๋ก ์์ถ๋๋ฉด ์์ถ์ ํจ์จ์ฑ(IIUC)์ด ํฌ๊ฒ ์ ํ๋ฉ๋๋ค.
์ฒ์์๋ ์ฒญํฌ ์์ค์์ ์์ถ์ ํตํฉํ๊ณ ์ค์ ์๋๋ฆฌ์ค์์ ์์ถ์ด ์ผ๋ง๋ ์ ์ํ๋๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค. ๋์ค์ ์ด ์์ด๋์ด๋ฅผ ๋ค์ ์ดํด๋ณผ ์ ์์ต๋๋ค.
@klauspost ์๊ฐ์ ๋ด์ด ์ผ๋ถ ์๊ณ ๋ฆฌ์ฆ/๊ตฌํ ๋ฐ ๊ถ์ฅ ์ฌํญ์ ๋ฒค์น๋งํนํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค! zstd๊ฐ ์์ผ๋ฉด ์ข๊ฒ ์ง cgo
์ ์์กดํ์ง ์๋ ๊ฒ์ด ํ๋ก์ ํธ ์ ์ฒด์ ํจ์ฌ ๋ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ถ๋ฅ ์ถ์ ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ข์ ์์ด๋์ด์
๋๋ค. ์ ๋ ๊ทธ๊ฒ์ ์ข์ํฉ๋๋ค.
์์ถ/์์ถ ํด์ ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ์ธ๊ธํ ๊ณณ์ ์ข์ ๊ฒ ๊ฐ์ง๋ง ๋ค๋ฅธ ๊ณณ์์ ํด๋น ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ์ ํด์ผ ํฉ๋๋ค. ํฉ ํค๋์ ๋ฐ์ดํธ์ ์๋ ๋นํธ์ ์๋ฏธ๋ฅผ ์ถ๊ฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค( http://restic.readthedocs.io/en/latest/100_references.html#pack -format ์ฐธ์กฐ). ๋งค์ฐ ์ ์คํ๊ฒ ์์ ํด์ผ ํ๋ ๋ถ๋ถ์ ๋๋ค.
์, #1494๋ก ๋ง์น๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
@sanmai re: side-channels: ์๋ ์ ๊ฐ ๊ฐ์ ธ์์ต๋๋ค.
๋ค์ํ ์๋ฃจ์
์ด ์ ์๋์์ผ๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ๋ค์ ์ฌํญ์ ๋ง์กฑํฉ๋๋ค.
๋ ๋ค๋ฅธ ์์ด๋์ด๋ ํฉ ํ์ผ์์ ์ฒญํฌ ๊ฒฝ๊ณ๋ฅผ ์จ๊ธฐ๋ ค๊ณ ์๋ํ๋ ๊ฒ์ธ๋ฐ, ์ด๋ก ์ ์ผ๋ก ๋งํ๋ฉด ๋ ์ด๋ ต๊ฒ ๋ง๋ค์ง๋ง ๋คํธ์ํฌ ์ฐ๊ธฐ ๋ฐ ์ฒญํฌ๊ฐ ๊ธฐ๋ก๋ ํ์ผ ์์คํ ๋ฒ์ ์ ๊ฐ์ ์ฌ์ด๋ ์ฑ๋์ ์ฌ์ ํ โโ์๊ฐ์ ์ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฑ๋ฑ์ ๊ฒฝ๊ณ๋ฅผ ์ถ๋ก ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ผ๋ฏ๋ก ๊ฐ์ฅ ์์ ํ๊ณ ์ฌ์ด ๊ฒ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์์ถํ์ง ๋ง๋ผ๊ณ ์กฐ์ธํ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ๊ต์ฅํ ๊ฒ์ ๋๋ค! :๋งฅ์ฃผ: +$10
๊ทธ๋ฅ ๋์ง๊ณ lzma ๋๋ ๋ ์ผ๋ฐ์ ์ธ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ณ๋๊ณ ์คํ ๊ธธ์ด ์ธ์ฝ๋ฉ์ด๋ ์ ๋ก ์ค์ฟผ์ฑ์ ์ด๋ป์ต๋๊น? ์๋๋ฉด ์ถฉ๋ถํ ์ฌ๋๋ค์๊ฒ ์ถฉ๋ถํ ์ ์ฉํ์ง ์์๊น์?
(๋๋ ์ด ์ฌ๋ฅ์ ๊ฐ๊ฐ ์๊ณ , ๋๋ ์ข ์ข ๋ง์ ์นจ๋ฌต์ผ๋ก ๊ฑฐ๋ํ WAV ํ์ผ์ ๋ฐฑ์ ํ๊ณ ์์ต๋๋ค.)
+$15
๊ทธ๋ฅ ๋์ง๊ณ lzma ๋๋ ๋ ์ผ๋ฐ์ ์ธ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ณ๋๊ณ ์คํ ๊ธธ์ด ์ธ์ฝ๋ฉ์ด๋ ์ ๋ก ์ค์ฟผ์ฑ์ ์ด๋ป์ต๋๊น? ์๋๋ฉด ์ถฉ๋ถํ ์ฌ๋๋ค์๊ฒ ์ถฉ๋ถํ ์ ์ฉํ์ง ์์๊น์?
๋ํ ๋๋ถ๋ถ ๋น ๊ณต๊ฐ/์คํ์ค ํ์ผ์ด ์๋ VM ๋๋ผ์ด๋ธ๋ฅผ ๋ฐฑ์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค(restic์ด ์คํ์ค ํ์ผ ๋ฐฑ์ /๋ณต์์ ์ด๋ฏธ ์ง์ํ๋์ง ํ์คํ์ง ์์)
@bherila restic์ ์์ง ์คํ์ค ํ์ผ ๋ณด๊ด/๋ณต์์ ์ง์ํ์ง ์์ต๋๋ค. ํ์ผ์ 0์ด ๋ง์ด ํฌํจ๋ ๊ฒ์ฒ๋ผ ์ ์ฅ์์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ฌํ ํฐ 0 ๋ธ๋ก์ ์ค๋ณต ์ ๊ฑฐ๋๋ฏ๋ก ์ ์ฅ์์์ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ณต์์ ๊ฒฝ์ฐ "๊ตฌ๋ฉ"์ด ์๋ ์ผ๋ฐ(ํฌ์ํ์ง ์์) ํ์ผ๋ก ๋๋ฉ๋๋ค.
๋ฐฉ๊ธ ํ์ธํ๊ณ ์ถ์์ต๋๋ค. ์ด๋ฏธ ์ผ์ข ์ ์์ถ์ด ์์ต๋๊น? ๋ฐ์ดํฐ๊ฐ 50GB์ธ ์ปดํจํฐ๋ฅผ ํฌํจํ์ฌ ์ฌ๋ฌ ๋์ ์ปดํจํฐ๋ฅผ ๋ฐฑ์ ํ๋๋ฐ ์๋ฒ์์ ํจ์ฌ ์ ์ ์๋ฅผ ์ป์์ต๋๋ค.
# du -shc /home/restic/
40G /home/restic/
40G total
@Alwaysin ๋ฌผ๋ก ์ผ๋ถ ํ์ผ์ด ์ ์ธ๋์ง ์๋ ํ ์๋ง๋ ์ค๋ณต ์ ๊ฑฐ ์ผ ๊ฒ์ ๋๋ค.
@rawtaz ๊ฐ์ฌํฉ๋๋ค. ์ค๋ณต ์ ๊ฑฐ์ ๋ํด ๋ชฐ๋์ต๋๋ค.
@rawtaz ๊ฐ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ํฐ ๋ฐ๋ณต ๋ธ๋ก์
@klauspost ์ด๊ฑฐ ๋ดค์ด ? https://github.com/mvdan/zstd
์, ํ์ง๋ง ์์งํ ์คํธ๋ฆผ ๋์ฝ๋๋ ์ฌ์ด ๋ถ๋ถ์ ๋๋ค. FSE en/decoding์ ๋ง์น๊ณ Huffman ์ธ์ฝ๋๋ฅผ ์ค๋นํ์ต๋๋ค. Huffman ๋์ฝ๋ฉ์ด ์๋ฃ๋๋ฉด zstd ์คํธ๋ฆผ ๋์ฝ๋๋ ๋งค์ฐ ๊ฐ๋จํ๋ฉฐ ์ ์ฒด ์ธ์ฝ๋๊ฐ ์ต์ข ๋ถ๋ถ์ ๋๋ค.
LZ4๋ ์๋ฒฝํ๊ฒ ์ถฉ๋ถํ๋ฉฐ ๋ํ ๋น ๋ฅธ ์น๋ฆฌ๊ฐ ๋ ๊ฒ์ ๋๋ค.
lz4๋ฅผ ์ถ๊ฐํ๊ณ zstd๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ค๋ฅธ PR์ ์์ฑํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
lz4๋ฅผ ์ถ๊ฐํ๊ณ zstd๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ค๋ฅธ PR์ ์์ฑํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@dave-fl์ ์ ์ฅ์ ํ์์ ์์ ํ ๋ ๋งค์ฐ ์ฃผ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฐฉ์์ผ๋ก ์ํ๋์ด์ผ ํฉ๋๋ค. ์ ์ฒด ํ๋ก์ ํธ์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ ๊ตฌํ์ด ์๋๋ผ repo ํ์์ ๋๋ค. ์ฌ๋๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ์ ์๋๋ก ํ์์ ๋ง์น์ง ์๊ธฐ ์ํด ์ฐ๋ฆฌ์๊ฒ ์์กดํฉ๋๋ค. :)
์์ถ์ผ๋ก ๋๋ฌด ๋ง์ด ๊ธฐ๋ค๋ฆด ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐฉ๊ธ ์๋ฒ ๋ฐฑ์ ์ ๋ช ๊ฐ์ง ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์ํํ์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ gzip์ผ๋ก ์์ถํ ๋ ์ ํํ ์๋ฌด๊ฒ๋ ์ป์ง ๋ชปํ์ต๋๋ค! @Alwaysin ์ฒ๋ผ ์ด๋ฏธ ์ค๋ณต ์ ๊ฑฐ๋ก 30%๋ฅผ
์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฐฉ์์ ๋ํด์๋ Restic์ด ์ด์ ํ์์์ ์ ํ์์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ํด ๋ ํ์ ๋๋ ๋๊ตฌ๋ฅผ ๋ชจ๋ ์ฝ์ด์ผ ํ๋ค๋ ์๋ฏธ์ ๋๊น? Restic์ด v1.0.0์ด ์๋ ๋๋ ๊ทธ๋ฅ ๋ง์ด๊ทธ๋ ์ด์ ํด๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฐฉ๊ธ ์๋ฒ ๋ฐฑ์ ์ ๋ช ๊ฐ์ง ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์ํํ์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ gzip์ผ๋ก ์์ถํ ๋ ์ ํํ ์๋ฌด๊ฒ๋ ์ป์ง ๋ชปํ์ต๋๋ค!
์, ์์๋ฉ๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ํธํ๋์ด ๊ฑฐ์ ์์ถํ ์ ์์ต๋๋ค. ์์ถ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ๋ฅผ ์ํธํ
LZ4๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ๋ฒ์ ๊ณผ ์ด๋ป๊ฒ ํธํ๋์ง ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์์ถ์ ์์ถ์ ๋๋ค. ์ฌ๋ฌ ํ์์ ์ง์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋น์ ๋ง์ด ๋ง์, ๋๋ ๊ทธ๊ฒ์ ๋ํด ์๊ฐํ์ง ์์๋ค.
๊ทธ๋ฌ๋ ์์ค๋ฅผ gzip์ผ๋ก ์์ถํ ๋ 30% ์ด์ ์น๋ฆฌํ์ง ๋ชปํ์ผ๋ฉฐ ์ค๋ณต ์ ๊ฑฐ๋ ์ค๋ณต์ด ๋ง์ ํฐ ๋๋ ํ ๋ฆฌ์์ ์ด๋ฏธ ๋งค์ฐ ํจ์จ์ ์
๋๋ค. ๊ทธ๋ฌ๋ ๋ฌผ๋ก ๋ ๋ค ์ธ์์ ์ผ ์ ์์ต๋๋ค.
์์ถ ๋ฐ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํํ๋ zpaq์ ์ฌ์ฉํ๋ฉด ๊ทธ๋ค์ง ๋ง์ด ์ป์ง ์๊ณ ์กฐ๊ธ ๋ ๋ง์ด ์ป์ ์ ์์ต๋๋ค.
์ ๋ ์์ถ์ ์ฌ์ฉํ์ฌ ๋ถ๊ธฐ๋ฅผ ํ
์คํธํ๋ ๋ฐ ๋งค์ฐ ๊ฐ๋ฐฉ์ ์
๋๋ค. ํธํ๋์ง ์์๋ ์๊ด ์์ต๋๋ค!
LZ4๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ๋ฒ์ ๊ณผ ์ด๋ป๊ฒ ํธํ๋์ง ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์์ถ์ ์์ถ์ ๋๋ค. ์ฌ๋ฌ ํ์์ ์ง์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ ํด๋ผ์ด์ธํธ๊ฐ ๋์ผํ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ๊ทธ ์ค ํ๋๊ฐ ์์ถ์ ์ง์ํ์ง ์๋ ์ด์ ๋ฒ์ ์ restic์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฅํ ๋ชจ๋ ๋ชจ์๋ฆฌ ์ผ์ด์ค๋ฅผ ์ผ๋์ ๋๊ณ ์ ์คํ๊ฒ ์ค๊ณํด์ผ ํฉ๋๋ค.
๊ฐ๋ฅํ ์ด์ ๋ฐฑ์ ์ ์ค๋จํ ์ ์๋ ์ ๋ฐ ์์ ์๋ฃจ์ ๋ณด๋ค ์์ถ์ ์ ํธํ์ง ์์ต๋๋ค.
์์ถ์ ์ถ๊ฐํ๋ ๋ฌธ์ ์ ๋ํด์๋ ์ถฉ๋ถํ ๋ ผ์๊ฐ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋งค์ฐ ๊ธฐ๋๋๋ ๊ธฐ๋ฅ์์ ์ ์ ์์ต๋๋ค. ์ ์์นด์ด๋ฒ ์ฝ๋(#1494 ์ฐธ์กฐ)๋ฅผ ์๋ฃํ ํ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฒ ์ต๋๋ค.
๋ ์ด์ ์๊ฒฌ์ ์ถ๊ฐํ์ง ๋ง์ญ์์ค. ๊ฐ์ฌํฉ๋๋ค!
@dimejo ๋น์ ์ด ๋งํ๋ ๊ฒ์ ๋ด๊ฐ ์ ์ํ ๊ฒ๊ณผ ์๋ฌด ๊ด๋ จ์ด ์์ต๋๋ค. zstd ๋๋ lz4๋ฅผ ๊ตฌํํ๋๋ก ์ ํํ๋์ง ์ฌ๋ถ๋ ๋ ๊ฒฝ์ฐ ๋ชจ๋์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋๋ ๊ฐํ zstd์ CGO ๋ฒ์ ์ด ๋ค์ ์ด์์ฑ์ด ์์ด ๋ณด์ธ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. :)
์ฌ์์ ๊ธฐ๋ฐ์ผ๋ก ๋งค์ฐ ๊ฐ๋ตํ๊ฒ zstd์ golang ๊ตฌํ์ ์์ฑํ๋ ๊ฒ์ด ์ผ๋ง๋ ์คํ ๊ฐ๋ฅํ์ง ์ดํด๋ณด์์ต๋๋ค.
zstd๋ ๋๋ถ๋ถ ์ฌ๋ด ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง (์ ํ์ ์ผ๋ก) ์ค๋ฅ ๊ฒ์ฌ๋ฅผ ์ํด xxHash-64 ์ฒดํฌ์ฌ ์ ์์กดํ๋ฉฐ ์ด์ ๋ํ golang ํฌํธ๊ฐ ์์ต๋๋ค. ์ ํ์ ๋นํธ๋ ์ ํ ์ฌํญ์ด๋ฏ๋ก restic์ ๋ฆฌ๋/๋ผ์ดํฐ์ ๋ํ zstd ์ง์์ ์ป๊ธฐ ์ํด ํด๋น ๋ถ๋ถ์ ๊ตฌํํ ํ์๊ฐ ์์ต๋๋ค. zstd๋ ์์ถ์ ์ต์ ํํ๊ธฐ ์ํด "์ฌ์ "์ ๊ฐ๋ ์ ์ง์ํฉ๋๋ค. ์ด๊ฒ์ด restict์ ์ด๋ป๊ฒ ์ํธ ์์ฉํ ์ง ํ์ ํ ์ ์์ง๋ง ์์นด์ด๋ธ์ ํน์ ๋ถ๋ถ(์: JSON ๋๋ ๋ฉํ๋ฐ์ดํฐ ์คํธ๋ฆผ)์ ์์ถํ๋ ํฅ๋ฏธ๋ก์ด ์ฐ๊ตฌ ์์ญ์ด ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ํ ์ฌํญ์ด๋ฏ๋ก ํด๋น ๊ตฌํ์ ๊ฑด๋๋ธ ์๋ ์์ต๋๋ค.
๋ฌผ๋ก ๋ ๊น๋ค๋ก์์ง๋ ๊ณณ์ ์ํธ๋กํผ ์ฝ๋ฉ์ด ์์๋๋ ๊ณณ์ ๋๋ค. zstd๋ Finite State Entropy (FSE, [ANS]์ ๋ณํ(https://en.wikipedia.org/wiki/Asymmetric_numeral_systems#, ๊ทธ ์ค C ๊ตฌํ๋ง ์กด์ฌํฉ๋๋ค. ๋ค๋ฅธ ์ํธ๋กํผ ์ฝ๋ฉ ๋นํธ๋ ํํ๋ง ์ฝ๋ฉ ์ผ๋ก ๊ตฌํ๋๋ฉฐ, ๊ทธ ์ค ํ๋ ๋ compress.flate์ ์๊ณ ๋ค๋ฅธ ํ๋๋ net.http2.hpack ์ ์๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ ๋ ๊ฐ์ง๋ฅผ ํฌํจํ์ฌ ์ฌ๋ฌ ๊ตฌํ์ด ์์ต๋๋ค. ์คํ๋ ค ์ด์ํ๋ค.
๋ด๊ฐ ๋งํ ์ ์๋ ๋ฐ์ ๋ฐ๋ฅด๋ฉด, ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๊ทธ ์์ ์ ์ฐฉ์ ์ ๋๋ค... ์ผ๋ถ ํํ๋ง ํธ๋ฆฌ, ์ํ์ค, ํ๋ ์ ๋ฐ ๋ธ๋ก. ๋ธ๋ก๊ณผ ํ๋ ์์ด ๋น๋๋๋ ๋ฐฉ์์๋ ํฅ๋ฏธ๋ก์ด ์์ฑ์ด ์๋๋ฐ, ์ด ์์ฑ์ restic blob์ ์ ๋งคํ๋ ์ ์์ต๋๋ค. ์ด ์์ฑ์ ์ฌ์ฉํ๋ฉด ๋ด๋ถ์ blob์ ๋ณ๋๋ก ์ ์งํ๋ฉด์ ์ ์ฅ์ ์ ์ฒด๋ฅผ ์์ถํ ์ ์์ง๋ง ์์ธํ ์ดํด๋ณด์ง๋ ์์์ต๋๋ค. . ๋ํ ์ ์ฅ์ ํ์๊ณผ ์์ถ ์ฌ์ด์ ๊ฒฐํฉ์ ํ์ฉํ ์ ์๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค.
zstd๋ ๊ฐ๊ฐ 36k ๋ฐ 12k์ ๋นํด ์ฝ 70k ๋ผ์ธ(cloc์ ๋ฐ๋ผ)์ ์ฝ๋๋ก gzip ๋๋ xzip๋ณด๋ค ํจ์ฌ ๋ ๋ณต์กํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์๋ ์๋ง์ ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ํ ์คํธ๋ฅผ ๋ฌด์ํ๋ฉด ๊ตฌํ ์์ฒด๊ฐ gzip(~34k)๊ณผ ๊ฑฐ์ ๋น์ทํฉ๋๋ค.
์์ฝํ์๋ฉด, ์ด๊ฒ์ด go์์ ๊ตฌํ๋๋ ๊ฒ์ ์๊ฐ ๋ฌธ์ ์ผ ๋ฟ์
๋๋ค. zstd "ํ๋ ์"์ด ์๋ก ๋
๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ์์ง์ด golang์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ํ์ฉํ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ๋ ์์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง๋ ๋ถ๋ช
ํ์ง ์์ต๋๋ค. ๋ด๊ฐ ํ
์คํธํ ๋๋ถ๋ถ์ ์คํธ๋ฆผ์๋ ํ๋( zstd /etc/motd
) ๋๋ ๋ ๊ฐ( zstd isos/Fedora-Workstation-Live-x86_64-27-1.6.iso
) ํ๋ ์( binwalk -R "\x28\xb5\x2f\xfd"
์์ ๋ฐ๊ฒฌ๋จ), ๋ธ๋ก ์ด ์ํธ ์ฐ๊ด๋๊ณ ๋ ๋ณ๋ ฌํ๋๊ธฐ ๋๋ฌธ์ ์๋ง๋ ๊ทธ๋ฐ ์ด๋์ ์์ ๊ฒ์
๋๋ค...
์ด์จ๋ , ์ฌ๊ธฐ ๋๊ตฐ๊ฐ๊ฐ ์ค์ ๋ก ์์์ ๊ทธ๊ฒ์ ์ด์ํ๊ณ ์ถ์ดํ์ง ์๋ ํ ๋ชจ๋ ๋ฌธ์ ๊ฐ ์์ง๋ง, ๋๋ ๊ทธ๊ฒ์ ์ฝ๋ ๋์ ๋ด๊ฐ ๋ฐ๊ฒฌํ ๊ฒ์ ๊ณต์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค... zstd๊ฐ LZ77 ์ปดํ๋ ์ ์ ํ๊ตฐ์ LZMA ๋ถ๋ถ์ ํ์ฅ์ด๋ผ๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์ด์์ด ๋ถ๊ฐ๋ฅํ๋ค...
์์ถ์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๋ง์ ์ฌ๋๋ค์ด zstd
๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ธฐ๋ฅผ ์ํ์ง๋ง lz4
๋๋ lzo
๋๋ lzma
๋ฌด์์ด ๋ฌธ์ ๊ฐ ๋ ๊น์?
์ ๋ฐ์ดํธ๊ฐ ์์๋ค๋ฉด ์ด ๋ฌธ์ ๊ฐ ์ ๋ฐ์ดํธ๋์์ ๊ฒ์ ๋๋ค.
๊ทธ ๋์ ์ ์์ ์์ฒญ์ ์กด์คํ๋ ค๊ณ ๋ ธ๋ ฅํฉ์๋ค.
๋ ์ด์ ์๊ฒฌ์ ์ถ๊ฐํ์ง ๋ง์ญ์์ค. ๊ฐ์ฌํฉ๋๋ค!
@fd0 , zstd ์๊ณ ๋ฆฌ์ฆ https://github.com/klauspost/compress/tree/master/zstd ์ ์์ํ Go ๊ตฌํ์ด ์๋ ๊ฒ ๊ฐ๋ค๋ ์ ์ ์ง์ ํ๊ณ ์ถ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ์ง์ ์๋ํ์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ restic์์ ์์ถ ์ง์์ ๊ฐ๋ฅ์ฑ์ ๋ํด ํฅ๋ถํ๊ฒ ํ์ต๋๋ค.
Go zstd ํญ๋ชฉ(์๋? ์ฝ๋ ํ์ง? ์ ์ง ๊ด๋ฆฌ?)์ ๋ชจ๋ฅด์ง๋ง C zstd ํญ๋ชฉ์ ๋น ๋ฅธ/์ฝ๊ฐ์ ์์ถ์์ ๋๋ฆฐ/๋์ ์์ถ๊น์ง ๋ค์ํ ๋ฒ์๋ฅผ ์ง์ํ๋ฏ๋ก ๋ฐฑ์ ๋๊ตฌ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋๋ค.
borgbackup์ ๋ค๋ฅธ ๋ชจ๋ ์์ถ ์๊ณ ๋ฆฌ์ฆ(lz4, zlib, lzma)์ด ์๊ณ ์ง๊ธ ์์ถ์ ์ถ๊ฐํ๊ธฐ ์์ํ๋ค๋ฉด zstd๋ง ์์ผ๋ฉด ๋๊ณ ์๋ฌด ๊ฒ๋ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๊ฐํ์ญ์์ค.
์ทจํฅ/์ ํธ๋์ ๋ฐ๋ผ ๊ธฐ๋ณธ๊ฐ์ ์์(์ด์ ๊ณผ ๊ฐ์ด) ๋๋ ๋งค์ฐ ๋น ๋ฅธ zstd ์์ค(์ ์กํ ๋ฐ์ดํฐ๊ฐ ์ ๊ธฐ ๋๋ฌธ์ ์ ๋ฐ์ ์ผ๋ก ์ฌ์ ํ ๋๋ถ๋ถ์ ๋ฐฑ์ ์ ๋ ๋น ๋ฅด๊ฒ ํจ)์ผ ์ ์์ต๋๋ค.
์๋
ํ์ญ๋๊น,
๋ด ์๊ฐ์ ์์ถ์ ํ์ ๊ธฐ๋ฅ์ด ์๋๋๋ค. Duplicati(์์ถ ํฌํจ)์ restic(์์ถ ์์)์ผ๋ก ์ํํ ๋ฐ์ดํฐ ๋ฐฑ์
์ ๋น๊ตํ๋๋ฐ ์ ์ฒด ์ฌ์ฉ ๊ณต๊ฐ์ด ์ ๋ง ๋น์ทํ์ต๋๋ค.
๋น ๋ฅด๊ณ ์์ ์ ์ธ ์ฆ๋ถ ๋ฐฑ์
์ ์ป๊ธฐ ์ํด์๋ง restic์ด ํ์ํฉ๋๋ค. ์กฐ๊ธ ๊นฐ ํ์๊ฐ ์์ต๋๋ค ...
๋ณต์๋ ์ค์ํ๋ฉฐ restic์ ์ฌํด ๋ณต๊ตฌ์ ์ ํฉํฉ๋๋ค. Duplicati๋ ๋ก์ปฌ db๋ฅผ ์์ด๋ฒ๋ฆฐ ๊ฒฝ์ฐ ๋ณต๊ตฌ ์์
์ ๋ฉฐ์น ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์
๋ชฝ์
๋๋ค.
@fd0 ๊ณผ ๋ชจ๋ ๊ธฐ์ฌ์์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@filippobottega ์คํ์์ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ง ๋ชปํ๋ค๋ฉด ๋ค์์ ์๋ฏธํฉ๋๋ค.
๋ ๋ค ์์ถ์ด ๋ฌด์๋ฏธํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
@ThomasWaldmann ์ฒซ ๋ฒ์งธ ์ด์ ๋ก ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ง ๋ชปํฉ๋๋ค.
์ค๋๋ ๋ฐ์ดํฐ๋ ์ด๋ฏธ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์์ถ๋์ด ์์ต๋๋ค. docx, xlsx, pptx, zip, 7z, jpeg, tif ๋ฑ์ ๋ชจ๋ ์์ถ ํ์์
๋๋ค. ๋ํ ISO ์ด๋ฏธ์ง์๋ ์์ถ ํ์ผ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ์์ถ์ ๋ด๊ฐ ์๊ฐํ๊ธฐ์ ๋ฌด์๋ฏธํฉ๋๋ค.
@filippobottega ์ฌ๋๋ค์ด ๋ฐฑ์ ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋์ง์ ๋ํ ๋น์ ์ ๊ฒฌํด๋ ์ฝ๊ฐ ํธํํฉ๋๋ค. SQL ๋คํ, ์์ค ์ฝ๋, ๋ฐ์ดํฐ ์ธํธ, ์์ ์ด๋ฏธ์ง ๋ฑ์ ์ด๋ป์ต๋๊น? ์ค๋ณต ์ ๊ฑฐ๋ ๋ฐฑ์ ๊ฐ์ ๋ธํ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐ๋ ํฐ ์ญํ ์ ํ์ง๋ง ๋ฐ์ดํฐ ์ธํธ์ ์๋ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐ๋ ์๋ฌด ํจ๊ณผ๊ฐ ์์ต๋๋ค. ์์ถ๋์ง ์์ ํ์์ ๊ฒฝ์ฐ ์ด๋ ์ ๊ธฐ๊ฐ๋ฐ์ดํธ๋ฅผ ์๋ฏธํ ์ ์์ต๋๋ค. ์์ถ๋์ง ์์ ํ์์ ์ ์ฅํ ๋ค์ ์์ถ + ์ค๋ณต ์ ๊ฑฐ๊ฐ ์ด๋ฏธ ์์ถ๋ ํ์ผ์ ์ค๋ณต ์ ๊ฑฐํ๋ ๊ฒ๋ณด๋ค ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์์ต๋๋ค.
SQL ๋คํ๋ ๋ด ์ฒซ ๋ฒ์งธ ์๊ฐ์ด์์ง๋ง restic์ ๋ด ๋ฉ์ผ ์๋ฒ๋ ๋ฐฑ์ ํ๋ฉฐ Duplicati์์ restic์ผ๋ก ์ด๋ํ ๋ ์ฐ์ ์ผ๋ถ RAR ์ค๋ ์ท์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ์ ์ฒด ์์ถ์ด ๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค.
์์ถ์ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋ค๊ณ ๊ธฐ๋ณธ ํ์ผ ์ ํ ๋ชฉ๋ก์ ๊ฐ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ณผ ์ ์์ง๋ง ์์ถ์ ํตํด ํฉ๋ฆฌ์ ์ธ ๊ธ์ก์ ์ ์ฝํ ์ ์์ต๋๋ค.
@mrschyte
์ฌ๋๋ค์ด ๋ฐฑ์ ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋์ง์ ๋ํ ๊ทํ์ ๊ฒฌํด๋ ๋ค์ ํธํํฉ๋๋ค.
์ด์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์ป์ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ์ ๊ด์ ์ ๋น์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํจํ๋ฉฐ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ฐฑ์ ํ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ ํ์ผ ํ์์ผ๋ก ์ธํด ์ด๋ฏธ ์์ถ๋์ด ์์ต๋๋ค.
SQL ๋คํ๋ ์ด๋ป์ต๋๊น?
SQL ๋คํ๋ฅผ ์์ถํ์ง ์๊ณ ์ ๋ง ์ ์ฅํฉ๋๊น? ๋๋ ๊ทธ๊ฒ๋ค์ ์์ ์ํ๋ก ์ ์ฅํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐฑ์ ํ๊ธฐ ์ ์ ๋ชจ๋ ๊ฒ์ gzํฉ๋๋ค.
์์ค ์ฝ๋, ๋ฐ์ดํฐ ์ธํธ, ์์ ์ด๋ฏธ์ง ๋ฑ
์์ถ ๋ฐฑ์ ์ ์ ์ผํ ์ ํจํ ์ฌ์ฉ ์ฌ๋ก๋ _ํ๋ฐํ๊ฒ ์ฌ์ฉ๋๊ณ ์์ผ๋ฏ๋ก ์ด๋ฏธ ์์ถ๋ ์ํ๋ก ์ ์ฅ๋์ง ์์_ ๋ฐ๋ณต์ด ๋ง์ ์์ถ๋์ง ์์ ๋์ฉ๋ ํ์ผ์ ๋๋ค. ๋ด ๊ฒฝํ(๋ค๋ฅธ ์ฌ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ ๊ฐ ๊ด๋ฆฌํ ๊ฒฝํ ํฌํจ)์ ๋ฐ๋ฅด๋ฉด ์ด ๋ฒ์ฃผ์ ์ํ๋ ๋ฐ์ดํฐ๋ ๊ฑฐ์ ์์ต๋๋ค. ์ ์ด๋ ๊ทธ๋ฌํ ๊ฒฝ์ฐ์ ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ค๊ธฐ์๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ฐ์ดํฐ ์ธํธ์ ์๋ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐ๋ ์๋ฌด ๊ฒ๋ ํ์ง ์์ต๋๋ค.
ํ๋ฆผ์์ด ์ด๊ฒ์ ๋ฐฑ์ ํ๋ก๊ทธ๋จ์ ์์ ์ด ์๋๋๋ค. ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ฆฌ๋ฉด ์ ๋ฉ๋๋ค.
์์ถ๋์ง ์์ ํ์์ ์ ์ฅํ ๋ค์ ์์ถ + ์ค๋ณต ์ ๊ฑฐ๊ฐ ์ด๋ฏธ ์์ถ๋ ํ์ผ์ ์ค๋ณต ์ ๊ฑฐํ๋ ๊ฒ๋ณด๋ค ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์์ต๋๋ค.
๋ง์ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์์ ์ ์ํํ๊ธฐ ์ํด ๋ณต์ ์ ์์กดํฉ๋๋ค(flate์ ์ฌ์ ์ฐธ์กฐ). ๋ฐ๋ผ์ ๋๋ ์ด๊ฒ์ด _์ผ๋ฐ์ ์ผ๋ก_ ํ์ ํ ์ ์์ง๋ง ์ ์ด๋ ๋ช ๋ฒ์ ์ด๊ฒ์ด ์ณ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
(restic์ ์์ถ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋ ๋ _๋์๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ํนํ ๋๋ฆฐ ์ฑ๋ฅ ๋ฌธ์ ์ ๋น๊ตํ ๋ ์ฐ์ ์์๊ฐ ๋ ํ์๊ฐ ์๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ @fd0 ์ ์๊ฐ ์ ์ฝ๊ณผ ๋น์ ๊ณผ ๊ด๋ จํ์ฌ ๋ฐ๋๋๋ค.)
@mholt ์ผ๋ฐ์ ์ผ๋ก ๋์ํ์ง๋ง ๋ฃจํธ ๋ฐฑ์ (์ผ๋ถ ๋คํ๋ฅผ ํตํด ๋๋ /์ ๋ด์ฉ ๋ฐ๋ณต)์ ์ํํ๋ฉด ์ข์ ์์ถ๋ฅ ์ ์ป์ ์ ์์ต๋๋ค. ํ์ ๋ ์๋์ง๋ง ์ฌ์ฉ๋ ์ด๊ณ๊ฐ ์ด๋ฏธ ์ ๊ธฐ ๋๋ฌธ์ ์ฝ 50%๋ฅผ ์ ์ฝํ ์ ์์ผ๋ฉฐ ์ต์ข ์ฌ์ฉ์์ ๊ดํ ํ "๋ฌด๋ฃ"๋ก ์ ๊ณต๋๋ ๊ฒ์ด ํญ์ ์ข์ต๋๋ค.
์ด ํ ์คํธ๋ฅผ ์๋ํ์ญ์์ค.
์์ถ์ด ์ํ๋๊ธฐ ์ ์
์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ฌ์ฉํ๋ฉด restics ์ค๋ณต ์ ๊ฑฐ ์๊ณ ๋ฆฌ์ฆ์ ๊ฑฐ์ ์์ ํ ๋ฌผ๋ฆฌ์น ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ restic์ด ์ค๋ณต ์ ๊ฑฐ ํ ์์ถ์ ์ฒ๋ฆฌํ ์ ์๋ค๋ฉด
ํจ์ฌ ๋ ์์ ์ ์ฒด ์ถ๋ ฅ์ ์ป์ด์ผ ํฉ๋๋ค.
DataDomain๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ์ํฐํ๋ผ์ด์ฆ ์คํ ๋ฆฌ์ง ์
๊ณ์์๋ ํญ์
์์ถ๋์ง ์์ ์ํ๋ก ์ ์ฅ ์ฅ์น์ ๋ฐ์ดํฐ๋ฅผ ๊ณต๊ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํฌ๋งทํ๊ณ ์ฅ์น๊ฐ ์ค๋ณต ์ ๊ฑฐ ๋ฐ ์์ถ์ ์ํํ๋๋ก ํฉ๋๋ค. NS
์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ ์ฉํด์ผ ํ๋ ์ผ๋ฐ์ ์ธ ์์๋ ์ค๋ณต ์ ๊ฑฐ์
๋๋ค.
์์ถ ํ ์ํธํ. ์ด๊ฒ์ ๋ํด ์ ์ ์๊ฐํ์ญ์์ค .... ๋น์ ์
๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ฒ ์์ถํ๋ ๋ฐ ๋ชจ๋ ์ถ๊ฐ CPU๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
์ค๋ณต ์ ๊ฑฐ๋๊ณ ์ด์จ๋ ๋ณธ์ง์ ์ผ๋ก ํ๊ธฐ๋๋ ๊ฒฝ์ฐ์๋ง ์๊ฐ์ด ํ์ํฉ๋๊น? ๊ทธ๊ฒ์
์ผ๋ฐ์ ์ผ๋ก ๋จผ์ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํตํด ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ค์ด๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
์์ถ์ ์ํํ๋ ์ ์ฌ์ ์ผ๋ก ๋ฌด๊ฑฐ์ด ์์
์ ์ํํ๊ธฐ ์ ์.
2019๋
8์ 2์ผ ๊ธ์์ผ ์คํ 1:29 Brandon Schneider [email protected]
์ผ๋ค:
@mholt https://github.com/mholt ์ผ๋ฐ์ ์ผ๋ก ๋์ํ์ง๋ง
๋ฃจํธ ๋ฐฑ์ (์ผ๋ถ ๋คํ ๋๋ /์ ๋ด์ฉ ๋ฐ๋ณต์ ํตํด),
๋์๊ฒ ์ข์ ์์ถ ๋น์จ์ ์ ๊ณตํฉ๋๋ค. ํ์ ๋ ์๋์ง๋ง ์ ์ฒด
์ค๊ณ ๋ ์ด๋ฏธ ์์ง๋ง 50% ์ ๋ ์ ์ฝํ ์ ์๊ณ ํญ์ ์ข์ต๋๋ค.
์ต์ข ์ฌ์ฉ์์ ๊ดํ ํ "๋ฌด๋ฃ"๋ก ์ ๊ณต๋ฉ๋๋ค.โ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธ
https://github.com/restic/restic/issues/21?email_source=notifications&email_token=AC3I762ZVGTTJL4TF3ODZILQCRVIXA5CNFSM4AXPP352YY3PNVWWK3TUL52HS4DFVEXG43VMVBW63LNMVX
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AC3I767IQQD3CZBIWM37C6TQCRVIXANCNFSM4AXPP35Q
.
SQL ๋คํ๋ฅผ ์์ถํ์ง ์๊ณ ์ ๋ง ์ ์ฅํฉ๋๊น? ๋๋ ๊ทธ๊ฒ๋ค์ ์์ ์ํ๋ก ์ ์ฅํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐฑ์ ํ๊ธฐ ์ ์ ๋ชจ๋ ๊ฒ์ gzํฉ๋๋ค.
ํ๋ฆผ์์ด ์ด๊ฒ์ ๋ฐฑ์ ํ๋ก๊ทธ๋จ์ ์์ ์ด ์๋๋๋ค. ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ฆฌ๋ฉด ์ ๋ฉ๋๋ค.
์ด๋ฐ ์ข ๋ฅ์ ๋ณด๊ธฐ๊ฐ ๋ฐ์ดํฐ์ ํจ์จ์ ์ธ ์ ์ฅ์ ๋ฐฉํดํ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋์? ๋ชจ๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ด๋ณด๋ด๊ธฐ ์์ ์ด ์์ฒด ์์ ์์ถ ํ์์ ๊ตฌํํด์ผ ํ๋ค๋ ์์ด๋์ด๋ ์ค๋ณต ์ ๊ฑฐ/์์ถ/๋ฑ์ด ์ฌ์ ์ ์๋ ํ์ผ๋ณ(๋๋ ๋๋ ํ ๋ฆฌ tarball) ๋ฒ์ ์ด์ธ์ ๋ชจ๋ ์์ ์์ ์๋ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ๋๋ฌธ์ ์ ๋ ๋ฉ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค. . ํ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ์์ถํ๋ฉด ์๋ก ๋ค๋ฅธ ํ์ผ/๋คํ ๋ฑ์ ๊ณตํต์ ์ ์ฐพ๋ ๊ธฐ๋ฅ์ด ์์ค๋๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ค๋ณต ์ ๊ฑฐ์ ๋ชจ๋ ์ด์ ์ ์๊ฒ ๋ฉ๋๋ค. ์์ถ๋์ง ์์ ์ํ๋ก ์ ์งํ๋ฉด ํ์ผ ์์คํ (zfs, btrfs ๋ฑ)์ด ์ด ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ผ๋ฉฐ ํด๋, ์ค๋ ์ท ๋ฑ์ ์์ถ ๋ฐ ์ค๋ณต ์ ๊ฑฐํ๊ณ ์์ ์ ํ์ํ ๋๊ตฌ์์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ด ๋ชจ๋ ๊ฒ์ ์ถ์ํํ ์ ์์ผ๋ฏ๋ก ๋ ์ข์ต๋๋ค. ์์ถ๋์ง ์์ ๋ฐ์ดํฐ๋ก
์์ถ์ top restic์ ์ค๋ณต ์ ๊ฑฐ์ ๋ํ ์ถ๊ฐ ์ต์ ํ๋ก ๋ณผ ์ ์์ง๋ง ๋ณ๋๋ก ์ํํ๋ฉด ์๋ก ํธํ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค... ํ์ผ์ ๋ฐฑ์ ํ๊ธฐ ์ ์ ์์ถํ๊ณ ์ฌ์ ์ฒ๋ฆฌํด์ผ ํ๋ค๊ณ ์ ์ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ํฌํ๋ก๋ก ๋๋์๊ฐ๋๋ค. ๋์ rsync/rclone์ ์ฌ์ฉํ์ญ์์ค. ๊ทธ๋ ๋ค๋ฉด ์ฒ์์๋ restic์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ด๋ฐ ์ข ๋ฅ์ ๋ณด๊ธฐ๊ฐ ๋ฐ์ดํฐ์ ํจ์จ์ ์ธ ์ ์ฅ์ ๋ฐฉํดํ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋์? ๋ชจ๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ด๋ณด๋ด๊ธฐ ์์ ์ด ์์ฒด ์์ ์์ถ ํ์์ ๊ตฌํํด์ผ ํ๋ค๋ ์์ด๋์ด๋ ์ค๋ณต ์ ๊ฑฐ/์์ถ/๋ฑ์ด ์ฌ์ ์ ์๋ ํ์ผ๋ณ(๋๋ ๋๋ ํ ๋ฆฌ tarball) ๋ฒ์ ์ด์ธ์ ๋ชจ๋ ์์ ์์ ์๋ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ๋๋ฌธ์ ์ ๋ ๋ฉ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค. . ํ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ์์ถํ๋ฉด ์๋ก ๋ค๋ฅธ ํ์ผ/๋คํ ๋ฑ์ ๊ณตํต์ ์ ์ฐพ๋ ๊ธฐ๋ฅ์ด ์์ค๋๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ค๋ณต ์ ๊ฑฐ์ ๋ชจ๋ ์ด์ ์ ์๊ฒ ๋ฉ๋๋ค. ์์ถ๋์ง ์์ ์ํ๋ก ์ ์งํ๋ฉด ํ์ผ ์์คํ (zfs, btrfs ๋ฑ)์ด ์ด ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ผ๋ฉฐ ํด๋, ์ค๋ ์ท ๋ฑ์ ์์ถ ๋ฐ ์ค๋ณต ์ ๊ฑฐํ๊ณ ์์ ์ ํ์ํ ๋๊ตฌ์์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ด ๋ชจ๋ ๊ฒ์ ์ถ์ํํ ์ ์์ผ๋ฏ๋ก ๋ ์ข์ต๋๋ค. ์์ถ๋์ง ์์ ๋ฐ์ดํฐ๋ก
์ด๋ ๋ฐ์ดํฐ์ ํจ์จ์ ์ธ ์ ์ฅ์ผ ๋ฟ๋ง ์๋๋ผ ๊ธฐ์กด ์ํฌํ๋ก์ด๊ธฐ๋ ํฉ๋๋ค. ๋ฐฑ์ ์ ํ์ด ์์คํ ์ ๋ค๋ฅธ ์ธก๋ฉด์ ์ํฌํ๋ก๋ฅผ ์ ์ฉํ์ง ์๊ณ ์์ ์ ์ด๊ณ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ฐฑ์ (์ ์ฌ์ ์ผ๋ก ๋ฌด๊ธฐํ์ผ๋ก ์ ์ง๋จ)์ด ํจ์จ์ ์ผ๋ก ์ ์ฅ๋๋ ๊ฒ์ด ํจ์ฌ ๋ ์ค์ํ์ง๋ง ๋ผ์ด๋ธ ์์ ๋ฐ์ดํฐ๋ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๊ฐ์ฅ ์ ํฉํ ํ์์ผ๋ก ์ ์ฅํด์ผ ํฉ๋๋ค.
์ด์ ์ ์ฅํ๊ธฐ ์ ์ ์์ถํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ํนํ ๋๋ฆฐ ์ ์ฅ ์์คํ ์์ ๋งค์ฐ ์์ถ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ด ๊ฒฝํ์ ๊ท์น๋ณด๋ค ๋ ๋ง์ ์์ธ์ ๋๋ค.
+1 ์์ถ์ ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค! ์ํํธ์จ์ด ์์ง๋์ด๋ก ์ผํ ๋ ์์ถ๋์ง ์์ ์์ค ์ฝ๋๊ฐ ๋ง์ด ์๋ ์ ์ฒด ํ ํด๋๋ฅผ ๋ฐฑ์ ํฉ๋๋ค(๊ทธ๋ฆฌ๊ณ ruby โโ๋๋ python๊ณผ ๊ฐ์ ๋์ ์ธ์ด์์๋ ๊ฑฐ์ ํญ์ ์์ค ์ฝ๋์ด๋ฉฐ ๋๋ถ๋ถ์ ์ข ์์ฑ ํฌํจ).
์ง์์ ๋ฐ์ด๋๋ฆฌ, man ํ์ผ, ๋ฆฌ์์ค ํ์ผ ๋ฑ๊ณผ ๊ฐ์ด ์์ถ์ ์ด์ ์ ์ป์ ์ ์๋ ๋ง์ ํญ๋ชฉ์ ํฌํจํ์ฌ ์ ์ฒด / ๋ฅผ ๋ค์ ๋ฐฑ์ ํฉ๋๋ค.
๋ฌผ๋ก ๋ฐฑ์ ํ๊ธฐ ์ ์ ๋ชจ๋ ํ์ผ์ ์์ถํ๊ณ ๋ง์ ๋ณํ์ ์ํํ ์ ์์ง๋ง, ์ด๋ ๊ฒ ํ๋ฉด ๋งค์ฐ ๊ฐ๋จํ ๋ช ๋ น์ ์คํํ๊ณ ๋ฐฑ์ ์ ๋ฐ์ ์ ์๋ ํธ๋ฆฌํจ๊ณผ ๋ฐฑ์ ์ ์ฝ๊ฒ ์ป์ ์ ์์ต๋๋ค. ๋ฌผ๊ฑด์ ๋ณต์ํฉ๋๋ค.
๋ฌผ๋ก ์์ถ์ด ์ ๋์ง ์๋ ๋ง์ ์ข ๋ฅ์ ํ์ผ์ด ์์ง๋ง ๋๊ตฌ๋ ๊ฐ์ ๋ก ์์ถํด์ผ ํ๋ค๊ณ ๋งํ์ง ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ง์ ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค. ์์ถํด์ผ ํ๋ ํ์ผ ์ ํ์ ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐํ๊ณ , ์์ถํ์ง ์์์ผ ํ๋ ํ์ผ์ ์ฐจ๋จ ๋ชฉ๋ก์ ์ถ๊ฐํ๊ฑฐ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค. ์์ถ์ ์๋ํ๊ณ ๊ฒฐ๊ณผ ํฌ๊ธฐ๊ฐ ๊ฐ์ ๋์ง ์์ผ๋ฉด ์์ถ๋์ง ์์ ์ํ๋ก ์ ์ฅํฉ๋๋ค(ZFS ์จ๋์คํฌ ์์ถ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
๊ฒฐ๊ตญ ์์ถ์ ๊ณ ์ ์ ์ธ ๊ณต๊ฐ ๋ ์๊ฐ ํธ๋ ์ด๋์คํ์ ํ ์์ ๋๋ค. ๋ ๋ง์ CPU๋ฅผ ์ง๋ถํ์๊ฒ ์ต๋๊น, ์๋๋ฉด ๋ ๋ง์ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ์๊ฒ ์ต๋๊น? ์ ๊ฒฝ์ฐ์๋ ์คํ ๋ฆฌ์ง๊ฐ ๋น์ฉ์ ๋๋ถ๋ถ์ ์ฐจ์งํ๋ฏ๋ก ์ฟผ๋ ์ฝ์ด๊ฐ ์กฐ๊ธ ๋ ๊ฐ์ด๋๊ณ ํ์ผ ํธ์คํ ๋น์ฉ์ด ์ค์ด๋ค๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก 4TB๊ฐ ์กฐ๊ธ ๋๋ ์ฉ๋์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์ ๋ฐฑ์ ํ๊ณ ์ ๋ก๋ ์๋๊ฐ ์ฝํฉ๋๋ค. ๋ฐ๋ผ์ ๋ณด๋์ค ์์ถ์ผ๋ก ์ธํด ๋ฐฑ์ ํ๋ก์ธ์ค๊ฐ ๋๋ ค์ง์ง ์๊ณ ๋นจ๋ผ์ง๋๋ค. ๋ด CPU๋ ๋ด ๊ฐ๋ํ VDSL ์ฐ๊ฒฐ์ ๋ฐ๋ผ์ก์ ์ ์์ต๋๋ค. .
๋ค, ์ ๋ ์ฌ๊ธฐ์์ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ ์๊ฒฌ์ ๋์ํ ์ ์์ต๋๋ค. ์์ถ์ ๋งค์ฐ ์ค์ํ๋ฉฐ ์ restic์ด ์์ถ์ ๊ฐ์ ธ์๋ ์ ๋๋๊ฐ์ ๋ํ ๋ ผ์์ด ์์ต๋๋ค.
@mholt ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋ชจ๋ ๋จ์ด.
์๋ฅผ ๋ค์ด, ์ ๋ TFS๋ฅผ ์์ค ์ ์ด๋ก ์ฌ์ฉํ๊ณ ๋ชจ๋ ์์ค๋ ์ด๋ฏธ SQL ๋ฐฑ์
์์ ์์ถ๋๊ณ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฏธ์ง๋ msi ์ค์ ํ์ผ ๋๋ 7z ์์นด์ด๋ธ์์ ์์ถ๋๊ธฐ ๋๋ฌธ์ ์ ๋๊ตฌ ์ฒด์ธ์์ ์์ถ์ ๋๋จธ์ง ์ค๋ณต ์ ๊ฑฐ๋ณด๋ค ๋จผ์ ์ต๋๋ค. ๋งค์ผ ๋ธํ๋ฅผ ๊ฐ์ ธ์ ํด๋ผ์ฐ๋๋ก ๋ณด๋ด ์์ ํ ์ฌํด ๋ณต๊ตฌ ๊ณํ์ ๊ตฌํํ๋ ๋น ๋ฅด๊ณ ๊ฐ๋จํ ๋ฐฉ๋ฒ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
@fd0 ์ ์ ํ์ ๋ค๋ฅธ ๋ณต์ก์ฑ์ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๊ฐ์ ์ง์คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
auto,zstd
์์ถ์ ์ฌ์ฉํ๋ ๋ณด๊ทธ์ ์์ถ ์์(์์ถ ์์)์ ์ฝ๊ฐ ๋น๊ตํ๋ฉด์ ์ฒ์์๋ /
, ๋ค์์๋ /home
์์ VM ์ด๋ฏธ์ง ๋ฐ docker ์ด๋ฏธ์ง(์ค์ ๋ฐฑ์
์์๋ ๋ฐฑ์
ํ์ง ์๊ธฐ ๋๋ฌธ์). ํ
์คํธ ๋จธ์ ์ ์ ์ ์ผ์์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋จธ์ ์ด์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ง์ ๋ฐ์ด๋๋ฆฌ ํ์ผ, ์์ถ๋ ์ฌ์ง ๋ฐ ์ค๋์ค ํ์ผ์ด ํฌํจ๋์ด ์์ง๋ง ๊ฝค ์ ์์ถ๋์ด์ผ ํ๋ ์๋นํ ์์ ์ผ๋ฐ ํ
์คํธ ์์ค ์ฝ๋๋ ํฌํจ๋์ด ์์ต๋๋ค.
/
: 1053136 ํ์ผ, 92.9GiB
/home
: 221338๊ฐ ํ์ผ, 58.3GiB
์ฒซ์งธ, ๋๋ ๊ทธ ํ
์คํธ ์ผ์ด์ค์์ ๊ฑฐ์ ์ ํํ ๋ ๋ฐฐ ๋นจ๋ผ์ง restic์ ๋ฐ์๋ฅผ ๋ณด๋ด๊ณ ์ถ์ต๋๋ค. ๋ณด๊ทธ๊ฐ ๋๋ ค์ง๋ ๊ฒ ์ธ์๋ ์์ถ์ ์ ์ฒด ๋ฐฑ์
๊ธฐ๊ฐ์ ~2๋ถ(+11%)๋ง ์ถ๊ฐํ์ง๋ง /
๊ฒฝ์ฐ(-35 %). ๋ด ํ ๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐ ์คํ ๋ฆฌ์ง ์ ์ฝ์ด ์ฝ 20%์
๋๋ค.
(๊ทธ ๊ฒฝ์ฐ๋ฅผ ์ํด ์ธ๋ถ ๋์คํฌ์ ํ ์คํธ๋ฅผ ์ํํ์ต๋๋ค. ์๊ฒฉ ์ ์ฅ์์ ๋ฐฑ์ ํ ๋ ๋ฐฑ์ ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋๋ถ๋ถ ์ ๋ก๋ ๋์ญํญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ ์ด๋ CPU ๋ฐ IO ์๋๊ฐ ๋คํธ์ํฌ๋ณด๋ค ํจ์ฌ ๋์ ๋) ํ ์คํธํ์ต๋๋ค. ์์ถ์ผ๋ก ์ธํด ์ ์ก๋๋ ๋ฐ์ดํฐ๊ฐ ์ ๊ธฐ ๋๋ฌธ์ ์์ถ์ ์ฌ์ฉํ๋ this ๋ฐ borg๋ ์ค์ ๋ก restic๋ณด๋ค ๋น ๋ฆ ๋๋ค. ๋์ฒด๋ก ์ ๋ ์์ถ ์ง์์ ๋ฐ๋ ๊ฒ์ ๋งค์ฐ ์ ํธํ๋ฉฐ, ์ด์์ ์ผ๋ก๋ ์ฒญํฌ๊ฐ ์์ถ์ ์ด์ ์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด ์๋ ๊ฐ์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
@nioncode ๋ด ๊ณ์ฐ์ด ๋ง๋ค๋ฉด ์ฝ 100/150MB/s๋ฅผ ๋ฐฑ์ ํฉ๋๋ค. ์ด๋ zstd๊ฐ ์์ถํ ์ ์๋ ๊ฒ๋ณด๋ค ๋ฎ์ต๋๋ค. ์์ถ์ ๋น๋๊ธฐ์์ด๋ฏ๋ก ์ค์ ๋ก ์๋ ์ ํ๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ธ ๊ฒ์ด ์ ๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ๋ ๋น ๋ฅผ ์๋ ์์ต๋๋ค.
VM ๋ณด๊ด์ด ์ฌ์ฉ ์ฌ๋ก์ผ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋ณด๊ดํ ํ์๊ฐ ์๋๋ก ํ๋ ค๊ณ ํฉ๋๋ค.
ISO ๋ฐ ์ค์ ํ์ผ์์ ์์ํ์ฌ ์ ์ฒด VM ๊ตฌ์ถ์ ์๋ํํ๋ ค๊ณ ํฉ๋๋ค.
์ฌํด ๋ณต๊ตฌ์ ๊ฒฝ์ฐ ์ค์ ํ์ผ, ๋ฌธ์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์
์ ๋ฐฑ์
์ ์ฌ์ฉํ์ฌ ์ ์ฒด VM์ ๋ณต์ํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์ ์ํธ ์์ฉ ์์ด ํ๋ ค๊ณ ํฉ๋๋ค.
์ด๋ฐ ์์ผ๋ก ์์ ํ์ผ, exe ๋ฐ dll๊ณผ ๊ฐ์ ์์ถ๋์ง ์์ ํ์ผ ๋ฑ๊ณผ ๊ฐ์ด VM์ ํฌํจ๋ ๋ง์ ํด์งํต ํ์ผ์ ์์ถํ๊ณ ๋ฐฑ์
ํ ํ์๋ฅผ ํผํ ์ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๊ฐ๋จํ์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋์คํฌ ๊ณต๊ฐ๊ณผ ๋์ญํญ์ ์ ์ฝํ๋ ๋์ผํ๊ณ ์ ์ฉํ์ง ์์ GB์ ํ์ผ์ ์์ถํ๊ณ ์ค๋ณต ์ ๊ฑฐํ๋ ๊ฒ์ ํผํ ์ ์์ต๋๋ค.
๋๊ฐ ์ด๋ป๊ฒ ์ผ์ ํ๋์ง์ ๋ํด ์ด ์ค๋ ๋๋ฅผ ์ด์ง๋ฝํ์ง ๋ง์๋ค. ์ถฉ๋ถํ์ต๋๋ค.
์์ถ์ ๋ง์ ์ฌ๋๋ค(์ ํฌํจ)์ด ์ํ๋ ๊ธฐ๋ฅ์ด๋ฉฐ ์ธํฐ๋ท ์ฐ๊ฒฐ ์๋๊ฐ ๋๋ฆฐ ๊ฒฝ์ฐ ๋ฐฑ์ ์คํ ๋ฆฌ์ง์ ์ ๋ก๋ ์๊ฐ์ ๋ชจ๋ ์ ์ฝํ ์ ์์ต๋๋ค. ์ด๋ค ์ฌ๋๋ค์ 30% ์ด์๋ ์ ์ฝํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ์ฌ๋์ด ์ด๋ฅผ ํ์๋ก ํ๋ ๊ฒ์ ์๋๋ฉฐ ์ผ๋ถ ์ฌ๋๋ค์ ์ค๋งํธํ ๋ฐฉ์์ผ๋ก ์ํฌํ๋ก๋ฅผ ์กฐ์ ํ์ฌ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ๋จ์ํ ๋์ด๋ ๋์ญํญ ๋๋ ๋ ๋ค์ ์ ๊ฒฝ ์ฐ์ง ์์๋ ๋ฉ๋๋ค.
์ด์จ๋ ์์ธก์ ๋ํ๋ฅผ ๋๋ด๋ค.
@bjoe2k4 ๋๋ ์ง๋ ๋ช ๋ ๋์ ์ด ์ค๋ ๋์์ ์ฌ๋ฌ ๋ฒ ๋ ผ์๋ ๊ฒ์ฒ๋ผ ์ผ๋ฐ ํ ์คํธ ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ํธํํ๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์์ถํ๋ ๊ฒ์ ๋ถ์ ์ ์ธ ๋ณด์ ์ํฅ์ ๋ํด ์ฐ๋ คํ๊ณ ์์ต๋๋ค. :)
์์ถ์ด ํ์๊ฐ ๋์ง ์๋ ํ ์์ถ์ ๋ณด์ ๋ฌธ์ ๋ ์ฌ์ฉ์๊ฐ ํ ์ ์๋ ์ ์ถฉ์์ผ ๋ฟ์ ๋๋ค. ์ด ์ด๋ก ์ ์ธ ์ํ(๋ด ๋ฐ์ดํฐ ์ธํธ๊ฐ ํฌ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์์ธกํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์จ๋ ์ ์ฉ๋ ์ ์๋ ์ํ, ๋ฐ๋ผ์ ์์์ผ๋ก ์ธํด ์์ถ ์ ํธ).
๋๋ ์๋ฌด๋ ์์ถ์ ์๋ฌดํํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๊ณ ๋ฏฟ์ง ์์ต๋๋ค.
๋ด ํน๋ณํ ์ฌ์ฉ ์ฌ๋ก๋ LARGE ์ธํธ์ CSV ๋ฐ SQL ๋คํ๋ฅผ ๋ฐฑ์ ํ๋ ๊ฒ์ ๋๋ค. ์ด ํ์ผ์ ๋งค์ฐ ์์ถ ๊ฐ๋ฅํ๋ฉฐ... ๋ฏธ๋ฆฌ ์์ถํ๊ณ ์ถ์ง ์์ต๋๋ค.
๋ชจ๋ GB ์จ๋ผ์ธ ์คํ ๋ฆฌ์ง์ ๋ํด ๋น์ฉ์ ์ง๋ถํ๊ธฐ ๋๋ฌธ์ ์์ถ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์ถ์ต๋๋ค.
์ด ํ ๋ก ์ด ์ด์ ์ข ๋ ํ๋ฐํด์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ๊ฐ ๋ฐ๊ฒฌํ ๋ช ๊ฐ์ง ๋ฐ๊ฒฌ์ ์ ์น๊ตฌ์ ํจ์น ๋ฒ์ ๊ณผ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ค์ restic์ ์์ถ์ ์ถ๊ฐํ์ผ๋ฉฐ(๋ด๊ฐ ์๋ ํ ๋ค์ ๋น ๋ฅด๊ณ ๋๋ฝ์ต๋๋ค) ๊ด์ฌ ์๋ ์ฌ๋์ด ์์ผ๋ฉด ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ๋ํด ์ธ๊ธํ ์ ์๋๋ก ์ด ๊ฒ์๋ฌผ์ ๋ํด ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ด ์ฌ์ฉ ์ฌ๋ก๋ ์์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์์ด ์๋ ์ ๋ง ๋ชป์๊ธด ์ํ ์ํํธ์จ์ด์
๋๋ค. ์ฐ๋ฆฌ๋ ๊ท์ ์์ ์ด์ ๋ก ์ด ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ ์๋ ํฌ๊ธฐ์ 90%๊น์ง ์์ถํ ์ ์๋ ๋ช TB์ ๋ค์ ํฐ ํ์ผ์
๋๋ค. ๋ฐ๋ผ์ ์์ถ์ ๋ฐฑ์
์คํ ๋ฆฌ์ง, ๋ฐฑ์
์๊ฐ ๋ฐ ๋ณต์ ์๊ฐ์ ๋ง์ด ์ ์ฝํ ์ ์์ต๋๋ค.
Restic ์
์คํธ๋ฆผ, ์์ถ์ด ์ ์ฉ๋ ํจ์น๋ Restic ๋ฐ tar๊ฐ ์๋ ํ์ฌ ๋ฐฑ์
์๋ฃจ์
์ ๋น๊ตํ ๋ ๋ฐ๊ฒฌํ ์ฌํญ์ https://gist.github.com/joerg/b88bf1de0ce824894ffc38f597cfef5f ์์ ํ์ธํ ์ ์์ต๋๋ค.
| ๋๊ตฌ | ๋ฐฑ์
์๊ฐ(๋ถ:์ด) | ๋ณต์ ์๊ฐ(๋ถ:์ด) | ๋ฐฑ์
๊ณต๊ฐ(G) | ๋ฐฑ์
๊ณต๊ฐ(%) | ๋ฐฑ์
(MB/s) | ๋ณต์(MB/s) |
| --------------------------- | ------------------ | ------------------ | ---------------- | ---------------- | -------------- | -------------- |
| ํ๋ฅด | 4:42 | 5:19 | 11 | 9.6% | 404 | 357 |
| Restic S3 ๋ก์ปฌ ์
์คํธ๋ฆผ | 10:04 | 30:56 | 102 | 89.5% | 189 | 61 |
| Restic S3 ๋ก์ปฌ ์์ถ | 5:43 | 19:28 | 8.6 | 7.5% | 332 | 98 |
| ๋ ์ค์คํฑ ๋ก์ปฌ ์
์คํธ๋ฆผ | 8์ 33๋ถ | 26:06 | 102 | 89.5% | 222 | 73 |
| ๋ ์ค์คํฑ ๋ก์ปฌ ์์ถ | 5์ 21๋ถ | 16:57 | 8.6 | 7.5% | 355 | 112 |
| Restic S3 ์๊ฒฉ ์
์คํธ๋ฆผ | 17:12 | 46:06 | 102 | 89.5% | 110 | 41 |
| Restic S3 ์๊ฒฉ ์์ถ | 5์ 27๋ถ | 21:42 | 8.6 | 7.5% | 349 | 88 |
๋๋ restic์ด ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ๊ฐ์์ํค๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ข ๋ฅ์ ์ ํ์ ์์ถ์ผ๋ก ํฌ๊ฒ ์ป์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ชจ๋ ํ์ผ์ ํฅ๋ฏธ๋ก์ด ์์ถ ๋น์จ์ด ์๋ ๊ฒ์ ์๋๋๋ค. ๋น๋์ค ํ์ผ์ ์์ถํ๋ ๊ฒ์ ์๋ง๋ ๊ฐ์น๊ฐ ์์ง๋ง SQL ๋คํ๋ฅผ ์์ถํ๋ ๊ฒ์ ๊ฐ์ฅ ํ์คํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Btrfs์ ๊ฐ์ ํ์ผ ์์คํ ์ ๋จผ์ ํ์ผ์ ์ฒ์ 128KB๋ฅผ ์์ถํ๋ ค๊ณ ์๋ํ๊ณ ์๋นํ ์์ถ ๋น์จ์ด ์์ผ๋ฉด ์ ์ฒด ํ์ผ์ ์์ถํฉ๋๋ค. ํ์คํ ์๋ฒฝํ์ง๋ ์์ง๋ง ๋น ๋ฅด๋ฉฐ ํ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ์์ถํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก์์ ์๋ํฉ๋๋ค.
์์ถ์ ์ต์ ์ผ๋ก ์ ๊ณตํ๋ ๊ฒ์ ๋ฐ๋ํ๋ ์ฌ๋๋ค์ ์ํด ๋ด ์ฌ์ฉ ์ฌ๋ก๋ ์ฝํ ์ธ ๋ฅผ ์ ์ดํ ์ ์๋ ๋๋ถ๋ถ์ ์์ถ ๊ฐ๋ฅํ ํ์ผ ํ์์ ํผํฉํ์ฌ ๋ฐฑ์ ํ๋ ๊ฒ์ ๋๋ค. ๋ฐฑ์ ์์ ์ ์ํํ๊ธฐ ์ ์ ์ฌ๋ฌ ์์คํ (์ ์์นด์ด๋ธ๋ก ์์ถํ๋ ๊ฒฝ์ฐ ๋ ๋ง์ ๋ก์ปฌ ๋์คํฌ ๊ณต๊ฐ์ ์ฐจ์งํ๊ฑฐ๋ ์ ์๋ฆฌ์ ์์ถ๋ ๊ฒฝ์ฐ ๊ด๋ จ ์์ฉ ํ๋ก๊ทธ๋จ์์ ํ์ผ์ ์ฌ์ฉํ ์ ์๊ฒ ํจ).
Restic์ DR ๋ฐฑ์ ๋๊ตฌ๋ก ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ์ํ์ง๋ง ํ์ฌ ์์ถ + ์ค๋ณต ์ ๊ฑฐ๋ก ์ธํด ๋ฐฑ์ ์์ ๋น ๋คํธ์ํฌ ์ ์ก๋์ด ๊ธฐ๊ฐ๋ฐ์ดํธ๋ฅผ ๋ง์ด ์ ์ฝํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฌ borg(๋๋ฆผ, ๋์ฉ๋ ๋จ ์๊ตฌ ์ฌํญ ๋ฑ)๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ด ๋ฐฑ์ ์ธํธ ์ ์ฒด์ ๊ฑธ์ณ ํด๋ผ์ฐ๋์ ์๋ ํ ๋ผ๋ฐ์ดํธ ์ด์์ ์ ์ฅ ๊ณต๊ฐ(์๋ณ๋ก ๋น์ฉ์ ์ง๋ถํจ)์ ์ฝ๊ฒ ์ด๊ณผํ ์ ์์ต๋๋ค. ์์ถ์ ์ง์ํ๋ ๊ฒฝ์ฐ ๋ฐฑ์ ์ ๋ ์ค๋ ๋ณด๊ดํ๊ฑฐ๋ ์คํ ๋ฆฌ์ง ๋น์ฉ์ ์ค์ผ ์ ์์ต๋๋ค.
์๋
ํ์ธ์ @joerg๋ , ํ
์คํธ๋ฅผ ๊ณต์ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
Tar ์์ถ ์์
์ ์ถ๋ ฅ์ ์ ํํ์ฌ ๋ฐฑ์
์ ์๋ํ์ต๋๊น?
"Restic S3 Remote Compress"์ "Tar" + "Restic S3 Remote Upstream"์ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํฉ๋๋ค.
๊ฒ๋ค๊ฐ ๋น์ ์ด ๋งํ๋ ๊ฒ์ ์ฌ์ค์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ restic์ด ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ๊ฐ์์ํค๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ข ๋ฅ์ ์ ํ์ ์์ถ์ผ๋ก ํฌ๊ฒ ์ป์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด restic์ ํ์ํ CPU ์๊ฐ์ ๋ก์ปฌ ๋ฐฑ์ ์ ๊ฒฝ์ฐ 2๋ฐฐ, ๋ณต์ ์ 6๋ฐฐ ๋ ๊ธด ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ํ๋ฅด์ ๋นํ๋ฉด ๋ณ๋ก์ ๋๋ค.
tar๋ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋๋ค. ๋น์ฐํ ๋น ๋ฆ
๋๋ค.
ํธ์ง: ์ ๊ทธ๋ฆฌ๊ณ btw. ๋๋ ํ ๋ฆฌ๋ฅผ tarํ๋ฉด ํ์ผ๋น ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ํ ๋ฒ์ ๋ ๊ฐ ์ด์์ ํ์ผ์์๋ ์๋ํ์ง ์์ต๋๋ค. ๋์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ค์บํ๊ณ ํ์ผ์ ์ถ๊ฐํ ๋ค์ ๋ค์์ผ๋ก ์ด๋ํฉ๋๋ค. ๊ฝค ๋๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ๋ค์ค ์ค๋ ๋๋ก ์ถ๊ฐํ๋๋ก ์ค๊ณ๋์ง ์์ ์์นด์ด๋ธ ํ์ผ์
๋๋ค.
ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, restic์ด ์ฌ์ฉํ๋ CPU ์๊ฐ์ ๋ก์ปฌ ๋ฐฑ์ ์์ 2๋ฐฐ, ๋ณต์์์ 6๋ฐฐ ๋๋ฆฐ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ํ๋ฅด์ ๋นํ๋ฉด ๋ณ๋ก์ ๋๋ค.
๋๋ ์ฌ๊ธฐ์ ๋น์ ์ ์์ ์ ์์ ํ ํ์ ํ์ง ๋ชปํฉ๋๋ค. restic์ ๋ฌผ๋ก Tar๋ณด๋ค ๋๋ฆฌ์ง๋ง ์์ถ์ด ์๋ restic์ ์์ถ์ด ์๋ restic๋ณด๋ค ํญ์ ๋น ๋ฅด๋ฏ๋ก restic์ด ๋ถ๋ช ํ ์ด์ ์ด ์์ต๋๋ค.
Tar๋ "์ด ํ๋์จ์ด์ ๊ฐ์ฅ ์ข์ ๊ฒฝ์ฐ"์์ ์ ์ฉํ ๋น๊ต์ด์ง๋ง ๋๋ถ๋ถ์ restic์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ด ๋ถ์กฑํฉ๋๋ค(์ค๋ ์ท ๋ฐ ๋ฐ์ดํฐ ์ค๋ณต ์ ๊ฑฐ๊ฐ ๋ ์ค๋ฆ ๋๋ค). ์์ถ์ ์ถ๊ฐํ๋ฉด ๋ฐฑ์ ์ ํ์ ์ค์ํ ๋ฐฑ์ ์๊ฐ, ๋ณต์ ์๊ฐ ๋ฐ ์ ์ฅ ๋น์ฉ๋ง ํฅ์๋๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
@joerg ์น๊ตฌ๋ค์ด ํ ๋ฆฌํ์คํธ๋ฅผ ์ด๊ณ ์์ถ์ด ํฌํจ๋ ํจ์น๋ฅผ ๊ณต๊ฐํ ์ ์์ต๋๊น? ์ด๋ค ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๊น?
@joerg @thedaveCA
์ฃ์กํฉ๋๋ค. @joerg ์ฃผ์ฅ์ ์๋ฏธ๋ฅผ ์๋ชป ์ดํดํ์ต๋๋ค. ์์ถ์ ํ ์ํ์์ ์ ํํ๋ ๊ฒ์ด ์์ถ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ๋ณด๋ค ํ์คํ ์ข์ต๋๋ค. ์ด์ ๋ด ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Tar + restic์ด ์์ถ์ด ์๋ restic๊ณผ ๋น๊ตํ์ฌ ๋ ์ข์ต๋๊น?
์ฐ๋ฆฌ๋ ๋ฒ ์ด tar ์์นด์ด๋ธ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํน๋ณํ ๋ณ๋ ฌ zip ๊ตฌํ์ผ๋ก gzip์ผ๋ก ์์ถ๋ tar ์์นด์ด๋ธ๋ฅผ ์ฌ์ฉํ๊ณ ์์์ ๋ช
์ฌํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ
๋ผ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์์นด์ด๋ธํ๋ ๋ฐ ์ง๊ธ ๋น์ฅ ๊ฑธ๋ฆฌ๋ "๋จ" ์๊ฐ ๋์ ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ๊ฒ์
๋๋ค: https://gist.github. com/joerg/b88bf1de0ce824894ffc38f597cfef5f#tarpigz
@shibumi ๋๋ ๊ทธ๋ค์๊ฒ ์ด ๋ฌธ์ ์ ๋ด ๊ฒ์๋ฌผ์ ๋ํด
์์ถ์ ์ํธํ์ ์ ํฉํ์ง ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ณต๊ฒฉ์๋ ์ํธํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํน์ ํ์ผ์ด ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ ํ์ผ์ ์น์ (์ฒญํฌ)์ด ์ฌ์ฉ๋ ์ํธํ ํค์ ๊ด๊ณ์์ด ๋์ผํ ํฌ๊ธฐ๋ก ์์ถ๋๋์ง ์ถ์ธกํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ํธํ ํ๋กํ ์ฝ ์ ๋งค์ฐ ์ ์๋ ค์ง ์ทจ์ฝ์ ์ด๋ฉฐ ์ด๊ฒ์ด TLS 1.3์์ ์์ถ์ด ์ ๊ฑฐ๋ ์ด์ ์ ๋๋ค.
์๋ ๊ณณ์์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ๋ง๋ค์ง ๋ง์๋ค, ๊ทธ๋ ์ฃ ?
(์ด ๋ฌธ์ ๋ ์ด๋ฏธ ์ธ๊ธ๋์์ผ๋ฉฐ ์๋ง๋ ํ ๋ฒ๋ ์์ ๊ฒ์ ๋๋ค. ์ฌ์ ํ ์ด ๋ฌธ์ ๋ ์ด๋ ค ์์ต๋๋ค. ์ด ๋ฌธ์ ๋๋ฌธ์ ํ ๋ฒ๋ง ๋ซ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.)
๋ฌธ์ ๋ฅผ ์คํธ์ผ๋ก ๋ณด๋ด๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? :(๊ทธ๊ฒ์ ๋๋ฌด ๋ง์ด ๋ ผ์๋์ด ๊ฑฐ์ ์ฃผ์ ์์ ๋ฒ์ด๋ฌ์ต๋๋ค. ๋น์ ์ ์์ถ์ ํ์ฑํํ์ง ์์ ๊ฒ์ ๋๋ค!!
๋ํ ๊ณต๊ฒฉ ์์ด๋์ด๋ ๊ณต๊ฒฉ์๊ฐ ์์ถ ๋ฐ ์ํธํํ ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(ํ์คํ์ง ์์ต๋๋ค!). https://en.m.wikipedia.org/wiki/CRIME
๊ทธ๋ฌ๋ ๋ณด์์์ ๋ฌธ์ ์ผ์ง๋ผ๋ ๋๊ตฐ๊ฐ๋ ๋จ์ํ ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด ์์ ์ด ์ ์ดํ๋ โโ์ ์ฅ์์๋ง ์์ถ์ ์ฌ์ฉํ๊ณ ์ถ์ดํ ์ ์์ต๋๋ค.
์ํธํ๋ฅผ ์ฝํ์ํค๋ ์ ํ์ ๊ธฐ๋ฅ์ด ์์ด๋ ์๋ชป๋ ๋ณด์ ๊ฐ๊ฐ์ ๋ถ๋ฌ์ผ์ผํต๋๋ค. Restic์ _secure_ ๋ฐฑ์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ์ฃผ์ฅํฉ๋๋ค. ์ ํ์ ์์ถ์ ์ถ๊ฐํ๋ฉด ๋๋๋ก, ํญ์ ํํ์์ผ๋ก๋ง ์์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ์ฝ์์ด ๋ฌดํจํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์คํ CVE ๋ณด๊ณ ์๊ฐ ์์ ๊ฒ์ ๋๋ค. ๋๊ฐ ์์ ์ ์ํํธ์จ์ด์ ์ด๋ฐ ์ ํ์ "์ธ๊ธฐ"๋ฅผ ์ํฉ๋๊น?
๊ทธ๋ฌ๋ ์ํธํ์ ํจ๊ป ์ฌ์ฉ๋์ง ์๋ ๋ฐฉ์์ผ๋ก ์์ถ์ ์ถ๊ฐํ๋ ๊ฒ์ ์คํ ๊ฐ๋ฅํ ์ต์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
2017๋ FWIW์์ ์ ๋ Restic์์ ์ํธํ๋ฅผ ์ ๊ฑฐํ ๋ฐ๋ชจ๋ฅผ ๋ง๋ค์๊ณ ์์ถ์ด ๋งค์ฐ ํจ๊ณผ์ ์ผ ์ ์์์ ๋ณด์ฌ์ฃผ์์ต๋๋ค . ๋ฐฑ๋ฐฐ ํจ๊ณผ์ ์ ๋๋ค. IIRC ์์ถ์ ์ํธํ์ฒ๋ผ ์ผ์ข ์ ๋ํผ(wrapper)๋ก ์ถ๊ฐํ ์ ์์ง๋ง ์ค๋ซ๋์ ์ฝ๋๋ฅผ ๋ณด์ง ์์๊ธฐ ๋๋ฌธ์ ์์ฆ์๋ ๋ ์ด๋ ค์ธ ์๋ ์๊ณ ๋ ์ฌ์ธ ์๋ ์์ต๋๋ค.
์ค์ ๋ก CRIME์ ์ํธ๋ฌธ์ ๊ธธ์ด๋ฅผ ์์์ผ ํ๋ฉฐ, ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก restic์์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ํ "๋ณด์" ๋ฐฑ์
ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค. ์ 3์๊ฐ ๋ฐฑ์
ํ์ผ์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ ๋๊ตฐ๊ฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณ์กฐํ๊ฑฐ๋ ๋ ์ฌํ๊ฒ ์ฝ์ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ํญ์ ์์ต๋๋ค.
์์ถ์ด ๋ ์
ํ๋๋ค๋ ๋ง์ ์ด๋ฆฌ์์ ์ผ์
๋๋ค.
์ค์ ๋ก CRIME์ ์ํธ๋ฌธ์ ๊ธธ์ด๋ฅผ ์์์ผ ํฉ๋๋ค.
CRIME์ ํ์ํ์ง๋ง ๋น์ ์ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋น์ ์ด ์ ๋ณด์์ผ๋ก๋ถํฐ ์ผ๊ธ ๋น๋ฐ ํ์ผ ์ธํธ๋ฅผ ๋ฐ์ ํ์ฌ ๊ธฐ์๋ผ๊ณ ์์ํด ๋ณด์ญ์์ค. ์ํธํ๋ก ๋ฐฑ์ ํ๋ฉด ์๋ฌด๋ ์ด ํ์ผ์ ๊ฐ์ง๊ณ ์๋ค๋ ์ฌ์ค์ ์ ์ ์์ต๋๋ค.
์ด์ ๋น์ ์ด ์์ถ์ ๊ฐ๋ฅํ๊ฒ ํ ๋งํผ ๋๋ํ์ง ์๋ค๊ณ ์์ํด๋ณด์ญ์์ค. ์ด์ ์ด๋ฌํ ํ์ผ์ ๊ฐ์ง๊ณ ์๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ ์์ถ๋ ํ ์ํธํ๋ ์ฒญํฌ์ ํฌ๊ธฐ๋ก ํ๋จํ์ฌ ์์ถ ์์ด ์ด ์์นด์ด๋ธ์ ์ด๋ฌํ ์ผ๊ธ ๋น๋ฐ ํ์ผ์ด ์๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ฌ์ง์ด ์ํธํ ํค๋ฅผ ์์์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๋ณด์๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋๋ค. ์ฌ๋๋ค์ ์ด "๊ธฐ๋ฅ" ๋๋ฌธ์ ๊ฐ์ฅ์ ๊ฐ ์๋ ์๊ณ , ๊ณ ๋ฌธ์ ๋ฐ๊ฑฐ๋, ๋ ๋๋น ์ง ์๋ ์์ต๋๋ค.
"๋ณด์" ๋ฐฑ์ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํฉ๋๋ค.
๋ํ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด์์ ์ ์ํ์ญ์์ค.
restic์ ์์ถ๋ ์ฒญํฌ๋ง ์ ์ฅํ๋ฏ๋ก ์ฒญํฌ์ ํฌ๊ธฐ๊ฐ ๋ช
ํํ์ง ์์ต๋๋ค.
์ด์ ๊ฐ ์๋ ์ฌ๋.
2019๋ 8์ 9์ผ ๊ธ์์ผ 02:09:23AM -0700์์ Alexey Kopytko๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์์ถ์ ์ํธํ์ ์ ํฉํ์ง ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ณต๊ฒฉ์๋ ์ํธํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํน์ ํ์ผ์ด ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ ํ์ผ์ ์น์ (์ฒญํฌ)์ด ์ฌ์ฉ๋ ์ํธํ ํค์ ๊ด๊ณ์์ด ๋์ผํ ํฌ๊ธฐ๋ก ์์ถ๋๋์ง ์ถ์ธกํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ํธํ ํ๋กํ ์ฝ ์ ๋งค์ฐ ์ ์๋ ค์ง ์ทจ์ฝ์ฑ ์ด๋ฏ๋ก TLS 1.3์์ ์์ถ์ด ์ ๊ฑฐ๋์์ต๋๋ค.
์๋ ๊ณณ์์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ๋ง๋ค์ง ๋ง์๋ค, ๊ทธ๋ ์ฃ ?
--
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/restic/restic/issues/21#issuecomment -519844526
--
(Escriu-me xifrat si saps PGP / Write ciphered if you know PGP)
PGP ํค 7CBD1DA5 - https://emailselfdefense.fsf.org/
์ด๋ฌํ ๋ณด์ ๋ฌธ์ ์ ๋ํด ๋ ์๊ณ ์ถ์ ์ฌ๋์ ์ํด http://www.iacr.org/cryptodb/archive/2002/FSE/3091/3091.pdf๋ฅผ ์ค๋ช
ํ๋ ๋ฉ์ง ๋ฌธ์๊ฐ ์์ต๋๋ค
๋ด๊ฐ ์๊ธฐ๋ก๋ ํ์ผ์ ์ฒญํฌํ ๋ค์ ์์ถ ๋ฐ ์ํธํํ๋ฉด ๊ฒฐํจ์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฒญํฌ ์ ์ ํ์ผ์ ์์ถํ๋ฉด ๋ค๋ฅธ ํ์ผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด์ง ํ์ผ์ด ๋๋ฉฐ ์ด๋ฌํ ์ผ๋ฐ ํ
์คํธ ๊ณต๊ฒฉ์ ๋ฌด์ฉ์ง๋ฌผ์ด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฒญํฌ ์ ์ ํ์ผ์ ์์ถํ๋ฉด ๋ค๋ฅธ ํ์ผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด์ง ํ์ผ์ด ๋๋ฉฐ ์ด๋ฌํ ์ผ๋ฐ ํ ์คํธ ๊ณต๊ฒฉ์ ๋ฌด์ฉ์ง๋ฌผ์ด ๋ฉ๋๋ค.
๋ง์์. ๊ทธ๋ฌ๋ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ด ํ์ผ์ ๊ฐ ๋ฒ์ ์ ๋ํด ๋ค๋ฅธ ์ดํ๋ฅผ ์ฌ์ฉํ์ฌ ๋งค์ฐ ๋ค๋ฅธ ๋ฐ์ด๋๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ฉด ํจ์จ์ ์ธ ์ค๋ณต ์ ๊ฑฐ์ ์ ํํ ๋์์ด ๋์ง ์์ต๋๋ค. ๋ถ๋ช ํ ์ค๋ณต ์ ๊ฑฐ๋์ง ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฒฐ๊ณผ ์ฒญํฌ๋ง ์์ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
restic์ ์์ถ๋ ์ฒญํฌ๋ง ์ ์ฅํ๋ฏ๋ก ํค๊ฐ ์๋ ์ฌ๋์๊ฒ๋ ์ฒญํฌ์ ํฌ๊ธฐ๊ฐ ๋ถ๋ช ํ์ง ์์ต๋๋ค.
๊ทธ๊ฒ์ ์๋๊ฐ์ด๋ค.
๋ด ์์ ์ ์ฌ์ ํ โโ์ ํจํฉ๋๋ค. ์ํธํ์ ํจ๊ป ์์ถ์ ๊ตฌํํ ๋ ์จ๊ฒจ์ง ์ฝ์ ์ ํ๋ก๊ทธ๋จ์ ์ถ๊ฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ง์ด ์์ผ๋ฏ๋ก ์์ ์ถ๊ฐํ์ง ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. TLS์ ๋ํด ๊ฒฐ์ ํ๋ ์ํธํ _์ ๋ฌธ๊ฐ_์กฐ์ฐจ๋ ์์ถ์ ์ ๊ฑฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋น์ทํ ๋ ผ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์๋ ๋ด ๋๋ค.
btw.:
However, it is important to note that these attacks have little security impact on, say, a bulkencryption application which compresses data before encrypting
...
๋น์ ์ ์ํธํ ๋ ํ์ผ์ ์ฌ๋ฌ ๋ค๋ฅธ ๋ฒ์ ์ด์๋ ๊ฒฝ์ฐ๋ ๋ฒ์ฃ์๋ง ์๋ํฉ๋๋ค.
์ฆ, ์ฌ๋ฌ ๋ฐฑ์
์คํ(๊ณต๊ฒฉ์๊ฐ ๋ชจ๋ ๋ฐฑ์
์ ์ป์ ๋ค๋ฅธ ์ ์ฅ์๋ก)
๋ํ ์ ์ ์์ ๋ฐ์ดํฐ์ ์ํด์๋ง ์๋ํฉ๋๋ค.
CRIME์ ํ์ํ์ง๋ง ๋น์ ์ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋น์ ์ด ์ ๋ณด์์ผ๋ก๋ถํฐ ์ผ๊ธ ๋น๋ฐ ํ์ผ ์ธํธ๋ฅผ ๋ฐ์ ํ์ฌ ๊ธฐ์๋ผ๊ณ ์์ํด ๋ณด์ญ์์ค. ์ํธํ๋ก ๋ฐฑ์ ํ๋ฉด ์๋ฌด๋ ์ด ํ์ผ์ ๊ฐ์ง๊ณ ์๋ค๋ ์ฌ์ค์ ์ ์ ์์ต๋๋ค.
์ด์ ๋น์ ์ด ์์ถ์ ๊ฐ๋ฅํ๊ฒ ํ ๋งํผ ๋๋ํ์ง ์๋ค๊ณ ์์ํด๋ณด์ญ์์ค. ์ด์ ์ด๋ฌํ ํ์ผ์ ๊ฐ์ง๊ณ ์๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ ์์ถ๋ ํ ์ํธํ๋ ์ฒญํฌ์ ํฌ๊ธฐ๋ก ํ๋จํ์ฌ ์์ถ ์์ด ์ด ์์นด์ด๋ธ์ ์ด๋ฌํ ์ผ๊ธ ๋น๋ฐ ํ์ผ์ด ์๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ฌ์ง์ด ์ํธํ ํค๋ฅผ ์์์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๋ณด์๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋๋ค. ์ฌ๋๋ค์ ์ด "๊ธฐ๋ฅ" ๋๋ฌธ์ ๊ฐ์ฅ์ ๊ฐ ์๋ ์๊ณ , ๊ณ ๋ฌธ์ ๋ฐ๊ฑฐ๋, ๋ ๋๋น ์ง ์๋ ์์ต๋๋ค.
๊ทธ๊ฑด ํ์๋ฆฌ์ผ. ์์ ์ํ ํฌ๊ธฐ์์๋ง ์๋ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ํ ์์ถํ์ง ์๊ณ ๊ฐ์ฅ์ ๊ฐ ์๋ ์์ต๋๋ค. ํนํ ํน์ ์์ ์์ ๊ณต๊ฒฉ์๊ฐ ๋ฐฑ์
ํ์ผ์ ์ป์์ ๋ ๋์ค์ ์ด๋ฅผ ๋ฌด์ฐจ๋ณ ๊ณต๊ฒฉํ ์ ์์ต๋๋ค.
์์ผ๋ก ๋ํ๋ ๋ค๋ฅธ ๋ณด์ ๋ฌธ์ ๋ฑ์ด ์์ ์ ์์ต๋๋ค.
ํ ๋ก ์ ๊ทธ์ ๋ฌด์๋ฏธํ ๊ณตํฌ ์กฐ์ฅ์ผ๋ก ๋ฐ๋์์ต๋๋ค.
@sanmai , ๋๋์ด ์์ ๋ฅผ ์ป์ง ๋ชปํ์ต๋๋ค.
๋น์ ์ด ํ์ฌ ๊ธฐ์๋ผ๊ณ ์์ํด๋ณด์ธ์... ์ด์ ๋น์ ์ด ์์ถ์ ๊ฐ๋ฅํ๊ฒ ํ ๋งํผ ์๋ฆฌํ์ง ์๋ค๊ณ ์์ํด ๋ณด์ธ์. ์ด์ ์ด๋ฌํ ํ์ผ์ ๊ฐ์ง๊ณ ์๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค๋ ์์ถ ํ ์ํธํ๋ ์ฒญํฌ์ ํฌ๊ธฐ๋ก ํ๋จํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์ฌ์ค์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ํธํ ํค๋ฅผ ์ ํ์๋ ์์ด ์ด ์์นด์ด๋ธ์ ์ด๋ฌํ ์ผ๊ธ ๋น๋ฐ ํ์ผ์ด ์์ต๋๋ค.
๋ฌด์จ ๋ป์ธ๊ฐ์? ํฌ๊ธฐ๋ง ๋ณด๊ณ ์ํธํ๋ ์ค๋ ์ท์ ์ด๋ฌํ ํ์ผ์ด ์์์ ์ถ์ธก ํ ์ ์์ต๋๊น? ์ด๊ฒ์ ํ์ผ์ด ๋จ๋ ์ผ๋ก ์์ถ๋๊ฑฐ๋ ๋ค๋ฅธ ์๋ ค์ง ํ์ผ๊ณผ ํจ๊ป ์์ถ๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ํธํ๋์ง ์์ shapshot์ผ๋ก ๋์ผํ ์ถ์ธก์ ์ํํ ์ ์์ต๋๋ค.
์ฌ์ค, ๋ฐฑ์ ํ๊ธฐ ์ ์ ํ์ผ์ gzip์ผ๋ก ์์ถํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์ด๊ฒ์ ๋ณด์ ์ทจ์ฝ์ ๋ ์ด์ด ์ค๋๊น?
์ด ์๋ ๋ง๋ ์๋๋ ์๋ฆฌ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ค๋ ์ท์ ์๋ ค์ง ์ผ๋ถ (์์) ํ์ผ์ ์์ถ ๋ฒ์ ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ ์ ์๋ค๊ณ ์ฃผ์ฅํ๋ฉด ์์ถ๋์ง ์์ ํ์ผ์ด ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ๋ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
์์ถ์ด ์ํธํ๋ฅผ ํจ์ฌ ๋ ์์ ํ๊ฒ ๋ง๋ค ์ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋๋ถ๋ถ์ ์์ถ ๋ถ์ฑ๋ ๊ณต๊ฒฉ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์์๊ฐ ํฌํจ๋ฉ๋๋ค.
1) ๊ณต๊ฒฉ์๋ ์
๋ ฅ์ ์ ์ดํ ์ ์์ต๋๋ค.
2) ๊ณต๊ฒฉ์๋ ์ถ๋ ฅ์ ํฌ๊ธฐ๋ฅผ ๊ด์ฐฐํ ์ ์์ต๋๋ค.
3) ์
๋ ฅ ๋ฐ์ดํฐ์ ์์ ๋ณํ๋ก ์ธํด ์ถ๋ ฅ ํฌ๊ธฐ์ ์ธก์ ๊ฐ๋ฅํ ๋ณํ๊ฐ ๋ฐ์ํฉ๋๋ค.
4) ๊ณต๊ฒฉ์๋ ์
๋ ฅ์ ๋ณ๊ฒฝํ๊ณ ์์ญ๋ง ๋ฒ ์ฌ์๋ ํ ์ ์์ต๋๋ค.
์น ๊ธฐ๋ฐ ์์คํ ๊ณผ ๋ฌ๋ฆฌ ๋๋จธ์ง ๋ฐฑ์ ๊ณผ ๊ด๋ จ๋ ๋๋ค์์์ (1)๊ณผ (2)๋ ๊ฑฐ์ ๋์์ ์ ์ง๋์ง ์์ต๋๋ค. ๋ํ ๋ธ๋ก ๊ธฐ๋ฐ ์์ถ(3)์ ์ค์ ๋ก ๋ณด์ฅ๋์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ๋ฐฑ์ ์ฒด์ (4)๋ ํ์คํ ์ ์ง๋์ง ์์ต๋๋ค. ๋ฐฑ์ ๋น๋๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋ฃจ์ ํ ๋ฒ ์ ๋์ด๋ฏ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ณ ์์ถ๋ ์ถ๋ ฅ ํฌ๊ธฐ๋ฅผ ๋ชจ๋ํฐ๋งํ์ฌ ์๋นํ ์ฐจ์ด๋ฅผ ํ์ธํ๋ ค๋ฉด ์์ฒ ๋ ์ด ๊ฑธ๋ฆฌ๋ฉฐ ์ด๋ ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์๋๋ค๊ณ ๊ฐ์ ํ๊ณ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ฒ์ ๋๋ค.
์ถ๋ ฅ ํฌ๊ธฐ๊ฐ ํ์๋๋ ๋ฐฑ์ ์ ๋ง๋๋ ๊ฒฝ์ฐ ์์ถ ๋นํ์ฑํ๋ฅผ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ค์ ๋ก ์ด์ ๋ํ ์ค์ง์ ์ธ ๊ณต๊ฒฉ์ด ์์ผ๋ฉฐ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ๊ฒ์ด ๋ ์์ ํ์ง ์์ต๋๋ค.
restic์ ์ด๋ฏธ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํํ์ฌ ์ด์จ๋ ์์ถ ๋ถ์ฑ๋๊ณผ ๋์ผํ ์ด๋ก ์ ๊ณต๊ฒฉ์ ๋ ธ์ถ๋๋ฉฐ ์๋ฌด๋ ์ด์ ๋ํด ๋ถํํ์ง ์์์ต๋๋ค.
์ฌ์ค์ ๋จ์ ์ด ์ ํ ์๋ ์์ถ ๊ธฐ๋ฅ์ ์ด์ ์ ๋๋ฆด ์ ์๋ ์๋ฐฑ ๋๋ ์์ฒ ๋ช ์ ์ฌ์ฉ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด 5๋ ๋ ๋ฌธ์ ๋ฅผ ์์ ์ค์ธ ๊ฐ๋ฐ์์๊ฒ ๋งก๊ฒจ๋ ๋ ๊น์?
์์งํ ๋งํด์ .... ๋๋ restic์ ๊ฐ๋ ์ ์ ํธํ์ง๋ง ... ๋ด ์ ์ค ์ผ์ด์ค (๋ง์ CSV ํ์ผ ๋ฐ SQL ๋คํ)์์ ํ ์คํธ๋ฅผ ์ํํ๊ณ borg๋ก ์ ํํด์ผํ์ต๋๋ค.
4์ธ๋ ์ฆ๋ถ ๋ฐฑ์ ์ผ๋ก ํ ์คํธํ์ผ๋ฉฐ ํ์ผ ์์ถ๋ฅ ์ 7:1์ด๊ณ ์ค๋ณต ์ ๊ฑฐ์ ํจ๊ป > 20:1์ ๋ฌ์ฑํ์ต๋๋ค. ์ด๋ฏธ GB๋น ์จ๋ผ์ธ ๋ฐฑ์ ์คํ ๋ฆฌ์ง ๋น์ฉ์ ์ง๋ถํ๋ค๊ณ ๋งํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ฌด์ํ ์ ์์ต๋๋ค.
root<strong i="7">@xxxx</strong>:~# borg list
2019-08-08_14:37 Thu, 2019-08-08 14:37:10 [5e113a8102f2bd7e40d100343f849dc73843d145011c7214d5fa0895927eb6d1]
2019-08-08_22:28 Thu, 2019-08-08 22:28:21 [17d815d000212a576610b2fd5688ab87cce00039bb89f63722c6a7819dec1821]
2019-08-09_02:00 Fri, 2019-08-09 02:00:23 [217c53b07f30dfbca584c49468cfa624a2445a005890220509c97715f7007e81]
2019-08-10_02:00 Sat, 2019-08-10 02:00:10 [5dd45b8ccf0aa382bf00d5b08e1d5d88daae014f0a1a42b3e2b0fc368623bba0]
root<strong i="8">@xxxx</strong>:~# borg info
Repository ID: xxxx
Location: ssh://xxxx
Encrypted: Yes (repokey)
Cache: /var/lib/borg/cache/xxxx
Security dir: /var/lib/borg/security/xxxx
------------------------------------------------------------------------------
Original size Compressed size Deduplicated size
All archives: 69.02 GB 11.24 GB 2.80 GB
Unique chunks Total chunks
Chunk index: 9227 41812
๋ฌด์จ ๋ป์ธ๊ฐ์? ํฌ๊ธฐ๋ง ๋ณด๊ณ ์ํธํ๋ ์ค๋ ์ท์ ์ด๋ฌํ ํ์ผ์ด ์๋ค๋ ๊ฒ์ ๋๊ตฐ๊ฐ๊ฐ _์ถ์ธก_ํ ์ ์์ต๋๊น? ์ด๊ฒ์ ํ์ผ์ด ๋จ๋ ์ผ๋ก ์์ถ๋๊ฑฐ๋ ๋ค๋ฅธ ์๋ ค์ง ํ์ผ๊ณผ ํจ๊ป ์์ถ๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ํธํ๋์ง ์์ shapshot์ผ๋ก ๋์ผํ ์ถ์ธก์ ์ํํ ์ ์์ต๋๋ค.
์ ํํ. ์ผ๋ฐ ํ ์คํธ ํ์ผ์ ๋์ผํ ์กฐ๊ฐ์ผ๋ก ์๋ฅด๊ณ ์์ถํ ๋ค์ ์ํธํํฉ๋๋ค. ๋ค์ ์ฌ๋ผ์ด์คํ๊ณ ์์ถํ๊ณ ์ํธํํฉ๋๋ค. ์ํธํ๋ ํ์ผ์ ํฌ๊ธฐ๋ AES ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ง๋ฌธ์ฒ๋ผ ์๋ก ์ผ์นํ๋ ๋ฒ์ ํฌ๊ธฐ๊ฐ ์์์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ค์(์ฃผ๋ก ์ด๋์ด๋ ๋ฌ์์์ ๊ฐ์ ์์ ์ ์ธ ์ ๊ถ์ ํ์ ๋ถ๋ฅผ ์๋ฏธํฉ๋๋ค) ์ด๋ฌํ ํ์ผ์ด ์ฌ๊ธฐ์ ์๋ค๊ณ ํฉ๋ฆฌ์ ์ผ๋ก ๊ฐ์ ํ ์ ์์ผ๋ฉฐ, ๋ฐ๋ผ์ ์ฉ์์๋ฅผ ๊ณ์ ๊ณ ๋ฌธํด์ผ ํ ์ด์ ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ ๋ ์ ์ฌ๋ฌ๋ถ์ด ์ด๋ฌํ ์์ด๋์ด์ ๋ํด ๊ทธ๋ ๊ฒ ๊ธฐ๋ถ์ด ์ํ๋์ง ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์ดํดํ๊ธฐ ์ฝ์ง ์์ต๋๊น? ์ด๊ฒ์ ๊ทธ ์์ฒด๋ก ๋ฒ์ฃ๊ฐ ์๋๋๋ค. ๊ทธ๋ ์ฃ ?
๊ทธ๋ฌ๋ @viric์ด ์ธ๊ธ ํ ๊ฒ์ฒ๋ผ ๊ธฐ์ ์ ์ผ๋ก Restic์ ์ํธํ ํค ์์ด๋ ์ฒญํฌ์ ํฌ๊ธฐ๋ฅผ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ทจ์ฝ์ ์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์์ ์์ ์์ถ์ด ์ถ๊ฐ๋๋ฉด Restic์ ์์ง ์ํฅ์ ๋ฐ์ง ์์ ์ ์์ง๋ง ๋์ค์ ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค.
์ด๋ฏธ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ ์์ถ์ ์ถ๊ฐํ๋ฉด Restic์ด ์ถ๊ฐ ์ทจ์ฝ์ ์ ๋ ธ์ถ๋ฉ๋๊น?
๊ณต๊ฒฉ์๊ฐ ์์ถ๋์ง ์์ ํฌ๊ธฐ๋ฅผ ์ ์ถํ๊ธฐ ์ํด ์์ถ๋ ๋ธ๋ก ํฌ๊ธฐ๋ฅผ ์ถ์ธกํ๋ ๊ฒ์ด ๋ฌธ์ ๋ผ๋ฉด ์๊ฒ ์ง๋ง ์์ถ์ผ๋ก ์ธํด ์ํฉ์ด ์ ํ๋ฉ๋๊น? ๊ณต๊ฒฉ์๋ ๋์ผํ ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ต๋๊น?
๊ณต๊ฒฉ์๊ฐ ๊ฐ ํ์ผ์ ์์ถ๋์ง ์์ ํฌ๊ธฐ์ ์์ถ๋ ํฌ๊ธฐ๋ฅผ ๋ณผ ์ ์๋ค๋ฉด ์๋ณ์ด ๋ ํ์ค์ ์ด ๋ ์ ์์ง๋ง ์ ํ์ ์์๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๊ถ๊ทน์ ์ผ๋ก ์ค๋ณต ์ ๊ฑฐ๋ ์์ถ์ด ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ ๋ชจ๋ ์ด๋ก ์ ๊ณต๊ฒฉ์ ์ด๋ฏธ ๋ ธ์ถ๋์ด ์์ผ๋ฉฐ, ์ํฉ์ ๋ ์ ๋ง๋ ๊ฒฝ์ฐ ์์ถ์ ๋นํ์ฑํํ์ฌ ํ์ฌ ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.
์ํธํ๋ ์ฒญํฌ์ ํฌ๊ธฐ๋ฅผ ๋ณด๊ณ ํ์ผ ์กด์ฌ๋ฅผ ์ถ์ธกํ๋ ๊ฒ์ ๋ํ ๊ฐ์์ ๋ณด์ ๋ฌธ์ ์ ๋ํด ๋ ผ์ํ๋ ์ด์ ๋ฅผ ์ดํดํ์ง ๋ชปํฉ๋๋ค.,,
ZIP ๋๋ GZ๋ฅผ ์ฌ์ฉํฉ๋๊น? ๊ทธ๋ผ ๋น์ ์ ๊ด์ฐฎ์๊ฑฐ์ผ.
์ด๋ ๋น๊ตญ์ด ๋ด ์ฝํ ์ธ ๋ฅผ ํฌ๊ธฐ๋ก ์ถ์ธกํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น? ๊ทธ๋ฐ ๋ค์ ์์ถ(!)์ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ๋จ์ํ ์์ถ์ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ restic์ ์์ถ์ ์ถ๊ฐํ๋ ๋ชจ๋ ๊ด๋ จ ๊ฐ๋๋ฅผ ๋ค๋ค๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ชจ๋ ์๊ฒฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์์ถ์ ์ถ๊ฐํ๊ณ ํ์ฑํํด์ผ ํ์ง๋ง ์ฌ์ฉ์๊ฐ ์์ถ์ ๋นํ์ฑํํ ์ ์๋๋ก ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ ํ ์๊ฐ์ด ๋ ์์ ๋๊น์ง ๊ธฐ๋ค๋ ค ์ฃผ์ญ์์ค.
์ด ํ ๋ก ์ด ์์ ์กํ์ง ์๋ ๊ฒ ๊ฐ์์ ์ง๊ธ์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ทธ๊ณ ์์ต๋๋ค. ์ด ํ ๋ก ์ ๊ณ์ ํ๋ ค๋ฉด ํฌ๋ผ์ผ๋ก ์ด๋ํ์ญ์์ค . ๊ฐ์ฌ ํด์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์์ถ์ ์ถ๊ฐํ๋ ๋ฌธ์ ์ ๋ํด์๋ ์ถฉ๋ถํ ๋ ผ์๊ฐ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋งค์ฐ ๊ธฐ๋๋๋ ๊ธฐ๋ฅ์์ ์ ์ ์์ต๋๋ค. ์ ์์นด์ด๋ฒ ์ฝ๋(#1494 ์ฐธ์กฐ)๋ฅผ ์๋ฃํ ํ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฒ ์ต๋๋ค.
๋ ์ด์ ์๊ฒฌ์ ์ถ๊ฐํ์ง ๋ง์ญ์์ค. ๊ฐ์ฌํฉ๋๋ค!