Restic: SSHFS 파일 μ‹œμŠ€ν…œμ˜ 맀우 느린 λ°±μ—… -- inode 기반 비ꡐλ₯Ό κ±΄λ„ˆλ›Έ 수 μžˆλŠ” κΈ°λŠ₯ ν•„μš”

에 λ§Œλ“  2018λ…„ 02μ›” 19일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: restic/restic

restic version 좜λ ₯

0.8.2

당신은 μ •ν™•νžˆ μ–΄λ–»κ²Œ restic을 μ‹€ν–‰ ν–ˆμŠ΅λ‹ˆκΉŒ?

% restic -r /tmp/restictest backup $SSHFSMOUNT/directory

λ°±μ—… λ””λ ‰ν† λ¦¬λŠ” sshfs 마운트 파일 μ‹œμŠ€ν…œμž…λ‹ˆλ‹€.
이 λͺ…령은 μ—¬λŸ¬ μŠ€λƒ…μƒ·μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ 번 μ‹€ν–‰λ©λ‹ˆλ‹€.
mly의 경우 원격 디렉토리에 μ—„μ²­λ‚œ μ–‘μ˜ 데이터(1TB+)κ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ €μž₯μ†Œλ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ λ°±μ—”λ“œ/μ„œλ²„/μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ…¨μŠ΅λ‹ˆκΉŒ?

둜컬 ext4 파일 μ‹œμŠ€ν…œ.

μ˜ˆμƒλ˜λŠ” 행동

첫 번째 백업은 느리고 LAN을 톡해 λ§Žμ€ 데이터λ₯Ό μ „μ†‘ν•˜λŠ” 반면 λ‹€μŒ 백업은 맀우 λΉ λ₯΄κ³  λŒ€μ—­ν­μ„ 많이 μ‚¬μš©ν•˜μ§€ μ•Šμ„ κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€.

μ‹€μ œ 행동

파일이 λ³€κ²½λ˜μ§€ μ•Šμ€ κ²½μš°μ—λ„ λͺ¨λ“  λ°±μ—…μ—λŠ” λͺ‡ μ‹œκ°„(일이 μ•„λ‹Œ 경우)이 κ±Έλ¦½λ‹ˆλ‹€.

행동을 μž¬ν˜„ν•˜λŠ” 단계

  • 백업을 μ‹€ν–‰
  • sshfs 파일 μ‹œμŠ€ν…œ 마운트 ν•΄μ œ
  • sshfs 파일 μ‹œμŠ€ν…œ λ‹€μ‹œ 마운트
  • μƒˆ λ°±μ—… μ‹€ν–‰

100% μž¬ν˜„ν•  μˆ˜λŠ” μ—†μ§€λ§Œ 적은 μ–‘μ˜ λ°μ΄ν„°λ‘œλ„ μž¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SFTP μ„œλ²„ λ‘œκ·ΈλŠ” 파일이 λ³€κ²½λ˜μ§€ μ•Šμ€ κ²½μš°μ—λ„ 파일이 μ™„μ „νžˆ κ²€μƒ‰λ˜μ—ˆμŒμ„ λ³΄μ—¬μ€λ‹ˆλ‹€.

이 문제의 원인이 무엇인지 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ?

예: restic은 파일이 μˆ˜μ •λ˜μ—ˆλŠ”μ§€ μž¬ν™•μΈν•˜κΈ° μœ„ν•΄ inodeλ₯Ό λΉ„κ΅ν•©λ‹ˆλ‹€(디버그 λ©”μ‹œμ§€ "timestamp, size λ˜λŠ” inode 변경됨", restic/node.go:551restic.(*Node).IsNewer11node ).

κ·ΈλŸ¬λ‚˜ inodeλŠ” sshfs(및 일뢀 λ‹€λ₯Έ 파일 μ‹œμŠ€ν…œ)λ₯Ό μ‚¬μš©ν•˜μ—¬ 파일 μ‹œμŠ€ν…œ 마운트 간에 변경될 수 μžˆμŠ΅λ‹ˆλ‹€.

문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법에 λŒ€ν•œ 아이디어가 μžˆμŠ΅λ‹ˆκΉŒ?

inode 검사λ₯Ό 주석 μ²˜λ¦¬ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이 검사λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λŠ” 방법을 μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ λͺ…령쀄 ν”Œλž˜κ·Έ?

restic이 당신을 λ„μ™”κ±°λ‚˜ μ–΄λ–€ 식 μœΌλ‘œλ“  당신을 ν–‰λ³΅ν•˜κ²Œ ν–ˆμŠ΅λ‹ˆκΉŒ?

λ¬Όλ‘ , 그것은 쒋은 μ†Œν”„νŠΈμ›¨μ–΄μž…λ‹ˆλ‹€! ν•΄κ²° 방법을 찾은 μ΄ν›„λ‘œ λ”μš± κΈ°μ©λ‹ˆλ‹€...
쒋은 일을 κ³„μ†ν•˜μ‹­μ‹œμ˜€!

feature enhancement

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

보고해 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. 이것은 μ‹€μ œλ‘œ inodeλ₯Ό 기반으둜 파일이 λ³€κ²½λ˜μ—ˆμŒμ„ κ°μ§€ν•˜κΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€. ν“¨μ¦ˆ 기반 파일 μ‹œμŠ€ν…œμ˜ 경우 이 κ²€μ‚¬λŠ” 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€. λŒ€μ‹  νƒ€μž„μŠ€νƒ¬ν”„μ™€ 파일 크기만 검사해야 ν•©λ‹ˆλ‹€.

μ›μΉ™μ μœΌλ‘œ 이것은 (파일 μ‹œμŠ€ν…œ 이름을 보고 inode-unstable 파일 μ‹œμŠ€ν…œμ˜ λΈ”λž™λ¦¬μŠ€νŠΈλ₯Ό μœ μ§€ν•¨μœΌλ‘œμ¨) μžλ™μœΌλ‘œ 감지될 수 μžˆμœΌλ―€λ‘œ λͺ…령쀄 ν”Œλž˜κ·Έκ°€ ν•„μš”ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  4 λŒ“κΈ€

보고해 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. 이것은 μ‹€μ œλ‘œ inodeλ₯Ό 기반으둜 파일이 λ³€κ²½λ˜μ—ˆμŒμ„ κ°μ§€ν•˜κΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€. ν“¨μ¦ˆ 기반 파일 μ‹œμŠ€ν…œμ˜ 경우 이 κ²€μ‚¬λŠ” 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€. λŒ€μ‹  νƒ€μž„μŠ€νƒ¬ν”„μ™€ 파일 크기만 검사해야 ν•©λ‹ˆλ‹€.

μ›μΉ™μ μœΌλ‘œ 이것은 (파일 μ‹œμŠ€ν…œ 이름을 보고 inode-unstable 파일 μ‹œμŠ€ν…œμ˜ λΈ”λž™λ¦¬μŠ€νŠΈλ₯Ό μœ μ§€ν•¨μœΌλ‘œμ¨) μžλ™μœΌλ‘œ 감지될 수 μžˆμœΌλ―€λ‘œ λͺ…령쀄 ν”Œλž˜κ·Έκ°€ ν•„μš”ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μ›μΉ™μ μœΌλ‘œ 이것은 (파일 μ‹œμŠ€ν…œ 이름을 보고 inode-unstable 파일 μ‹œμŠ€ν…œμ˜ λΈ”λž™λ¦¬μŠ€νŠΈλ₯Ό μœ μ§€ν•¨μœΌλ‘œμ¨) μžλ™μœΌλ‘œ 감지될 수 μžˆμœΌλ―€λ‘œ λͺ…령쀄 ν”Œλž˜κ·Έκ°€ ν•„μš”ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

당신은 이것을 μ–΄λ–»κ²Œ μƒμƒν•©λ‹ˆκΉŒ? ν•΄λ³Ό 수 μžˆμ—ˆλŠ”λ°...

2205κ°€ λ³‘ν•©λ˜μ—ˆκ³  0.9.5 에 μžˆμŠ΅λ‹ˆλ‹€. 이것은 λ‹«μ•„μ•Ό ν•©λ‹ˆλ‹€. :λˆˆμ§“:

당신이 λ§žμŠ΅λ‹ˆλ‹€, 힌트 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰