Restic: ๋ณต๊ตฌ๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 11์›” 07์ผ  ยท  71์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: restic/restic

PR1719์˜ ๋ณ‘ํ•ฉ ๋•๋ถ„์— restic์˜ ๋ณต์›์ด _way_ ๋” ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ๋” ๋น ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ ์ „์šฉ i3.8xlarge EC2 ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•œ ๋ฆฌ์ „(us-west-1)์˜ ๋‚˜๋จธ์ง€ AWS S3 ๋ฒ„ํ‚ท์—์„œ ๋ณต์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณต์›์€ ์ธ์Šคํ„ด์Šค์˜ 4x1.9TB nvme์— ๋Œ€ํ•ด ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉฐ, ์•„๋ž˜์— xfs ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์žˆ๋Š” LVM์„ ํ†ตํ•ด ์ŠคํŠธ๋ผ์ดํ”„๋œ RAID-0์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” ์ด๋ก ์ ์œผ๋กœ S3์— ๋Œ€ํ•ด 10gbit/sec์˜ ๋Œ€์—ญํญ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

filerestorer.go์˜ workerCount๊ฐ€ 32(์ปดํŒŒ์ผ๋œ ์ œํ•œ 8์—์„œ)๋กœ ์ฆ๊ฐ€ํ•˜๋ฉด restic์€ ํ‰๊ท  ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ 8KB์ด๊ณ  ์ตœ๋Œ€ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ 364GB์ธ 228k ํŒŒ์ผ์˜ ํ˜ผํ•ฉ์„ ํ‰๊ท  160mbit/sec๋กœ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋น„ํ•ด --transfers=32๋ฅผ ์‚ฌ์šฉํ•˜๋Š” rclone์€ ๋™์ผํ•œ ๋ฒ„ํ‚ท์˜ ๋ฐ์ดํ„ฐ๋ฅผ 5636mbit/sec์˜ ์†๋„๋กœ 30๋ฐฐ ์ด์ƒ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๊ณผ ๋Œ€ ์‚ฌ๊ณผ ๋น„๊ต๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Restic ๋ฐ์ดํ„ฐ Blob์˜ ํฌ๊ธฐ๋Š” 8KB๊ฐ€ ์•„๋‹Œ 4096KB์ด๋ฉฐ ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ๋‹ซ์„ ๋•Œ ํ™•์‹คํžˆ _์ผ๋ถ€_ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ์ œํ•œ์ ์ธ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ง€์ ํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฐ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฌผ๊ฑด์„ ํ…Œ์ŠคํŠธํ•˜๊ฑฐ๋‚˜ ๊ณ„์ธก์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค!

feature enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ณ‘ํ•ฉ๋˜๋Š” ์ƒํƒœ๊ฐ€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. @cbane ์˜

๋ชจ๋“  71 ๋Œ“๊ธ€

160mbit/sec๋Š” ์‹ค์ œ๋กœ ๋Š๋ฆฌ๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” 1Gbps ftth ์—ฐ๊ฒฐ์„ ํ†ตํ•ด onedrive์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ์ž‘์€ macbook pro์—์„œ 200Mbps์— ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์‹œ์Šคํ…œ ๋ฐ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์—†์ด๋Š” ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋‹ค์Œ์€ ํŠน์ • ์ˆœ์„œ ์—†์ด ๋ฌธ์ œ๋ฅผ ์ขํž ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

  • ๋‹จ์ผ ์Šค๋ ˆ๋“œ์—์„œ ๋‹จ์ผ ํŒฉ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์˜ˆ์ƒ ์‹œ๊ฐ„. rclone 32x ๋‹ค์šด๋กœ๋“œ ํ…Œ์ŠคํŠธ์—์„œ ์ด๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ http ์š”์ฒญ ์˜ค๋ฒ„ํ—ค๋“œ๋„ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก curl์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ณ„ ํŒฉ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ์‹œ๊ฐ„์„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
  • ๋ณต์› ์ค‘์— S3์—์„œ ์‹ค์ œ๋กœ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ restic์ด ๋‹ค์šด๋กœ๋“œ๋˜๋Š”์ง€ OS ํ†ต๊ณ„๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ณต์›์ด ๊ฐœ๋ณ„ ํŒฉ ํŒŒ์ผ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋‹ค์šด๋กœ๋“œํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค(๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ฐ„๊ณผํ•˜์ง€ ์•Š๋Š” ํ•œ ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•„์•ผ ํ•จ).
  • S3 ๋™์‹œ์„ฑ ์ˆ˜์ค€์€ 5๊ฐœ์˜ ์—ฐ๊ฒฐ ๋กœ ์ œํ•œ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ„์—์„œ ์ฃผ์–ด์ง„ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ์†๋„ ์ถ”์ •์น˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ณต์› ์†๋„๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ณต์› ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ผ์น˜ํ•˜๋„๋ก S3 ๋ฐฑ์—”๋“œ ์—ฐ๊ฒฐ ์ œํ•œ์„ ๋Š˜๋ฆฌ๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ?
  • ๋ณต์› ์ค‘ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋ฅ ์„ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œ์‹œํ•˜์—ฌ ๊ฐ„๊ฒฉ์ด๋‚˜ ์†๋„ ์ €ํ•˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณต์›์—์„œ ํ•ด๋‹น 364GB ํŒŒ์ผ์„ ์ œ์™ธํ•˜๊ณ  ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ฐœ๋ณ„ ํŒŒ์ผ์€ ํ˜„์žฌ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณต์›๋˜๋ฏ€๋กœ ์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ์€ ํ‰๊ท  ๋‹ค์šด๋กœ๋“œ ์†๋„๋ฅผ ํฌ๊ฒŒ ์™œ๊ณกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”!

๋‹ต์žฅ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŒŒํ—ค์น˜๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์› ๋‹ค.

tl;dr: s3 ์—ฐ๊ฒฐ์„ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด์ง€๋งŒ ์ œ๊ณตํ•˜๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์€ ์ด์ƒํ•˜๊ฒŒ๋„ ์ผ์‹œ์ ์ž…๋‹ˆ๋‹ค.

  1. rclone --transfers 1์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒฉ(์ด 3062๊ฐœ ํŒŒ์ผ, ์ด 13GB)์„ ์ „์†กํ•˜๋ฉด 233mbit/sec๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ชจ๋“œ์—์„œ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๋ฐ ๋‹จ์ผ https ์—ฐ๊ฒฐ๋กœ๋งŒ ์‹คํ–‰๋˜๊ณ  ์žˆ์Œ์„ lsof๋กœ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ณ  ์†๋„๋Š” --transfers 32(8.5gbit/sec, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด i3.8xlarge ec2 ์ธ์Šคํ„ด์Šค์˜ ํšŒ์„  ์†๋„)๋กœ ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์ŠคํŠธ๋ผ์ดํ”„ nvme ์–ด๋ ˆ์ด์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ช‡ ๊ฐ€์ง€ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฌด์—‡์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ? (ํ•˜์ง€๋งŒ ํ•„์ˆ˜๊ฐ€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”)
  3. ์—ฌ๊ธฐ์—์„œ ํ•˜๋‚˜์˜ ๋Œ๋กœ ๋‘ ๋งˆ๋ฆฌ์˜ ์ƒˆ๋ฅผ ์ฃฝ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๋‹ค์Œ ์€ ๋ณต์› ์ค‘ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋ฅ 
  • ์ด PR๊ณผ ๋ณ‘ํ•ฉ๋œ ์ฃผ์‹ ์žฌ๊ณ (commit c0572ca15f946c622d9c4009347dc4d6c31cba4c)
  • workerCount๊ฐ€ 32๋กœ ์ถฉ๋Œํ•˜๊ณ  filesWriterCount๊ฐ€ 128๋กœ ์ถฉ๋Œํ•œ restic
  • ์ด์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ œํ•œ + s3 ์—ฐ๊ฒฐ์ด 32๋กœ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ํ•จ๊ป˜ resitc + s3 ์—ฐ๊ฒฐ์ด 64๋กœ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • --transfers 32๊ฐ€ ์žˆ๋Š” rclone ๋ฐ์ดํ„ฐ/ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™

๋Œ€์—ญํญ ๋ฒˆํ˜ธ๋Š” kbps์ด๋ฉฐ 10๋ถ„์— ๊ฑธ์ณ 3์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์ธก์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. restic ์‹คํ–‰์˜ ๊ฒฝ์šฐ, ์šฐ๋ฆฌ๋Š” restic์ด ํŒŒ์ผ์„ ์‹ค์ œ๋กœ ๋ณต์›ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ _after_ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์‹œ์ž‘ ์‹œ๊ฐ„๊ณผ restic์ด ๋””๋ ‰ํ† ๋ฆฌ ๊ณ„์ธต์„ ์žฌ์ƒ์„ฑํ•˜๋Š” ์‹คํ–‰ ์‹œ์ž‘ ์‹œ ์†Œ๋น„ํ•œ ์‹œ๊ฐ„์„ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹คํ–‰ ๋™์•ˆ, ์ธ์Šคํ„ด์Šค๋Š” 25%๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

workerCount๋ฅผ ๋Š˜๋ฆฌ๋ฉด ์•ฝ๊ฐ„์˜ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ S3 ๋™์‹œ์„ฑ์€ ์‹ค์ œ ์Šน๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ๋™์•ˆ(๋•Œ๋กœ๋Š” rclone ์†๋„์— ๊ฐ€๊นŒ์›Œ์ง€๊ธฐ๋„ ํ•จ!) ์†๋„๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋–จ์–ด์ง€๊ณ  ๋‚˜๋จธ์ง€ ์‹คํ–‰ ๊ธฐ๊ฐ„ ๋™์•ˆ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. restic์€ ๋˜ํ•œ "[๊ฒฝ๋กœ ์ˆ˜์ •๋จ]์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ฌด์‹œ: ์บ์‹œ ์šฉ๋Ÿ‰์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Œ: ์š”์ฒญ๋œ 2148380, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ 872640"๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ๋” ๋‚ฎ์€ s3 ๋™์‹œ์„ฑ๊ณผ ํ•จ๊ป˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ณด์‹œ๋‹ค์‹œํ”ผ rclone ์„ฑ๋Šฅ์€ ๋†’๊ฒŒ ์‹œ์ž‘ํ•˜์—ฌ ๋†’๊ฒŒ ์œ ์ง€๋˜๋ฏ€๋กœ ์“ฐ๊ธฐ๊ฐ€ ์ธ์Šคํ„ด์Šค์˜ ๋ฒ„ํผ ์บ์‹œ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ๋””์Šคํฌ๋กœ ํ”Œ๋Ÿฌ์‹œ๋  ๋•Œ ์ •์ง€๋˜๋Š” ์ƒํ™ฉ์ด ์•„๋‹™๋‹ˆ๋‹ค. nvme ์–ด๋ ˆ์ด๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰ ์ธก๋ฉด์—์„œ ๋„คํŠธ์›Œํฌ ํŒŒ์ดํ”„๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค.

  1. ๋ณต์›ํ•˜๋Š” ๋™์•ˆ ๋””์Šคํฌ/๋„คํŠธ์›Œํฌ IO๋ฅผ ์ธก์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ํฐ ํŒŒ์ผ์ด ํ•˜๋‚˜์˜ ์š”์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์ผ ํŒŒ์ผ์ด ์™„์ „ํžˆ ๋ณต์›๋˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์šฐ๋ฆฌ์˜ ์ˆ˜์น˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋‚ด์šฉ์„ ๊ฐ์•ˆํ•  ๋•Œ ํ•ฉ๋ฆฌ์ ์ธ ์†๋„๋ฅผ ์–ป์œผ๋ ค๋ฉด S3 ๋™์‹œ์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋Š” ์ด์œ (๋ฐ ์บ์‹œ ์˜ค๋ฅ˜์™€ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€)๋ฅผ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋น ๋ฅธ i3 ์ธ์Šคํ„ด์Šค์™€ ์ผ๋ถ€ s3 ๊ณต๊ฐ„ ๋ฐ ๋Œ€์—ญํญ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋œ๋‹ค๋ฉด ์ €์—๊ฒŒ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ๊ธฐ๊บผ์ด ํ›„์›ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

  1. 233mbit/sec ๊ณฑํ•˜๊ธฐ 32๋Š” 7456์ด๋ฉฐ 8.5gbit/sec๋ณด๋‹ค ์•ฝ๊ฐ„ ์ž‘์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋‹ค์šด๋กœ๋“œ์˜ ์ŠคํŠธ๋ฆผ๋‹น ์ฒ˜๋ฆฌ๋Ÿ‰๋ณด๋‹ค ๋น ๋ฅผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  2. ๋‚˜๋Š” restic์ด ๋™์ผํ•œ ํŒฉ์„ ๊ณ„์†ํ•ด์„œ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์— ๊ทธ๋ž˜ํ”„๋Š” ์žฌ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹˜์„ ๋ณด์—ฌ์ฃผ๋ฏ€๋กœ ์ ์–ด๋„ ์ง€๊ธˆ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋” ๋งŽ์€ ํ†ต๊ณ„๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  3. ๊ทธ๋ž˜ํ”„ ์Šค์ผ€์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? rclone์€ "1,000,000kbps"์ธ ๊ฒฝ์šฐ "1000000"์œผ๋กœ ํ‘œ์‹œ๋œ ์ค„ ์ฃผ์œ„๋ฅผ ๋งด๋Œ๋ฉฐ, ์ด๋Š” "1Gbps"๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์•ž์„œ ์–ธ๊ธ‰ํ•œ "8.5 gbit/sec" ์ˆซ์ž์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  4. ๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ๊ฐœ๋ณ„ ํŒŒ์ผ์€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณต์›๋ฉ๋‹ˆ๋‹ค. 233mbit/s์—์„œ 364GB ๋‹ค์šด๋กœ๋“œ๋Š” ์•ฝ 3.5์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉฐ, ํŒฉ๋‹น ์˜ค๋ฒ„ํ—ค๋“œ์™€ ์•”ํ˜ธ ํ•ด๋…์œผ๋กœ ์ธํ•ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋‘๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ๋ณต์›์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ๋ชจ๋ฅธ ์ฑ„ 3.5์‹œ๊ฐ„์ด ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

not enough cache capacity ์˜ค๋ฅ˜์˜ ๊ฒฝ์šฐ AveragePackSize ๋ฅผ ์ €์žฅ์†Œ์—์„œ ๊ฐ€์žฅ ํฐ ํŒฉ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋กœ ๋Š˜๋ฆฌ์‹ญ์‹œ์˜ค(์–ผ๋งˆ๋‚˜ ํฌ๋‚˜์š”? btw?) ๊ทธ๋ฆฌ๊ณ  ์บ์‹œ ํฌ๊ธฐ๋ฅผ ๋” ์ž˜ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์•„์ง ๋Œ€๋‹ต.

์•ˆ๋…•ํ•˜์„ธ์š”!

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„์˜ ์Šค์ผ€์ผ์€ kbit/sec๊ฐ€ ์•„๋‹ˆ๋ผ KB/sec์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฒซ ๋ฒˆ์งธ ํ–‰์˜ 1,012,995๋Š” 8.1gbit/sec์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ์ด ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณต์›๋˜๋Š” ๊ฒƒ์€ ์ดํ•ดํ–ˆ์ง€๋งŒ ๋‹จ์ผ ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒฉ ๊ฒ€์ƒ‰์— ๋Œ€ํ•œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์€ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์˜ ์ œํ•œ ์š”์†Œ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํฐ ํŒŒ์ผ์ด ์žˆ๋Š” ๋ฐฑ์—…์˜ ๊ฒฝ์šฐ ํ™•์‹คํžˆ ์•ฝ๊ฐ„์˜ ๊ฑธ๋ฆผ๋Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ด์œ ๋กœ ์—ฌ๊ธฐ์— ์•ฝ๊ฐ„์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด ํ™˜์ƒ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

10๊ฐœ์˜ ๋ฌด์ž‘์œ„ ๋ฒ„ํ‚ท์„ ์ƒ˜ํ”Œ๋งํ•  ๋•Œ ์ตœ๋Œ€ ํŒฉ ํฌ๊ธฐ๋Š” 12MB ๋ฐ”๋กœ ์•„๋ž˜์ด๊ณ  ํ‰๊ท  ํŒฉ ํฌ๊ธฐ๋Š” 4.3MB์ž…๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์ž‘์—…์ž์™€ S3 ์—ฐ๊ฒฐ๋กœ ์ธํ•ด (workerCount + 5) * averagePackSize์˜ packCacheCapacity๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง€๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์ž‘์—…์ž์™€ S3 ์—ฐ๊ฒฐ๋กœ ์ธํ•ด (workerCount + 5) * averagePackSize์˜ packCacheCapacity๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง€๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ ํฌ๊ธฐ๋Š” 5MB ํŒฉ ํŒŒ์ผ ํฌ๊ธฐ์™€ workerCount ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. workerCount ๋Š˜๋ฆฌ๋ฉด ์บ์‹œ ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ˆœ์ˆ˜ํ•œ ์šฐ์—ฐ์— ์˜ํ•ด ๋งŽ์€ 12MB ํŒŒ์ผ์„ ์บ์‹œํ•ด์•ผ ํ•˜๋Š” ๋ณต์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. averagePackSize ๋ฅผ 12MB๋กœ ์˜ฌ๋ฆฌ๋ฉด ์–ด๋Š ์ชฝ์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AveragePackSize๊ฐ€ 12๋กœ ์„ค์ •๋œ ์บ์‹œ ์˜ค๋ฅ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋„์›€์ด ๋  ๋งŒํ•œ ๋‹ค๋ฅธ ์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”! ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ณต์›์ด ์ง„ํ–‰๋จ์— ๋”ฐ๋ผ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ์†์‹ค๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ๊ณผ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋‹ค์‹œ ๋ณด๊ณ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”!

์„ธ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ธ๊ณต ํŒŒ์ผ ๋ฏน์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๋•์…˜ ํŒŒ์ผ ๋ฏน์Šค์—์„œ ๋ณด๊ณ  ์žˆ๋˜ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์žฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํ…Œ์ŠคํŠธ์—์„œ c0572ca15f946c622d9c4009347dc4d6c31cba4c๋ฅผ S3 ์—ฐ๊ฒฐ์„ 128๋กœ, workerCount๋ฅผ 128๋กœ, filesWriterCount๋ฅผ 128๋กœ, AveragePackSize๋ฅผ 12 * 1024 * 1024๋กœ ๋Š˜๋ ธ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํ…Œ์ŠคํŠธ๋Š” ์ค‘๋ณต ์ œ๊ฑฐ์˜ ์˜ํ–ฅ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ์—์„œ๋Š” 4,000๊ฐœ์˜ 100MB ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋ฐฑ์—…ํ–ˆ์œผ๋ฉฐ 100๊ฐœ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ(์ด ~400GB)์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„ํ• ํ–ˆ์Šต๋‹ˆ๋‹ค. i3.8xlarge ์ธ์Šคํ„ด์Šค์˜ ์ŠคํŠธ๋ผ์ดํ”„ nvme ๋ณผ๋ฅจ์—์„œ ๋ฐฑ์—… ๋ฐ ๋ณต์›์ด ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—… ๋ฒ„ํ‚ท์€ ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•œ ๋ฆฌ์ „์— ์œ„์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค(us-west-1).

์ด ํŒŒ์ผ ์กฐํ•ฉ์„ ํ†ตํ•ด ์ „์ฒด ๋ณต์›์—์„œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋˜๋Š” ์†๋„ ์†์‹ค ์—†์ด ํ‰๊ท  9.7gbit/sec(!)์˜ ์†๋„๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด ์ˆ˜์น˜๋Š” rclone ์ˆ˜์น˜์™€ ๊ฐ™๊ฑฐ๋‚˜ ๊ทธ ์ด์ƒ์ด๋ฉฐ ๋ณธ์งˆ์ ์œผ๋กœ ๋ผ์ธ ์†๋„์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ™˜์ƒ์ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ 400,000๊ฐœ์˜ 1MB ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฑ์—…ํ•˜์—ฌ 100๊ฐœ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ(๋‹ค์‹œ ์ด ~400GB)์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„ํ• ํ–ˆ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๋™์ผํ•œ(์šฐ์ˆ˜ํ•œ) ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋””๋ ‰ํ„ฐ๋ฆฌ๋‹น 10GB ํŒŒ์ผ 1๊ฐœ๋กœ 40๊ฐœ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ, ์ƒํ™ฉ์ด ํฅ๋ฏธ๋กœ์›Œ์กŒ์Šต๋‹ˆ๋‹ค.

restic์€ S3์— ๋Œ€ํ•œ 40๊ฐœ์˜ ์—ฐ๊ฒฐ๋กœ 40๊ฐœ์˜ ๋™์‹œ ๋ณต์›๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ณต์›์ด ์•ฝ๊ฐ„ ๋Š๋ฆด ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Restic์€ ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•ด 40๊ฐœ ํŒŒ์ผ์„ ๋ชจ๋‘ ์—ด๊ณ  40๊ฐœ ํŒŒ์ผ์— ๋™์‹œ์— ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ S3์— ๋Œ€ํ•œ ๋‹จ์ผ TCP ์—ฐ๊ฒฐ๋งŒ ํ•œ ๋ฒˆ์— 40๊ฐœ๊ฐ€ ์•„๋‹Œ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ณด๊ณ  ์‹ถ์€ ํ†ต๊ณ„๋‚˜ ๋„๊ตฌ๋ฅผ ์•Œ๋ ค์ฃผ์„ธ์š”.

"๋น ๋ฅธ" ํ…Œ์ŠคํŠธ ์ค‘์— 128๊ฐœ์˜ S3 ์—ฐ๊ฒฐ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค... ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ง€์›์€ ์†”์งํžˆ ์ œ ์šฐ์„  ์ˆœ์œ„ ๋ชฉ๋ก์—์„œ ๋†’์ง€ ์•Š์ง€๋งŒ ์•ž์œผ๋กœ ๋ช‡ ์ฃผ ์•ˆ์— ์ด๋ฅผ ์‚ดํŽด๋ณผ ์‹œ๊ฐ„์ด ์ƒ๊ธธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๊ธฐ ์ „์— ์ด๊ฒƒ์„ ํŒŒํ—ค์น˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ ์‹ค์ œ๋กœ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ฒญ์–ด์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. AWS ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ์ฃผ๋„ํ•˜๋Š” ๊ฒƒ์€ ํŒŒ์ผ ์ˆ˜์ž…๋‹ˆ๋‹ค.

4๊ฐœ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— 128๊ฐœ์˜ 10MB ํŒŒ์ผ์ด ์žˆ๋Š” restic์€ 128๊ฐœ์˜ ํŒŒ์ผ ๋ชจ๋‘์— ์“ฐ๋Š” ์ค‘์ด๋”๋ผ๋„ AWS์— ๋Œ€ํ•œ 6๊ฐœ์˜ ์—ฐ๊ฒฐ๋งŒ ์—ฝ๋‹ˆ๋‹ค.

4๊ฐœ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— 512๊ฐœ์˜ 10MB ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ restic์€ ํ•œ ๋ฒˆ์— 128๊ฐœ์˜ ํŒŒ์ผ์„ ์—ด์–ด๋„ ์ˆ˜๋ช… ๋™์•ˆ 18๊ฐœ์˜ ์—ฐ๊ฒฐ์„ ์—ฝ๋‹ˆ๋‹ค.

4๊ฐœ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— 5,120๊ฐœ์˜ 10MB ํŒŒ์ผ์ด ์žˆ๋Š” restic์€ ์ˆ˜๋ช… ๋™์•ˆ AWS์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ 75๊ฐœ๋งŒ ์—ด์–ด ํ•œ ๋ฒˆ์— 128๊ฐœ์˜ ํŒŒ์ผ์„ ์—ด์–ด๋‘ก๋‹ˆ๋‹ค.

์ด์ƒํ•œ!

Go S3 ํด๋ผ์ด์–ธํŠธ๊ฐ€ http ์—ฐ๊ฒฐ์„ ํ’€๋ง ๋ฐ ์žฌ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ •๋ง ๋†€๋ž์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋™์‹œ ์ž‘์—…์ž ์ˆ˜์™€ ์—ด๋ฆฐ TCP ์†Œ์ผ“ ์‚ฌ์ด์—๋Š” ์ผ๋Œ€์ผ ์ƒ๊ด€ ๊ด€๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ์ด์œ ๋กœ๋“  ๋ณต์›์ด ๋‹ค์šด๋กœ๋“œ๋œ ํŒฉ์„ ๋Š๋ฆฌ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ๋™์ผํ•œ S3 ์—ฐ๊ฒฐ์„ ์—ฌ๋Ÿฌ ์ž‘์—…์ž๊ฐ€ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌํ˜„ ๋ณต์žก์„ฑ์˜ ๋Œ€๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•˜๊ณ  ์—ฌ๊ธฐ์— ๋ณด๊ณ ๋œ ์†๋„ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์€ ํ˜„์žฌ ๋™์‹œ ๋ณต์› ํ”„๋กœ๊ทธ๋žจ์˜ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ๋ณ„ ํŒŒ์ผ์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณต์›๋ฉ๋‹ˆ๋‹ค.
  • ์ง„ํ–‰ ์ค‘์ธ ํŒŒ์ผ์˜ ์ˆ˜๊ฐ€ ์ตœ์†Œ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๊ตฌํ˜„์€ ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋œ ์‚ฌ์šฉํ•˜๋ฉฐ ๋งŽ์€ ๊ฒฝ์šฐ์— ํŒŒ์ผ blob์„ ์ˆœ์„œ์— ๊ด€๊ณ„์—†์ด ์ž‘์„ฑํ•˜๊ณ  ์ง„ํ–‰ ์ค‘์ธ ํŒŒ์ผ์„ ์›ํ•˜๋Š” ์ˆ˜๋งŒํผ ํ—ˆ์šฉํ•˜๋Š” ๋ฐ ๋™์˜ํ•˜๋ฉด ํ›จ์”ฌ ๋น ๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹จ์ ์€ ๋ณต์›์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ฃผ์–ด์ง„ ํŒŒ์ผ์—์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๋ณต์›๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ๋ณต์›์ด ์ถฉ๋Œํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ๋˜๋Š” ๊ฒฝ์šฐ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ 10GB ํŒŒ์ผ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํŒŒ์ผ ๋์— ๋ช‡ ๋ฐ”์ดํŠธ๋งŒ ๊ธฐ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

@fd0 ํ˜„์žฌ ์‹œ์ž‘๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณต์›์„ ๊ฐœ์„ ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ๊ฐœ์ธ์ ์œผ๋กœ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‚ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์—”์ง€๋‹ˆ์–ด๋ง์ž„์„ ์ธ์ •ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์œผ๋ฉฐ ๋™์˜ํ•œ๋‹ค๋ฉด ๋” ๊ฐ„๋‹จํ•œ ๋น„์ˆœ์ฐจ์  ๊ตฌํ˜„์„ โ€‹โ€‹์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Restic์ด ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋ณต์›์„ ์ง€์›ํ•˜๋Š”์ง€ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ถ„๋ช…ํžˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณต์›์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์ผ ์ˆ˜ ์žˆ์Œ).

@ifedorenko ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋‹จ์ˆœํ™”๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ํ•จ๊ป˜๋ผ๋ฉด ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ ์€ ๋ณต์›์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ฃผ์–ด์ง„ ํŒŒ์ผ์—์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๋ณต์›๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๋™์‹œ์— ์ž‘์„ฑ๋œ ์ˆ˜์ฒœ ๊ฐœ์˜ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์ž‘์„ฑ๋œ ๋ฐ”์ดํŠธ์— ๋Œ€ํ•œ ํŒŒ์ผ ์ด๋ฆ„์˜ ๋งต์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ถ„๋ช…ํžˆ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ง„ํ–‰ ๋ณด๊ณ ๋ฅผ ์œ„ํ•ด ์—ฌ์ „ํžˆ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ์ค‘๋‹จ๋œ ๋ณต์›์„ ์žฌ๊ฐœํ•˜๋ ค๋ฉด ์•„๋งˆ๋„ ํŒŒ์ผ์˜ blob๊ณผ ์˜คํ”„์…‹์—์„œ null์ด ์•„๋‹Œ ๋ฐ”์ดํŠธ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋ฟ์ผ๊นŒ์š”? ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.)

Restic์ด ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋ณต์›์„ ์ง€์›ํ•˜๋Š”์ง€ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ถ„๋ช…ํžˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณต์›์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์ผ ์ˆ˜ ์žˆ์Œ).

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋ณต์›์€ ์—ฌ๋Ÿฌ ํŒŒ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ๋“  ์ธ์ฝ”๋”ฉํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๋“  ๋ถ„๋ฆฌํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๋™์‹œ์— ์ž‘์„ฑ๋œ ์ˆ˜์ฒœ ๊ฐœ์˜ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์ž‘์„ฑ๋œ ๋ฐ”์ดํŠธ์— ๋Œ€ํ•œ ํŒŒ์ผ ์ด๋ฆ„์˜ ๋งต์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„์€ ๊ฐœ๋ณ„ Blob์„ ์“ฐ๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์„ ์—ด๊ณ  ๋‹ซ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋„ˆ๋ฌด ๋Š๋ฆฐ ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜๋ฉด ์—ด๋ฆฐ ํŒŒ์ผ ํ•ธ๋“ค์„ ์บ์‹ฑํ•˜๊ณ  ์ด๋ฏธ ์—ด๋ฆฐ ํŒŒ์ผ์„ ์„ ํ˜ธํ•˜๋„๋ก ํŒฉ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ฃผ๋ฌธํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ Blob ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•ด ํŒŒ์ผ์„ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์›์€ ์ด๋ฏธ ์–ด๋–ค Blob์ด ์–ด๋–ค ํŒŒ์ผ์— ๊ธฐ๋ก๋˜์—ˆ๊ณ  ๋ฌด์—‡์ด ์•„์ง ๋ณด๋ฅ˜ ์ค‘์ธ์ง€ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์ด ๋งŽ์ด ๋ฐ”๋€” ๊ฑฐ๋ผ๊ณ ๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ƒํ™ฉ์€ ๋ณ„๋„์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ถ”์ ๋˜๋ฉฐ ๋ณ€๊ฒฝ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ค‘๋‹จ๋œ ๋ณต์›์„ ์žฌ๊ฐœํ•˜๋ ค๋ฉด ํŒŒ์ผ์˜ blob๊ณผ ์˜คํ”„์…‹์—์„œ null์ด ์•„๋‹Œ ๋ฐ”์ดํŠธ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋ฟ์ผ๊นŒ์š”?

Resume์€ ๋””์Šคํฌ์— ์žˆ๋Š” ํŒŒ์ผ์˜ ์ฒดํฌ์„ฌ์„ ํ™•์ธํ•˜์—ฌ ์—ฌ์ „ํžˆ ๋ณต์›ํ•ด์•ผ ํ•˜๋Š” Blob์„ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์›์ด ์ˆœ์ฐจ์ ์ด๋“  ๋น„์ˆœ์ฐจ์ ์ด๋“  ์ƒ๊ด€์—†์ด ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, resume์ด ์ •์ „์œผ๋กœ๋ถ€ํ„ฐ ๋ณต๊ตฌ๋œ๋‹ค๋ฉด, ์ •์ „ ์ „์— ๋ชจ๋“  ํŒŒ์ผ ๋ธ”๋ก์ด ๋””์Šคํฌ๋กœ ํ”Œ๋Ÿฌ์‹œ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํŒŒ์ผ์— ๊ฐ„๊ฒฉ์ด ์žˆ๊ฑฐ๋‚˜ ๋ถ€๋ถ„์ ์œผ๋กœ ๊ธฐ๋ก๋œ ๋ธ”๋ก์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@pmkane #2101์„ ์‚ฌ์šฉํ•ด๋„

์ „์ ์œผ๋กœ. ์ด๋ฒˆ ์ฃผ์— ์—ฌํ–‰์„ ๊ฐ€์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋‹ค์‹œ ๋ณด๊ณ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ifedorenko ๋‚˜๋Š” ์ด PR์„ ์‹œ๋„ํ–ˆ๊ณ 

์ง(, 3172070, 0) ๋ฐ˜ํ™˜๋œ ์˜ค๋ฅ˜, 12.182749645s ์ดํ›„ ์žฌ์‹œ๋„: EOF

๋งˆ์Šคํ„ฐ๋Š” ์ž˜ ๋ณต์›๋ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ณต์› ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/usr/local/bin/restic.outoforder -r s3:s3.amazonaws.com/[redacted] -p /root/.restic_pass ๋ณต์› [snapshotid] -t .

๋””๋ฒ„๊ทธ์— ๋„์›€์ด ๋˜๋„๋ก ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋™์‹œ S3 ๋‹ค์šด๋กœ๋“œ ์š”์ฒญ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๊นŒ? 128์ด๋ผ๋ฉด 32๋กœ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š”)?

์ค€๊ด€๋ จ... ์‹ค์ œ ์ €์žฅ์†Œ์— ์ƒ‰์ธ ํŒŒ์ผ์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์•„์‹ญ๋‹ˆ๊นŒ? ๋ฉ”๋ชจ๋ฆฌ ๋ณต์›๊ธฐ์— ํ•„์š”ํ•œ ์–‘์„ ์ถ”์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ์ œํ•œ์„ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ 5๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-o s3.connections=2 ๋ฐ -o s3.connections=1์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ index/ ํด๋”์— 85๊ฐœ์˜ ์ธ๋ฑ์Šค Blob์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํฌ๊ธฐ๋Š” 745MB์ž…๋‹ˆ๋‹ค.

ํ . ์˜ค๋Š˜ ๋‚˜์ค‘์— ์ปดํ“จํ„ฐ์— ๋„์ฐฉํ•˜๋ฉด ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Btw, "returned error, retrying"์€ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ๊ณ ์ด๋ฏ€๋กœ ๋ณต์› ์‹คํŒจ์™€ ๊ด€๋ จ์ด ์žˆ๊ฑฐ๋‚˜ ๊ทธ๋ƒฅ red herring์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ๋†“์ณค๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค... ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ณต์› ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐฑ์—”๋“œ์—์„œ ๋ชจ๋“  ํŒฉ ํŒŒ์ผ์„ ์™„์ „ํžˆ ์ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @pmkane ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์†Œ์šฉ๋Œ์ด๋ฅผ ์ค„๊ฒŒ!

์ด ์ˆ˜์ •์œผ๋กœ ํŒŒ์ผ์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋ณต์›๋˜์—ˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค.

์•ˆํƒ€๊น๊ฒŒ๋„ ๋งˆ์Šคํ„ฐ๋ณด๋‹ค ๋Š๋ฆฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋Š” ์œ„์—์„œ ์„ค๋ช…ํ•œ i3.8xlarge ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

workerCount๊ฐ€ 8(๊ธฐ๋ณธ๊ฐ’)์ธ ๊ฒฝ์šฐ ์ž˜๋ชป๋œ ๋ถ„๊ธฐ๊ฐ€ 86mbit/sec๋กœ ๋ณต์›๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

workerCount๊ฐ€ 32๋กœ ์ฆ๊ฐ€ํ•˜๋ฉด ํ‰๊ท  160mbit/sec๋กœ ์กฐ๊ธˆ ๋” ๋‚˜์•„์กŒ์Šต๋‹ˆ๋‹ค.

์ด ๋ถ„๊ธฐ์˜ CPU ์‚ฌ์šฉ๋ฅ ์€ ๋งˆ์Šคํ„ฐ๋ณด๋‹ค ํ›จ์”ฌ ๋†’์ง€๋งŒ ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์ธ์Šคํ„ด์Šค CPU๋ฅผ ์ตœ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผํ™”์— ๋”ฐ๋ฅด๋ฉด ๋ณต์› โ€‹โ€‹UI๋Š” ๋งˆ์น˜ ์–ด๋”˜๊ฐ€์—์„œ ์ž ๊ธˆ์„ ๋†“๊ณ  ๊ฒฝ์Ÿํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฌด์–ธ๊ฐ€๊ฐ€ "๊ณ ์ •"๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ, ํ”„๋กœํŒŒ์ผ๋ง ๋˜๋Š” ๋ณต์ œํ•  ํ…Œ์ŠคํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

ํ™•์ธ์„ ์œ„ํ•ด ๋ณต์›์ž ๋ฐ s3 ๋ฐฑ์—”๋“œ ์ž‘์—…์ž ์ˆ˜๋ฅผ ๋ชจ๋‘ 32๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

๊ด€์ฐฐํ•œ ํ–‰๋™์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ:

  • ๊ฐœ๋ณ„ ํŒŒ์ผ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๋Š” ์—ฌ์ „ํžˆ ์ง๋ ฌํ™”๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋น ๋ฅธ ๋Œ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  _์ถ”์ธก_ํ–ˆ์ง€๋งŒ ๊ฒฐ์ฝ” ์ธก์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๊ฐ BLOB ์ฃผ๋ณ€์˜ ํŒŒ์ผ ์—ด๊ธฐ/๋‹ซ๊ธฐ๋Š” ํ™•์‹คํžˆ ๋ณต์›๊ธฐ ์˜ค๋ฒ„ํ—ค๋“œ์— ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค. macos์—์„œ ์ด๊ฒƒ์„ ์ธก์ •ํ–ˆ์„ ๋•Œ ~70์ดˆ ๋™์•ˆ "ํŒŒ์ผ ์—ด๊ธฐ, 1๋ฐ”์ดํŠธ ์“ฐ๊ธฐ, ํŒŒ์ผ ๋‹ซ๊ธฐ"๋ฅผ 100,000๋ฒˆ ํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ, ์ด๋Š” 100,000 blob์„ ์“ฐ๋Š” ์˜ค๋ฒ„ํ—ค๋“œ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” ์ •๋ง ๊ฐ„๋‹จํ–ˆ๊ณ  ์‹ค์ œ ์˜ค๋ฒ„ํ—ค๋“œ๋Š” ํ›จ์”ฌ ๋” ๋†’์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๋†’์€ CPU ์‚ฌ์šฉ๋ฅ ์— ๋Œ€ํ•œ ๊ทธ๋Ÿด๋“ฏํ•œ ์„ค๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๋น„์ˆœ์ฐจ ๊ตฌํ˜„์€ ๊ฐ blob์„ ํ•œ ๋ฒˆ๋งŒ ํ•ด๋…ํ•˜๋ฉฐ(๋งˆ์Šคํ„ฐ๋Š” ๊ฐ ๋Œ€์ƒ ํŒŒ์ผ์— ๋Œ€ํ•ด blob ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•จ) ๋งˆ์Šคํ„ฐ์— ๋น„ํ•ด ๋ถ€๊ธฐ๊ฐ€ ํ›จ์”ฌ ์ ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ "ํฌ๋ฐ•ํ•œ" ํŒŒ์ผ ์“ฐ๊ธฐ๋Š” ์‹ค์ œ๋กœ ํฌ๋ฐ•ํ•˜์ง€ ์•Š๊ณ  Go ๋˜๋Š” OS๊ฐ€ CPU๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด.

์ด๋ด ๊ฑฐ๊ธฐ!

์ข‹์•„์š”. workerCount๋Š” internal/restorer/filerestorer.go์—์„œ 8 ๋˜๋Š” 32๋กœ ์„ค์ •๋˜์—ˆ๊ณ  -o s3.connections=32๋Š” ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ restic cli๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋œ ๋ถ„๊ธฐ๊ฐ€ 8๋ช…์˜ ์ž‘์—…์ž๋กœ ํŒŒ์ผ์„ ๋ณต์›ํ•˜๋Š” ๋™์•ˆ ์ถ”์  ๋ฐ์ดํ„ฐ์˜ ์ตœ์ƒ์œ„ ๋ณด๊ธฐ์ž…๋‹ˆ๋‹ค.

์ž‘์—…์ž๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ƒ๋‹นํ•œ(>500-1000ms) ์ผ์‹œ ์ค‘์ง€๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
screen shot 2018-12-03 at 9 50 05 am

๋‚˜๋Š” ์ด๊ฒƒ์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๊ณ  4KiB ๋ธ”๋ก์—์„œ 10GiB ์ž„์˜ ๋ฐ”์ดํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋…๋ฆฝํ˜• ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชฉํ‘œ๋Š” ๋‚ด ์‹œ์Šคํ…œ์ด ๋ฐ”์ดํŠธ๋ฅผ ์ด๋™ํ•˜๋Š” ์†๋„๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋†€๋ž๊ฒŒ๋„ ์ด ํ…Œ์ŠคํŠธ๋Š” ๋‚ด macbook pro(2018, 2.6GHz Intel Core i7)์—์„œ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 18.64์ดˆ๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ~4.29 Gigabits/s ๋˜๋Š” 10G ์ด๋”๋„ท์ด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์˜ ์•ฝ ์ ˆ๋ฐ˜์œผ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์•”ํ˜ธํ™”๋‚˜ ๋„คํŠธ ๋˜๋Š” ๋””์Šคํฌ I/O๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” Xoshiro256** prng๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. math/rand ๋Š” ์•ฝ 2๋ฐฐ ๋” ๋Š๋ ธ์œผ๋ฉฐ, ์ด๋Š” ๋ฌผ๋ก  ์š”์ ์—์„œ ์™„์ „ํžˆ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์š”์ ์€ ๋ณต์› ํ”„๋กœ๊ทธ๋žจ์ด 10G ๋„คํŠธ์›Œํฌ๋ฅผ ํฌํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ์—์„œ Blob์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ net i/o ์ž์ฒด๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์žฌ๋ฏธ๋ฅผ ์œ„ํ•ด ๋น„๊ต ๊ฐ€๋Šฅํ•œ Rust impl์€ 3.1์ดˆ ๋งŒ์— 10GiB์˜ ์ž„์˜ ๋ฐ”์ดํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Java๋Š” 10.77์ดˆ ๋งŒ์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์„ ์ด๋™ :-)

ํฅ๋ฏธ๋กœ์šด ํ…Œ์ŠคํŠธ!

๋‚˜๋Š” restic์ด ํ˜„์žฌ ๊ฐ€์žฅ ํฐ ํŒŒ์ผ์„ ๋ณต์›ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์†๋„๊ฐ€ ์ œํ•œ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ์€ restic์ด ์—ฌ๊ธฐ์—์„œ ๋ณด๋Š” 160mbit/sec๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ๋‹จ์ผ ํŒŒ์ผ์„ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ์™€ ์ด ๋ถ„๊ธฐ์—์„œ ํ˜„์žฌ ์ตœ์ƒ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋น ๋ฅธ SSD์™€ S3์— 10MB ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋œ 100GB ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋ช‡ ๊ฐ€์ง€ ์ˆซ์ž๋ฅผ ์‹คํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์ž ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๋Š๋ฆฐ ๋ณต์› ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ๋“  ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค... ์ด ๋ถ€๋ถ„์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ…Œ์ŠคํŠธ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”!

๊ฐ์‚ฌ ํ•ด์š”!

@robvalca ์–ด๋–ค ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? rclone ์ด ์ €์žฅ์†Œ๋ฅผ ๋Œ€์ƒ ์‹œ์Šคํ…œ์— ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ๋ณต์‚ฌํ•ฉ๋‹ˆ๊นŒ? ์ •์ง€ ๋ณต์› ์†๋„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ง€๊ธˆ ๋‹น์žฅ์€ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋กœ์ปฌ์—์„œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค("ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ"๋ž€ ๋ฐ์ดํ„ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค).

@ifedorenko ์šฐ๋ฆฌ๋Š” S3(ceph+radosgw)๋ฅผ ๋ฐฑ์—”๋“œ(์ €ํฌ๊ฐ€ ๊ด€๋ฆฌ)๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. rclone์„ ์‚ฌ์šฉํ•˜์—ฌ repo๋ฅผ ๋ณต์‚ฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

rclone ๋ณต์‚ฌ -P ์›๊ฒฉ:cboxback-aabbcc/ /var/tmp/restic/aabbcc/
์ „์†ก: 127.309G / 127.309GB, 100%, 45.419MBytes/s, ETA 0s
์˜ค๋ฅ˜: 0
ํ™•์ธ: 0 / 0, -
์ด์ „: 25435 / 25435, 100%
๊ฒฝ๊ณผ ์‹œ๊ฐ„: 47m50.2s

"stock" restic 0.9.4๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ repo๋ฅผ ๋ณต์›ํ•˜๋Š” ๋ฐ ~8์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ 32๊ฐœ์˜ S3 ์—ฐ๊ฒฐ๊ณผ ๋™์ผํ•œ ๋Œ€์ƒ ํ˜ธ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํฌ๋Ÿผ ์Šค๋ ˆ๋“œ ์— ์กฐ๊ธˆ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋„๋ก repo๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์ค€๋น„๊ฐ€๋˜๋ฉด ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
๋งŽ์€ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@robvalca ๋‚ด out-order-restore ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์›์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ถ„๊ธฐ๋Š” ๋งค์šฐ ํฐ ํŒŒ์ผ์˜ ๋ณต์› ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ๊ท€ํ•˜๊ฐ€ ์ง๋ฉดํ•œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ถ„๊ธฐ๊ฐ€ ๋ณต์› ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ณต๊ฐœ s3 ๋ฒ„ํ‚ท์— ์—…๋กœ๋“œํ•˜๊ณ  ์—ฌ๊ธฐ์— ๋ฒ„ํ‚ท ์ด๋ฆ„๊ณผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์•”ํ˜ธ๋ฅผ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค.

@pmkane ๋‹ค์ˆ˜์˜ ๋™์ผํ•˜๊ฑฐ๋‚˜ ๊ฑฐ์˜ ๋™์ผํ•œ ํŒŒ์ผ์„ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ๋…ธ๋™์ž๋“ค ์‚ฌ์ด์˜ ๋…ผ์Ÿ์„ ์„ค๋ช…ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘: ์‹ค์ œ๋กœ ์ตœ์‹  #2101์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์› ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋™์ผํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋™์‹œ ์“ฐ๊ธฐ ๋ฐ ์—ฌ๋Ÿฌ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋™์ผํ•œ Blob์„ ๋” ์ž˜ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@ifedorenko , ์ง€๊ธˆ์€ ์ฃผ๋ฌธ ์™ธ ๋ฒ„์ „์ด ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค! ๋‚ด๊ฐ€ rclone์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์— ๋” ๊ฐ€๊นŒ์šด 1์‹œ๊ฐ„๋„ ์ฑ„ ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ํ…Œ์ŠคํŠธ์—์„œ ์ถ”์ถœํ•˜์—ฌ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์„ค๋ช…(์ฒจ๋ถ€๋œ ํ”Œ๋กฏ๋„ ์ฐธ์กฐํ•˜์„ธ์š”!):

  • ์ •์ƒ์ ์ธ 0.9.4 ์—์„œ ํ”„๋กœ์„ธ์Šค๋Š” 200MB/sec ์ตœ๊ณ ์ ์œผ๋กœ ๋” ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘๋˜๋ฉฐ S3 ์ธก์—์„œ ์ดˆ๋‹น ๊ฑฐ์˜ 50 requests ์–ป์Šต๋‹ˆ๋‹ค. ๋ช‡ ๋ถ„ ํ›„์— ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋‚˜๋จธ์ง€ ํ”„๋กœ์„ธ์Šค ๋™์•ˆ ์š”์ฒญ์ด 1 ์ •๋„๋กœ ์ค„์–ด๋“ค๊ณ  ์†๋„๋Š” ~ 5MB/sec ์ž…๋‹ˆ๋‹ค.
  • "ooo" ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ์ „์†ก ์†๋„๋Š” 40MB/sec ๋ฐ ~ 8 S3 ์š”์ฒญ์ด ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ๋™์•ˆ ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.
  • ๋‚ด๊ฐ€ ์•Œ์•„์ฐจ๋ฆฐ ๋˜ ๋‹ค๋ฅธ ์‚ฌ์‹ค์€ S3 ์—ฐ๊ฒฐ์„ ๋Š˜๋ ค๋„ ๊ฑฐ์˜ ๊ฐœ์„ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ˆ์ƒ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

32๊ฐœ์˜ ์—ฐ๊ฒฐ:

Created 2197 directories, listed 171.141 GiB in 20930 files
Restored 171.136 GiB in 170258 files

real    57m54.588s
user    229m25.229s
sys 6m51.763s

64๊ฐœ ์—ฐ๊ฒฐ

real    53m13.876s
user    242m57.081s
sys 7m12.455s
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹ค๋ฅธ ์ €์žฅ์†Œ(51G, 1.3M ์ž‘์€ ํŒŒ์ผ, ๋งŽ์€ ์ค‘๋ณต)๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ 0.9.4๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค.

0.9.4

real    16m6.966s
user    25m4.116s
sys 4m19.424s

0.9.4-ooo:

real    8m14.375s
user    14m30.107s
sys 3m41.538s

๋”ฐ๋ผ์„œ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ๊ฐœ์„ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค!!

๊ทธ๋ฆฌ๊ณ  btw, ๋ณต์›์˜ ์ƒˆ๋กœ์šด ์ง„ํ–‰๋ฅ  ๋ณด๊ธฐ๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค!! 8)

๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

๊ฐ์‚ฌ ํ•ด์š”!

restic_restore_full

restic_restore_ooo

ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. @robvalca , ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋‚ด๊ฐ€ ์•Œ์•„์ฐจ๋ฆฐ ๋˜ ๋‹ค๋ฅธ ์‚ฌ์‹ค์€ S3 ์—ฐ๊ฒฐ์„ ๋Š˜๋ ค๋„ ๊ฑฐ์˜ ๊ฐœ์„ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ˆ์ƒ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ ๋ณต์› ์ž‘์—…์ž ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ ค๋ฉด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์žŠ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ 8๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/ifedorenko/restic/blob/099f51c01c189a84b96be86ce6be61a45e3705fc/internal/restorer/filerestorer.go#L22

๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

https://github.com/restic/restic/issues/2074#issuecomment -443759511์˜ ์•ž๋ถ€๋ถ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋œ ๋ณต์› ์ค‘์— ๋ช…๋ฐฑํ•œ ์ž‘์—…์ž ๊ฒฝํ•ฉ์„ ์ผ์œผํ‚ค๋Š” ์›์ธ์ด ๋ฌด์—‡์ธ์ง€ ์•„์ง ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์ด ํŠน์ • ์ปค๋ฐ‹์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
https://github.com/ifedorenko/restic/commit/d410668ce3a8c7284d86a2b06bf42a0e654d43bc? ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ฒฝํ•ฉ์„ ๊ด€์ฐฐํ•˜๋ฉด ์ด๋Š” pmkane์˜ ๋ฐ์ดํ„ฐ์—๋งŒ ๊ตญํ•œ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ตœ๊ทผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ๊ฒฝํ•ฉ์ด ์ˆ˜์ •๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋„์›€์„ ์ฃผ์…”์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„ -- ์—ฌ์ „ํžˆ ์ด๊ฒƒ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ ˆ๋Œ€์ ์œผ๋กœ ๋Šช์— ๋น ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋ง์— ํ™•์ธํ•˜๊ณ  ifedorenko@d410668๋กœ ๊ณ„์† ๋ฒˆ์‹ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

@ifedorenko ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 32๋ช…์˜ ์ž‘์—…์ž์™€ ํ•จ๊ป˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ 30๋ถ„์œผ๋กœ ํ›จ์”ฌ ๋นจ๋ผ์ ธ์„œ ์ข‹์€ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œworker/s3.connections๋ฅผ 64/64, 128/128๋กœ ๋Š˜๋ฆฌ๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ฑฐ์˜ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๊ฐœ์„  ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ํ˜„์žฌ ๊ฒฐ๊ณผ์— ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋‹น์‹ ์ด ๋‚˜๋ฅผ ๊ฐ€๋ฆฌํ‚จ https://github.com/ifedorenko/restic/commit/d410668 ๋ฒ„์ „์„ ์‹œ๋„ํ–ˆ๊ณ  ์—ฌ๊ธฐ์— ์ถ”์ ์˜ ์Šคํฌ๋ฆฐ์ƒท์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋„๊ตฌ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์ง€๋งŒ @pmkane ๊ฒฐ๊ณผ์™€ ๋น„์Šทํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 8๋ช…์˜ ์ž‘์—…์ž์™€ -o s3.connections=32

restic_trace

@robvalca ๊ทธ๋ž˜์„œ ifedorenko@d410668 ์€ ๋ ธ์ฃ  ? ์ด๊ฒƒ์€ ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@ifedorenko ์•„๋‹ˆ์š”, ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ˆ˜์˜ ์ž‘์—…์ž(8) ๋ฐ S3.connections(32)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ง€์ ์žฅ(์ˆœ์„œ ์—†์Œ)๊ณผ ์„ฑ๋Šฅ์ด ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ~55m๊ฐ€ ์†Œ์š”๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” rclone(~47m)์œผ๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ์‹œ๊ฐ„๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” ;)

์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์„ฑ๋Šฅ ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๋ณต์› ์„ฑ๋Šฅ์€ ํŠน์ • ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๋น„์„ ํ˜•์ ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด S3์—์„œ ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ 6๊ฐœ์˜ ํŒŒ์ผ์„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฐฑ์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ํฌ๊ธฐ๋Š” 1, 5, 10, 20, 40 ๋ฐ 80GB์˜€์Šต๋‹ˆ๋‹ค.

์ด์ „ ํ…Œ์ŠคํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ…Œ์ŠคํŠธ๋Š” i3.8xlarge ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰๋˜์—ˆ์œผ๋ฉฐ ๋น ๋ฅธ ์ŠคํŠธ๋ผ์ดํ”„ SSD์—์„œ ๋ฐฑ์—… ๋ฐ ๋ณต์›์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—… ์‹œ๊ฐ„์€ ์˜ˆ์ƒ๋Œ€๋กœ ์„ ํ˜•์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค(8, 25, 46, 92, 177, 345์ดˆ).

๊ทธ๋Ÿฌ๋‚˜ ๋ณต์› ์‹œ๊ฐ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

1GB, 5์ดˆ
5GB, 17์ดˆ
10GB, 33์ดˆ
20GB, 85์ดˆ
40GB, 256์ดˆ
80GB, 807s

๋”ฐ๋ผ์„œ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ๋ฐ ๋ณต์› ์„ฑ๋Šฅ์— ์ด์ƒํ•œ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„ํ‚ท์˜ ์ด๋ฆ„์€ pmk-large-restic-test์ด๊ณ  ๋ฒ„ํ‚ท๊ณผ ํ•ด๋‹น ์ฝ˜ํ…์ธ ๋Š” ๊ณต๊ฐœ๋ฉ๋‹ˆ๋‹ค. us-west-1์— ์žˆ๊ณ  ๋‚˜๋จธ์ง€ repo ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” password์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ์˜ ์Šค๋ƒ…์ƒท ID๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1GB: 0154ae25
5GB: 3013e883
10GB: 7463efa8
20GB: 292650c6
40GB: 5acb4bee
80GB: d1b7e323

๋‚ด๊ฐ€ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!

@pmkane https://github.com/ifedorenko/restic/tree/out-order-restore ๋ถ„๊ธฐ์˜ ์ตœ์‹  ํ—ค๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ?

๊ทธ๋ž˜, ๋‚ด๊ฐ€ ํ–ˆ์–ด. ์–ธ๊ธ‰ํ•˜์ง€ ๋ชปํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

(ead78b3์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์‹คํ–‰์—์„œ 32๊ฐœ์˜ ์ž‘์—…์ž์™€ 32๊ฐœ์˜ s3 ์—ฐ๊ฒฐ ์‚ฌ์šฉ)

ํ•ด๋‹น ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ด์ „์— ๊ณต๊ฐœ ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•œ ์ ์ด ์—†์œผ๋ฏ€๋กœ ๋‚ด๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๋‚ด ํŒ€์˜ ๋ฒ„ํ‚ท์— ์ž˜ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‚ด ์‹œ์Šคํ…œ์ด ์ผ๋ฐ˜์ ์œผ๋กœ s3์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)

@ifedorenko ์•ผ,

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐœ ๋ฒ„ํ‚ท ์ •์ฑ…์„ ์ ์šฉํ–ˆ์ง€๋งŒ ๋ฒ„ํ‚ท ์ž์ฒด์˜ ๊ฐ์ฒด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ–ˆ์œผ๋ฏ€๋กœ --no-lock์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ. ์ง€๊ธˆ ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋ฐค ๋‚˜์ค‘์— ๊ฐ€์ง€๊ณ  ๋†€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ๋„์›€์ด ๋˜๊ฑฐ๋‚˜ ๋” ์‰ฌ์šด ๊ฒฝ์šฐ ๋™์ผํ•œ ํŒŒ์ผ์„ ๊ณ ์† SSD์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ/์—์„œ ๋ณต์›ํ•  ๋•Œ ์œ ์‚ฌํ•œ ์„ฑ๋Šฅ ํŠน์„ฑ์„ ํ™•์ธํ•˜์—ฌ S3๋ฅผ ๋ฐฉ์ •์‹์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.

@pmkane ๋กœ์ปฌ์—์„œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ฒ„ํ‚ท์— ๋” ์ด์ƒ ์•ก์„ธ์Šคํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ์œ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@ifedorenko , ํ™˜์ƒ์ ์ž…๋‹ˆ๋‹ค. ๋ฒ„ํ‚ท์„ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@pmkane ์‹œ๊ฐ„์ด ์žˆ์„ ๋•Œ ์ตœ์‹  out-order-restore ๋ธŒ๋žœ์น˜๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ec2์—์„œ ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ์ง€๋งŒ ๋‚ด ๋งฅ๋ถ ๋ณต์›์€ ๋””์Šคํฌ ์“ฐ๊ธฐ ์†๋„์— ์˜ํ•ด ์ œํ•œ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ์ง€๊ธˆ์€ rclone๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

@ifedorenko , ๊ทธ๊ฒƒ์€ ๋งค์šฐ ์œ ๋งํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์‹œํ—˜์„ ์น˜๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ifedorenko , ๋น™๊ณ .

ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ํ˜ผํ•ฉ๋œ 133GB์— ํ•ด๋‹นํ•˜๋Š” Blob(์ตœ๋Œ€ ํฌ๊ธฐ๋Š” 78GB)์„ ๋‹จ 16๋ถ„ ๋งŒ์— ๋ณต์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ด ๋ณต์›์— ํ•˜๋ฃจ ์ค‘ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ restoreWorkers์˜ ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ๋…ธ๋Š” ๊ฒƒ์œผ๋กœ ์ด๊ฒƒ์„ ๋” ๋นจ๋ฆฌ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ํ˜„์žฌ๋กœ์„œ๋Š” ์ถฉ๋ถ„ํžˆ ๋น ๋ฆ…๋‹ˆ๋‹ค.

์ด ์ž‘์—…์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๊ทธ๋ฆฌ๊ณ  ํ›„์„ธ๋ฅผ ์œ„ํ•ด: ์šฐ๋ฆฌ์˜ ๋ณต์› ์„ฑ๋Šฅ์€ 8->16์—์„œ ๋‘ ๋ฐฐ, ๋‹ค์‹œ 16->32 ๋ณต์› ์ž‘์—…์ž์—์„œ ๋‘ ๋ฐฐ์ž…๋‹ˆ๋‹ค. 32->64๋Š” 32 ์œ„์— ~50% ๋ฒ”ํ”„์—๋งŒ ์ ํ•ฉํ•˜๋ฉฐ ์ด ์‹œ์ ์—์„œ ์•ฝ 3gbit/sec๋กœ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. rclone๊ณผ ๊ฑฐ์˜ ๋™๋“ฑํ•ฉ๋‹ˆ๋‹ค.

restic์—์„œ ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ์ถ”์ถœํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ตฌ์„ฑ์˜ ์–‘์„ ์ตœ์†Œํ™”ํ•˜๋ ค๋Š” ์š•๊ตฌ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ์ด๊ฒƒ์€ ํŠนํžˆ ํฐ ํŒŒ์ผ ์„ธํŠธ๋ฅผ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถฉ๋ถ„ํžˆ ํฐ ์ ํ”„์ด๋ฏ€๋กœ ๋‹ค์Œ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„์— ์ž‘์—…์ž ์ˆ˜

๋ณต์›์ด ์—ฌ์ „ํžˆ ์ตœ๋Œ€ ์œ ์„  ์†๋„๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋Š” ์ด์œ ๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต Blob ํ•ด์‹œ ๊ฒ€์‚ฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ฑ…์ž„์ด

์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ตœ์‹  pull request #2195๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์œผ๋ฉฐ ์„ฑ๋Šฅ์ด ๊ณ„์† ํ–ฅ์ƒ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

(20k ์ž‘์€ ํŒŒ์ผ, 2x70G ํŒŒ์ผ, ์ด 170G)

8w_32c

real    27m46.185s
user    24m31.290s
sys 3m55.153s

32w_32c

real    15m30.904s
user    24m1.982s
sys 4m55.128s

64w_32c

real    18m37.566s
user    23m33.684s
sys 5m3.024s

64w_64c

real    17m12.314s
user    23m44.318s
sys 4m43.090s

32w์—์„œ 64w๋กœ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์—ฌ๋Ÿฌ ๋ฒˆ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ํ•ฉ๋ฒ•์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค). ๊ทธ ๊ณผ์ •์—์„œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ช‡ ๊ฐœ ์ฒจ๋ถ€ํ–ˆ๋Š”๋ฐ, ์„ฑ๋Šฅ ์ €ํ•˜๋‚˜ ํ•œ๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ, ์ด ์ •๋„๋Š” ๋˜์–ด์•ผ ํ• ๊นŒ์š”? ์˜ˆ๋ฅผ ๋“ค์–ด 64๋ช…์˜ ์ž‘์—…์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค๋Š” 6gbit/sec์—์„œ ์‹œ์ž‘ํ•˜์ง€๋งŒ ๊ทธ ์ดํ›„์—๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ 1gbit/sec ๋ฏธ๋งŒ์œผ๋กœ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค(์ด๋Š” ํฐ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์— ํ•ด๋‹นํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค). ์ฒซ ๋ฒˆ์งธ ์Šคํฌ๋ฆฐ์ƒท์€ 32w, 32c์ด๊ณ  ๋‘ ๋ฒˆ์งธ ์Šคํฌ๋ฆฐ์ƒท์€ 64w, 32c์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ @pmkane์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์—์„œ ์ž‘์—…์ž ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์›ํ•˜๋ ค๋Š” ์žฌํ•ด ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™๋ฃŒ #2178์ด ์ด์— ๋Œ€ํ•œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ๊ฐœ์„ ๋œ ์ ์— ์ •๋ง ๊ฐ๋™ํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @ifedorenko

restic_restore_32w_32c

restic_restore_64w_32c

++. @ifedorenko์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฒŒ์ž„์„ ์™„์ „ํžˆ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋ณด๊ณ ์„œ @robvalca์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. AWS(๋˜๋Š” GCP ๋˜๋Š” Azure) ๋˜๋Š” ๋กœ์ปฌ์—์„œ ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ํ…Œ์ŠคํŠธ์—์„œ ํฐ ํŒŒ์ผ ๋ณต์› ์†๋„ ์ €ํ•˜๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ๊ณ  ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@pmkane ๋‚˜๋„ ๋Ÿฐํƒ€์ž„์— ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ œ์•ˆ์€ --option ์˜ต์…˜์„ ๋งŒ๋“ค์–ด ์ผ๋ฐ˜ ํ”Œ๋ž˜๊ทธ๋‚˜ ๋ช…๋ น์„ ์–ด์ง€๋Ÿฝํžˆ์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ํŠน์ดํ•œ ์ƒํ™ฉ์„ ์‹คํ—˜ํ•˜๊ฑฐ๋‚˜ ์กฐ์ •ํ•˜๋ ค๋Š” '๊ณ ๊ธ‰' ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œํ™”ํ•  ํ•„์š”๋„ ์—†์œผ๋ฉฐ --option experimental.fooCount=32 ์™€ ๊ฐ™์ด ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Œ์„ ๋ถ„๋ช…ํžˆ ํ•˜๋Š” ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @ifedorenko , s3.cern.ch/restic-testrepo ์ •ํฌ ๋ฐ์ดํ„ฐ๋กœ ๊ณต๊ฐœ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๊ฐ™์€ ๋ชจ์–‘์ด๋ฉฐ(๋งŽ์€ ์ž‘์€ ํŒŒ์ผ๊ณผ ๋ช‡ ๊ฐœ์˜ ๋งค์šฐ ํฐ ํŒŒ์ผ) ๋˜ํ•œ ์ด๊ฒƒ(์ฒจ๋ถ€๋œ ํ”Œ๋กฏ)์—์„œ ๋™์ผํ•œ ๋™์ž‘์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” restic ์ž…๋‹ˆ๋‹ค. ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

image

@robvalca ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. AWS(us-east-2, s3 repo, i3.4xlarge 2x nvme raid0 target)์—์„œ 32๋ช…์˜ ์ž‘์—…์ž์™€ 32๊ฐœ์˜ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•  ๋•Œ ์•ˆ์ •์ ์ธ 0.68GB/s์˜ ๋ณต์› ์†๋„๋ฅผ ๋ด…๋‹ˆ๋‹ค(์ด ๋ณต์› ์‹œ๊ฐ„ 6๋ถ„ 20์ดˆ). ๋Œ€์ƒ ์‹œ์Šคํ…œ์€ 10GB/s๋ฅผ ์˜ค๋žซ๋™์•ˆ ์œ ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ ์–ด๋„ ์ด ๋ฌธ์ œ๋ฅผ ์ถ”๊ฐ€๋กœ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋จผ์ € ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@pmkane ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ด€์ฐฐ์„ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ตœ์‹  out-of-order-restore-no-progress ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 0.68GB/s์˜ ๋ณต์› ์†๋„๋ฅผ ๋ณด๊ณ (๋ณต์›์€ CPU ๋ฐ”์šด๋“œ๋กœ ๋ณด์ž„), ์ค‘๋ณต Blob ํ•ด์‹œ ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด 0.81GB/s๋ฅผ ๋ด…๋‹ˆ๋‹ค(๋ณต์›์ด CPU๋กœ ๋ณด์ด์ง€ ์•Š์Œ). ๊ฒฝ๊ณ„). "์ตœ๋Œ€ 10Gbps" ๋„คํŠธ์›Œํฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋” ๋นจ๋ผ์งˆ ์ˆ˜ ์žˆ์„์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ "์ˆ˜์ต ๊ฐ์†Œ" ์˜์—ญ์— ๋งŽ์ด ์ง„์ž…ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@ifedorenko ๋‚˜๋Š” ์ง„์‹ฌ์œผ๋กœ ๋‹ค์‹œ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ต ๊ฐ์†Œ. ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์ถฉ๋ถ„ํžˆ ๋น ๋ฅธ ์†๋„์ž…๋‹ˆ๋‹ค.

@ifedorenko ํฅ๋ฏธ

๋ณ‘ํ•ฉ๋˜๋Š” ์ƒํƒœ๊ฐ€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. @cbane ์˜

๊ณง... ๐Ÿ‘€

#2195๊ฐ€ ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋‹ซ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ž์œ ๋กญ๊ฒŒ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ˜ธ์—์„œ ๋…ผ์˜๋œ ์œ ํ˜•์ด ์•„๋‹Œ ๊ฐœ์„ ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์—ฌ์ „ํžˆ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒˆ ํ˜ธ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰