рдЪреЗрддрд╛рд╡рдиреА: рдпрд╣ рд▓реЗрдЦ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕рднреА рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп рд░рд┐рдлреНрд▓рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓, рдпреЗ рд╣реИрдВ: BTRFS, XFS рдФрд░ OCFS2ред
рдХреГрдкрдпрд╛ рдЙрди рд╣реЛрд▓реАрд╡рд░реЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ FS рдмреЗрд╣рддрд░ рд╣реИ: Btrfs, XFS, Reiser4, NILFS2, ZFS рдпрд╛ рдХреБрдЫ рдЕрд╕рдВрдмрджреНрдзредрдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
- 21 рдЬреБрд▓рд╛рдИ, 2001 - рдиреЗрдореНрд╕рд┐рд╕ рдиреЗ Reiser4 рдХреА рдШреЛрд╖рдгрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреАред DARPA рд╡рд┐рдХрд╛рд╕ рдХреЛ рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред
- 20 рдирд╡рдВрдмрд░, 2003 - рдиреЗрдореНрд╕ рдиреЗ рдХреБрдЫ Reiser4 рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдПред
- 24 рдЕрдЧрд╕реНрдд, 2004 - рдиреЗрдореНрд╕рд┐рд╕ Reiser4 рдХреА рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рддрд╛ рд╣реИ ред
- 14 рд╕рд┐рддрдВрдмрд░, 2004 - рдЬреЗрдбрдПрдлрдПрд╕ рдШреЛрд╖рдгрд╛ред
- 16 рдирд╡рдВрдмрд░, 2005 - ZFS OpenSolaris build 27 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
- рд╕рд┐рддрдВрдмрд░ 2006 - рд╣рдВрд╕ рд░реАрдЬрд╝рд░ рдХреЛ рдкрддреНрдиреА рдиреАрдирд╛ рд░реЗрдЬрд╝рд░ рдХреА рд╣рддреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЧрд┐рд░рдлреНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдиреЗрдореЗрд╕ рдХреЗ рдЕрдВрдд рдХреА рд╢реБрд░реБрдЖрдд
- 12 рдЬреВрди, 2007 - рдХреНрд░рд┐рд╕ рдореЗрд╕рди (рдкреВрд░реНрд╡ рдирд╛рдо рдХрд░реНрдордЪрд╛рд░реА) рджреНрд╡рд╛рд░рд╛ Btrfs рдШреЛрд╖рдгрд╛ ред
- 22 рд╕рд┐рддрдВрдмрд░, 2011 - ZFSonLinux рдореЗрдВ рд░рд┐рдлреНрд▓рд┐рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд┐рдХрдЯ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
- 2012 - Btrfs рдХреЛ рд╕реНрдерд┐рд░ рдУрд░реЗрдХрд▓ рд▓рд┐рдирдХреНрд╕ рдФрд░ рдПрд╕рдпреВрдПрд╕рдИ рд▓рд┐рдирдХреНрд╕ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдорд┐рд▓реА
- 21 рдЬрдирд╡рд░реА, 2013 - рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ Btrfs рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рд▓реЗрдмрд▓ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред
- рдордИ 2019 - рдЖрд░рдПрдЪрдИрдПрд▓ 8 рд╕реЗ рд╣рдЯрд╛рдП рдЧрдП Btrfs (рдУрд░реЗрдХрд▓ рджреНрд╡рд╛рд░рд╛ рдкрджреЛрдиреНрдирдд Btrfs рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд┐рдЧреНрдз рд░рд╛рдЬрдиреАрддрд┐рдХ рдХрд╛рд░рдг)
CoW рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЙрдкреА рдПрдХреНрд╕рдкреЗрдХреНрдЯреЗрд╢рдВрд╕
рдЬрдм 2001 рдореЗрдВ Reiser4 рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ, рддреЛ рдореИрдВ Copy-on-Write рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░реЗрд░рд┐рдд рдФрд░ рднрд╛рд╡реБрдХ рдерд╛ред рдЬрд░рд╛ рд╕реЛрдЪрд┐рдП, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрд┐рддрдиреА рдЪрд╛рд╣реЗрдВ рдЙрддрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдХрдИ рдкреНрд░рддрд┐рдпрд╛рдБ рдЕрдкрдиреЗ рдкрд╛рд╕ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдбрд┐рд╕реНрдХ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧреА!
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрдкреА рдХреА рдЧрддрд┐ рдХреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдирдХрд▓ рдХрд░рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рдкреБрд░рд╛рдиреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕реА рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдмрджрд▓реЗ рд╣реБрдП рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреНрд╖реЗрддреНрд░ рд╣реЛрдВрдЧреЗ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рддрдм рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЦрд╛рддреЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рдордмрд╛рдг рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЕрдм рдпрд╣ рд╣рд▓реНрдХреЗ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдо рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╕реНрдерд╛рди рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЙрд╕реА рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдВрд╕ рд░рд┐рдЬрд╝рд░ рдиреЗ рдЫрдд рдкрд░ рдЬрд╛рдХрд░ рдЕрдкрдиреА рдкрддреНрдиреА рдХреЛ рдорд╛рд░ рдбрд╛рд▓рд╛, рдФрд░ рдЙрд╕рдХреЗ рджрд┐рдорд╛рдЧ рдХреА рдЙрдкрдЬ (рд░рд╛рдЬрдиреАрддрд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛) рдХреЛ рдХреЛрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдм рдХреЗ рдмрд╛рдж, рдХрд╣рд╛рдиреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрдХреНрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ?
ZFS рдХреЛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЬреЗрдбрдПрдлрдПрд╕ рдХреА рд╢реБрд░реВрдЖрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдзреАрдореА рд╣реЛ рдЧрдИ рдереАред
рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВ Btrfs рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рд▓рдЧрд╛ред рдФрд░ рдШреЛрд╖рдгрд╛ рдХреЗ рдХреЗрд╡рд▓ 6 рд╕рд╛рд▓ рдмрд╛рдж, рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд┐рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЧрдпрд╛ рдерд╛ред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЧрд╛рдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд▓рд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрдкреА-рдСрди-рд░рд╛рдЗрдЯ рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╡рд┐рдЦрдВрдбрди, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдИ рдЬрдЧрд╣ рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдПрдЪрдбреАрдбреА рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЦрдВрдбрди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реАрдб рд╣реЗрдб рдХреЗ рдмреНрд▓реЙрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рд▓рдВрдмрд╛ рдСрдкрд░реЗрд╢рди рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдорд╢реАрдиреЛрдВ рдкрд░ btrfs рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рддрдм рддрдХ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬрдм рддрдХ рдХрд┐ рд╡реЗ SSD рдкрд░ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рд╣реЛ рдЧрдПред
рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдПрд╕рдПрд╕рдбреА рднреА рд╡рд┐рдЦрдВрдбрди рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрд╕рдПрд╕рдбреА рдХреЗ рд▓рд┐рдП, рд░реИрдЦрд┐рдХ рд▓реЗрдЦрди / рд░реАрдб рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджрд╕ рдЧреБрдирд╛ рддреЗрдЬ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рдЦрдВрдбрд┐рдд SSD рдХрд╛ рдкреНрд░рджрд░реНрд╢рди HDD рдХреА рддрд░рд╣ рдирд╛рдЯрдХреАрдп рдирд╣реАрдВ рд╣реИред
рддреЛ, рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдм рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдЬрдм рдПрд╕рдПрд╕рдбреА рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛ рдЧрдП, рддреЛ рдореИрдВрдиреЗ рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрднрд╡рддрдГ рдФрд░ рдореБрдЦреНрдп рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Btrfs рдФрд░ Nilfs2ред
рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреА рд░реЛрдорд╛рдВрдЪрдХ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдорд╛рд╣рд┐рд░ рдХрд░рддреЗ рд╣реБрдП, рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдореИрдВ 2000 рдХреЗ рджрд╢рдХ рд╕реЗ рдЕрд▓реНрдЯреНрд░рд╛-рдлрд╛рд╕реНрдЯ рдлрд╛рдЗрд▓ рдХреЙрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреА рдЙрдореНрдореАрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ред
рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рдореЗрд░реА рдмрдбрд╝реА рдирд┐рд░рд╛рд╢рд╛ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирдХрд▓ рдХрд░рддреЗ рд╕рдордп рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рд╕реЗ рдХреЛрдИ рдЧрддрд┐ рдирд╣реАрдВ рдмрдврд╝реАред рдпрд╣рд╛рдБ рдПрдХ SATA SSD рдкрд░ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
time cp -a /usr /usr1 real 0m15,572s user 0m0,240s sys 0m4,739s
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
time cp -a --reflink=auto /usr /usr2 real 0m3,166s user 0m0,178s sys 0m2,891s
рдХреЗрд╡рд▓ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо 5 рдЧреБрдирд╛ рд▓рд╛рдн рджреЗрдЦрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдлрд╝рд╛рдЗрд▓ рдХреА рд▓рдВрдмрд╛рдИ рдмрдврд╝рдиреЗ рдХреЗ рд╕рд╛рде рд▓рд╛рдн рдХрд╛ рдЖрдХрд╛рд░ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рдмрдврд╝рддрд╛ рд╣реИред
/usr
рдлрд╝реЛрд▓реНрдбрд░ рдЬреЛ рдореИрдВрдиреЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдЫреЛрдЯреА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред
рдореИрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛ рдХрд┐ рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд╣ рдмрдирд╛рдИ рдЧрдИ рдереА!
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ Btrfs рдЕрдиреБрднрд╛рдЧ рдкрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп CoW рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдХрд┐ рд░рд┐рдлреНрд▓рд┐рдВрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдмрд┐рд▓реА?
рд╕рдорд╕реНрдпрд╛ рд╕реА.рдкреА. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп CoW рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ - рдореИрдВ cp рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╣реБрдб рдХреЗ рддрд╣рдд, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдЬрдм рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ cp
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рди рдХрд┐ рдЙрдирдХреА "рдмрд╛рдЗрдХ" рдХрд╛ред
Coreutils рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдРрд╕рд╛ рдЕрд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрдгрдп рдХреНрдпреЛрдВ рд▓рд┐рдпрд╛, рдЬреЛ CoW рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдлрд╛рдпрджреЛрдВ рдХрд╛ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкрд╛рд░ рдХрд░ рдЧрдпрд╛?
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ GNU Coreutils рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ P├бdraig рдмреНрд░реИрдбреА рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдЙрд╕рдХрд╛ рддрд░реНрдХ рд╣реИ :
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, cp CoW рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдирдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрджрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рд▓рдВрдм-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдмрд╛рдж рдореЗрдВ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдкреНрд░рдореБрдЦреЛрдВ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЕрдВрддрд░рд╛рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 8.24 рдХреЛрд░реБрдЯрд┐рд▓реНрд╕ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдПрдорд╡реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░рд┐рдлреНрд▓рд┐рди рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
P├бdraig рдмреНрд░реИрдбреА рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЙрддреНрддрд░ рдкрд╛рдардпрд╣ рдордЬрдмреВрддреА рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдбреЗрдЯрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдкреА рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рднреА рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рд╡рд┐рд▓рдВрдмрддрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдП рдХреЙрдкреА рд╕рдордп рдкрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рд░рд╛рдЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдпрд╛рдВрддреНрд░рд┐рдХ рдбрд┐рд╕реНрдХ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕рдВрднрд╡рддрдГ рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ coreutils рд╕реЗ v8.24 mv рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░реАрдлрд╝реНрд▓рд┐рдВрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдмрд╛рдзрд╛рдПрдБ рдирд╣реАрдВ рд╣реИрдВред
рдПрдорд╡реА рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рд┐рдВрдЧрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдПрдорд╡реА рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдлрд┐рд░, рд╕рд╡рд╛рд▓ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рд╡реНрдпрдХреНрддрд┐рддреНрд╡ рдХреЗ рдкреНрд░рднрд╛рд╡ рдкрд░ рдЙрдарддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЛрд░реНрд╕ рдХреЛрдб рдореЗрдВ рдХрдИ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдбрд╛рд▓рдХрд░, рдЖрдк рджрд╕рд┐рдпреЛрдВ / рдХрд░реЛрдбрд╝реЛрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдкреА рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЙрдирдХреЗ рдкрд╛рд╕ рдХрдВрдкреНрдпреВрдЯрд░ рди рд╣реЛ), рдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рджрдХреНрд╖рддрд╛ рдХрдо рдХрд░реЗрдВ рдФрд░ рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рдЙрдирдХреА рдмрд┐рдХреНрд░реА рдореЗрдВ рд╡реГрджреНрдзрд┐ред
рдкрдбрд░реИрдЧ рддрд░реНрдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧ
рдкрд╣рд▓рд╛ рддрд░реНрдХ рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЕрдиреБрднрд╡рд╣реАрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдореВрд▓реНрдпрд╡рд╛рди рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛ рддрд░реНрдХред рдпрджрд┐ рдЖрдк рдкрдбреНрд░реЗрдЧ рд╕реЗ рд▓реИрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рдХреА рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рджрд┐рдорд╛рдЧ рдерд╛, рдЬрд╣рд╛рдВ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рджреЗрд░реА рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирдП рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЬрди рдХрдирд┐рд╕ рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рджреВрд╕рд░рд╛ рддрд░реНрдХ рдЕрд╕реНрдерд┐рд░ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, CoW рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╕рдордп рджреЗрд░реА рдпрд╛ "рдЖрдЙрдЯ рдСрдлрд╝ рд╕реНрдкреЗрд╕" рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢реБрд░реВ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП CoW рдЕрдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / рдлрд╝рд╛рдЗрд▓ рдкрд░ CoW рдЕрдХреНрд╖рдо рдХрд░реЗрдВ:
chattr +C /dir/file chattr +C /dir/dir
рдиреЛрдбреЛрдбреИрдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИред рдпрд╣ рд╕рднреА рдирдИ рдмрдирд╛рдИ рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
- рдореВрд▓ рддрд░реАрдХрд╛ рдХреЛрд░реБрдЯрд┐рд▓реНрд╕ рдХреЛ рдкреИрдЪ рдХрд░рдирд╛ рд╣реИред рд╢рд╛рдпрдж рдЕрдкрдиреЗ рдирд┐рдЬреА рднрдВрдбрд╛рд░ рдореЗрдВ рдЕрдкрдирд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБред
рдкреИрдЪ cp.c рдлрд╝рд╛рдЗрд▓:
-x->reflink_mode = REFLINK_NEVER; +x->reflink_mode = REFLINK_AUTO;
- рдПрдХ рдХрдо рдХрдЯреНрдЯрд░рдкрдВрдереА рд╕рдорд╛рдзрд╛рди рдЕрдкрдиреЗ рдЦреЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реА.рдкреА. рдЙрдкрдирд╛рдо рд▓рд┐рдЦрдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреИрд╢ рдХреЗ рд▓рд┐рдП:
/etc/profile.d
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде cp_reflink.sh cp_reflink.sh
рдмрдирд╛рдПрдБ:
рдпрд╣ рд╕рдорд╛рдзрд╛рди рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм cp рдХреЛ рд╢реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирд╛рдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ / рдмрд┐рди / рд╕реАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдЙрдкрдирд╛рдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдирдХрд▓ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╣реЛрдЧреАред
рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдмрдВрдзрдХ рдФрд░ Reflink
31 рдЕрдХреНрдЯреВрдмрд░, 2019 рддрдХ рдХреА рд╕реНрдерд┐рддрд┐:
- рдордзреНрдпрд░рд╛рддреНрд░рд┐ рдХрдорд╛рдВрдбрд░ - рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
- рдХреНрд░реВрд╕реЗрдбрд░ - рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- рдбреЙрд▓реНрдлрд┐рди - рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- рдиреЙрдЯрд┐рд▓рд╕ - рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- рдирд┐рдореЛ - рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛, рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдФрд░ рд░реАрдлреНрд▓рд┐рдВрдХ
рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд░рд┐рдлреНрд▓рд┐рдВрдХ рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рд╣реИред
рд╕реА рдореЗрдВ, рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрднреА рднреА
рд▓реВрдк рдФрд░ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдкреА
рдХрд░рддреЗ рд╣реИрдВ ред
Sendfile рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ reflink рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
cp
FICLONE рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде
ioctl рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐
cp
рдХрд░рддрд╛ рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл
cp --reflink=auto
ред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдПрд╕рдПрд╕рдбреА рдХреЗ рдпреБрдЧ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╡реЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдиреЗ, рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╣рдо
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдХрдЯреМрддреА рдХрд░рддреЗ рд╣реИрдВред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХреЗрд╡рд▓ 3 рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ: BTRFS, XFS рдФрд░ OCFS2ред
рдореБрдЭреЗ рдкреВрд░реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ ZFS рдФрд░ NILFS2 рдореЗрдВ рд░рд┐рдлреНрд▓рд┐рдВрдХ рд╕рдкреЛрд░реНрдЯ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ CoW рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рднреА рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгреЛрдВ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╕рдордп CoW рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдпрд╛ рддреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдЪрд╛рд▓реЗрдВ рдЬреИрд╕реЗ рдЙрдкрдирд╛рдо рдпрд╛ рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред
Reiser4 рдХреА рдШреЛрд╖рдгрд╛ рдХреЛ 18 рд╕рд╛рд▓ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднреА рддрдХ рд▓рд╛рдЗрдЯрд╡реЗрдЯ CoW рдирдХрд▓ рд╣рд░ рдЬрдЧрд╣ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдкреАрдПрд╕ рдбреЛрдХрд░ рдФрд░ рд╕реАрдУрдбрдмреНрд▓реНрдпреВ
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ Docker рдЕрдкрдиреЗ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд▓рд┐рдП btrfs рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рдирд╣реАрдВ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рд╕реАрдУрдбрдмреНрд▓реНрдпреВ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдЖрд╕рд╛рди рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рдкреВрд░рдХ рд╣реИ рдЬрдм рд╡рд┐рднрд┐рдиреНрди рдЖрднрд╛рд╕реА рдорд╢реАрдиреЗрдВ рдПрдХ рд╣реА рдХрд░реНрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ OverlayFS рдФрд░ Aufs рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬреИрд╡рд┐рдХ рд╣реИ, рдЬреЛ COW рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдХрдиреАрдХреА рдмреИрд╕рд╛рдЦреА рд╣реИрдВред
Docker рдореЗрдВ Btrfs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
- рдбреЙрдХрд░ рдХреА рдПрдХ рддрд╛рдЬрд╛ (рдмрд┐рдирд╛ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ) рдХреА рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ, рдПрдХ рдЕрд▓рдЧ Btrfs рдорд╛рддреНрд░рд╛ рдХреЛ
/var/lib/docker
рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ - рдбреЙрдХрд░ рд▓реЙрдиреНрдЪ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ
Gentoo рдФрд░ рдЧрдгрдирд╛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣
/etc/conf.d/docker
DOCKER_OPTS="--storage-driver btrfs --data-root /var/lib/docker"
рдФрд░ рдпрд╣рд╛рдВ рд╕рднреА рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП
рдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢ рд╣реИ ред
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдЬреЛрдбрд╝
XFS рдФрд░ CoW
constb (
рд╕реНрд░реЛрдд ): XFS рдкрд░, CoW рднреА рд╣рдореЗрд╢рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ
mkfs.xfs -m reflink=1
рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрдорд┐рдд FS рдкрд░, рдЖрдк CoW рд╕рдорд░реНрдерди рдХреЛ "рд╕рдХреНрд╖рдо" рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕рд╛рде рд╣реА, рдХрд░реНрдиреЗрд▓ рдкрд░ 4.11 рддрдХ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ dmesg рдореЗрдВ рд▓рд╛рд▓ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реИред
MacOS рдФрд░ CoW
MMik (
рд╕реНрд░реЛрдд ): OS X рдореЗрдВ,
cp
рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рд╕рдорд╛рди рд╡рд┐рдХрд▓реНрдк
-c
ред
рдЗрд╕рдореЗрдВ рдкрд░рдорд╛рдгреБ рдкреНрд░рдгрд╛рд▓реА рдХреЙрд▓
clonefile()
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореВрд▓ рдХреЗ рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЧреБрдг рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд▓рд┐рд╕реНрдЯ (ACL) рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд╛рдореА рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдФрд░ рд╕реЗрдЯреНрдпреВрдб / рд╕реЗрдЯрдЧрд┐рдб рдмрд┐рдЯреНрд╕ рдХреЗ рд░реАрд╕реЗрдЯ рдХреЗ рд╕рд╛рдеред рдпрд╣ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (рд╡рд┐рд╢реЗрд╖рддрд╛ ATTR_VOL_CAPABILITIES, рдзреНрд╡рдЬ VOL_CAP_INT_CLONE) рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдУрдПрд╕ рдПрдХреНрд╕ 10.12 (рд╕рд┐рдПрд░рд╛) рдФрд░ рдХреЗрд╡рд▓
рдПрдкреАрдПрдлрдПрд╕ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░
рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж:
PPS рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЗрдВ рджреЗрдЦреА рдЧрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд░реНрдо рдмрдврд╝рд╛рддрд╛ рд╣реВрдВред
рдиреАрдЪреЗ рдХреЗ рдХреВрдкрди рдХреЗ рд╕рд╛рде
RUVDS рд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдордВрдЧрд╡рд╛рдХрд░ рдЖрдк CoW рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
