рдПрд▓рд╡реАрдПрдо рдФрд░ рдореИрддреНрд░рд┐рдпреЛрд╢реНрдХрд╛ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╛рдирддрд╛ рд╣реИ?

рдЧреБрдб рдбреЗ.
рдореИрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде md RAID + LVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ KVM рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХрд╛ рдЕрдкрдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ:

  • NVMe SSD рд╕реЗ md RAID 1 рдХрд╛ рдирд┐рд░реНрдорд╛рдгред
  • SATA SSD рдФрд░ рдирд┐рдпрдорд┐рдд рдбреНрд░рд╛рдЗрд╡ рд╕реЗ md RAID 6 рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдирд╛ред
  • SSD RAID 1/6 рдкрд░ рдЯреНрд░рд┐рдо/рдбрд┐рд╕реНрдХрд╛рд░реНрдб рдСрдкрд░реЗрд╢рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред
  • рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯ рдкрд░ рдмреВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп md RAID 1/6 рд╕рд░рдгреА рдмрдирд╛рдирд╛ред
  • BIOS рдореЗрдВ рдХреЛрдИ NVMe рд╕рдорд░реНрдерди рди рд╣реЛрдиреЗ рдкрд░ NVMe RAID 1 рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ред
  • LVM рдХреИрд╢ рдФрд░ LVM рдерд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
  • BTRFS рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рднреЗрдЬрдирд╛/рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред
  • рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рд╕реНрдЯрд╛рдЗрд▓ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдПрд▓рд╡реАрдПрдо рдерд┐рди рд╕реНрдиреИрдкрд╢реЙрдЯ рдФрд░ рдерд┐рди_рдбреЗрд▓реНрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдмрд┐рд▓реНрд▓реА рджреЗрдЦреЗрдВред

╨Ч╨░╤П╨▓╨╗╨╡╨╜╨╕╨╡

рд▓реЗрдЦрдХ рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рд╕рд╛рдордЧреНрд░реА/рдЙрджрд╛рд╣рд░рдг/рдХреЛрдб/рдЯрд┐рдкреНрд╕/рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рди рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИред рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдХрд░ рдпрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрддреЗ рд╣реИрдВред рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдХреБрд░рдХреБрд░рд╛-рддрд▓реЗ рд╣реБрдП NVMe SSDsред
  • рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдПрд╕рдПрд╕рдбреА рдбреНрд░рд╛рдЗрд╡ рдХреА рд╡рд┐рдлрд▓рддрд╛ред
  • рдмреИрдХрдЕрдк рдкреНрд░рддрд┐рдпреЛрдВ рд╕рд╣рд┐рдд рд╕рднреА рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд╕рднреА рдбреЗрдЯрд╛ рдХрд╛ рдкреВрд░реНрдг рдиреБрдХрд╕рд╛рдиред
  • рджреЛрд╖рдкреВрд░реНрдг рдХрдВрдкреНрдпреВрдЯрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░.
  • рд╕рдордп, рд╕реНрдирд╛рдпреБ рдФрд░ рдкреИрд╕рд╛ рдмрд░реНрдмрд╛рдж рдХрд┐рдпрд╛ред
  • рдХреЛрдИ рдЕрдиреНрдп рдкрд░рд┐рдгрд╛рдо рдЬреЛ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИрдВред

рд▓реЛрд╣рд╛

рдЙрдкрд▓рдмреНрдз рдереЗ:

Z2013 рдЪрд┐рдкрд╕реЗрдЯ рдХреЗ рд╕рд╛рде 87 рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛ рдорджрд░рдмреЛрд░реНрдб, рдЗрдВрдЯреЗрд▓ рдХреЛрд░ i7 / рд╣реИрд╕рд╡реЗрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рд╣реБрдЖред

  • рдкреНрд░реЛрд╕реЗрд╕рд░ 4 рдХреЛрд░, 8 рдзрд╛рдЧреЗ
  • 32 рдЬреАрдмреА рдбреАрдбреАрдЖрд░3 рд░реИрдо
  • 1 x 16 рдпрд╛ 2 x 8 PCIe 3.0
  • 1 рдПрдХреНрд╕ 4 + 1 рдПрдХреНрд╕ 1 рдкреАрд╕реАрдЖрдИрдИ 2.0
  • 6 x 6 рдЬреАрдмреАрдкреАрдПрд╕ SATA 3 рдХрдиреЗрдХреНрдЯрд░

SAS рдПрдбрд╛рдкреНрдЯрд░ LSI SAS9211-8I IT/HBA рдореЛрдб рдкрд░ рдлреНрд▓реИрд╢ рд╣реБрдЖред RAID-рд╕рдХреНрд╖рдо рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ HBA рдлрд╝рд░реНрдорд╡реЗрдпрд░ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  1. рдЖрдк рдЗрд╕ рдПрдбреЙрдкреНрдЯрд░ рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрдП рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдбреЙрдкреНрдЯрд░ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
  2. TRIM/Discard рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐... RAID рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдпреЗ рдХрдорд╛рдВрдб рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ HBA, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рдкрд░ рдХреМрди рд╕реЗ рдХрдорд╛рдВрдб рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ - рд▓реИрдкрдЯреЙрдк рдХреЗ рд▓рд┐рдП 8 рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ рдореЗрдВ 7 рдЯреАрдмреА рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдЪрдЬреАрдПрд╕рдЯреА рдЯреНрд░реИрд╡рд▓рд╕реНрдЯрд╛рд░ 1000рдХреЗ1 рдХреЗ 2.5 рдЯреБрдХрдбрд╝реЗред рдпреЗ рдбреНрд░рд╛рдЗрд╡ рдкрд╣рд▓реЗ RAID 6 рдРрд░реЗ рдореЗрдВ рдереЗред рдирдИ рд╡реНрдпрд╡рд╕реНрдерд╛ рдореЗрдВ рдЗрдирдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рд╣реЛрдЧрд╛ред рд╕реНрдерд╛рдиреАрдп рдмреИрдХрдЕрдк рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП.

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:

6 рдЯреБрдХрдбрд╝реЗ SATA SSD рдореЙрдбрд▓ рд╕реИрдорд╕рдВрдЧ 860 QVO 2TBред рдЗрди SSDs рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, SLC рдХреИрд╢ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдХрдо рдХреАрдордд рд╡рд╛рдВрдЫрд┐рдд рдереАред рддреНрдпрд╛рдЧ/рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЬрд┐рд╕реЗ dmesg рдореЗрдВ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ:

kernel: ata1.00: Enabling discard_zeroes_data

NVMe SSD рдореЙрдбрд▓ рд╕реИрдорд╕рдВрдЧ SSD 2 EVO 970GB рдХреЗ 500 рдЯреБрдХрдбрд╝реЗред

рдЗрди SSDs рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреА рдЧрддрд┐ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдХреНрд╖рдорддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдЙрдирдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рдПрдЯрд░. рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗред рдмрд┐рд▓реНрдХреБрд▓ред рдЕрдиреНрдпрдерд╛, рдкрд╣рд▓реЗ RAID рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЙрдиреНрд╣реЗрдВ рдХреБрд░рдХреБрд░рд╛ рд╣реЛрдиреЗ рддрдХ рднреВрдиреЗрдВред

8 x NVMe SSD рдХреЗ рд▓рд┐рдП StarTech PEX2M2E2 рдПрдбрд╛рдкреНрдЯрд░ PCIe 3.0 8x рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣, рдлрд┐рд░ рд╕реЗ, рд╕рд┐рд░реНрдл рдПрдХ рдПрдЪрдмреАрдП рд╣реИ, рд▓реЗрдХрд┐рди рдПрдирд╡реАрдПрдордИ рдХреЗ рд▓рд┐рдПред рдпрд╣ рд╕рд╕реНрддреЗ рдПрдбреЗрдкреНрдЯрд░ рд╕реЗ рдЗрд╕ рдорд╛рдпрдиреЗ рдореЗрдВ рднрд┐рдиреНрди рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд PCIe рд╕реНрд╡рд┐рдЪ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдорджрд░рдмреЛрд░реНрдб рд╕реЗ PCIe рджреНрд╡рд┐рднрд╛рдЬрди рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ PCIe рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдкреНрд░рд╛рдЪреАрди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рднрд▓реЗ рд╣реА рдпрд╣ X1 PCIe 1.0 рд╕реНрд▓реЙрдЯ рд╣реЛред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЙрдЪрд┐рдд рдЧрддрд┐ рд╕реЗред рд╡рд╣рд╛рдВ рдХреЛрдИ рдЫрд╛рдкреЗрдорд╛рд░реА рдирд╣реАрдВ рд╣реЛрддреА. рдмреЛрд░реНрдб рдкрд░ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд BIOS рдирд╣реАрдВ рд╣реИред рддреЛ, рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ NVMe рдХреЗ рд╕рд╛рде рдмреВрдЯ рдХрд░рдирд╛ рдирд╣реАрдВ рд╕реАрдЦреЗрдЧрд╛, рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП NVMe RAID рддреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╕реАрдЦреЗрдЧрд╛ред

рдпрд╣ рдШрдЯрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореБрдлрд╝реНрдд 8x PCIe 3.0 рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдерд╛, рдФрд░, рдпрджрд┐ 2 рдореБрдлрд╝реНрдд рд╕реНрд▓реЙрдЯ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЛ рдкреИрд╕реЗ рд╡рд╛рд▓реЗ PEX4M2E1 рдпрд╛ рдПрдирд╛рд▓реЙрдЧреНрд╕ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ 600 рдХреА рдХреАрдордд рдкрд░ рдХрд╣реАрдВ рднреА рдЦрд░реАрджрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░реВрдмрд▓.

рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЪрд┐рдкрд╕реЗрдЯ/BIOS RAID рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреА рдЧрдИ рдереА, рддрд╛рдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдП, SSD/HDD рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рддрд╛рдХрд┐ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП/рдЕрд▓рдЧ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдЬрд╛рддреЗ рд╕рдордп рд╕реНрдерд╛рдкрд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рднреА рд╕рд╣реЗрдЬ рд╕рдХреЗрдВред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ SATA рдФрд░ PCIe рдкреЛрд░реНрдЯ рд╣реИрдВред рдпрд╣ рдПрдХ рд▓рд╛рдЗрд╡ рд╕реАрдбреА рдпрд╛ рдмреВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреА рддрд░рд╣ рд╣реИ, рдХреЗрд╡рд▓ рдмрд╣реБрдд рддреЗрдЬрд╝ рдФрд░ рдереЛрдбрд╝рд╛ рднрд╛рд░реАред

рд╣рд╛рд╕реНрдпрдЕрдиреНрдпрдерд╛, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ - рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рддрддреНрдХрд╛рд▓ рд╕рдВрдкреВрд░реНрдг рд╕рд░рдгреА рдЕрдкрдиреЗ рд╕рд╛рде рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдбреЗрдЯрд╛ рдЦреЛрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдореАрдбрд┐рдпрд╛ рдорд╛рдирдХ рдХреЗрд╕ рдХреЗ 5.25 рдмреЗ рдореЗрдВ рд╕реНрд▓рд╛рдЗрдб рдкрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рд╕реНрдерд┐рдд рд╣реИрдВред

рдЦреИрд░, рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдПрд╕рдПрд╕рдбреА рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЫрд╛рдкреЗ рдЙрдмрд╛рдК рд╣реИрдВ. рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВред рдпрд╣ рдпрд╛ рддреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ mdadm рдХреЗ рд╕рд╛рде рд╣рдореЗрд╢рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВред

рдореБрд▓рд╛рдпрдо

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдмрд┐рдпрди 8 рдЬреЗрд╕реА рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдИрдУрдПрд▓ рдХреЗ рдХрд░реАрдм рд╣реИред RAID 6 рдХреЛ LVM рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗ рдЧрдП рдЙрдкрд░реНрдпреБрдХреНрдд HDD рд╕реЗ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ kvm/libvirt рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ рдЪрд▓рд╛рддрд╛ рдерд╛ред

рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрдЦрдХ рдХреЗ рдкрд╛рд╕ рдкреЛрд░реНрдЯреЗрдмрд▓ рдмреВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп SATA/NVMe рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдмрдирд╛рдиреЗ рдХрд╛ рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрднрд╡ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА, рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреБрдХреНрдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рди рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, Ubuntu 18.04 рдХреЛ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА 3 рд╕рд╛рд▓ рдХрд╛ рд╣реИ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдорд░реНрдерди.

рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡реЗ рд╕рднреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбреНрд░рд╛рдЗрд╡рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕реНрдерд╛рдкрдирд╛ рдХреА рддреИрдпрд╛рд░реА

рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдмрдВрдЯреВ рдбреЗрд╕реНрдХрдЯреЙрдк рдЗрдореЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЬреЛрд░рджрд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЕрддреНрдпрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпреВрдИрдПрдлрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рднрд╛рдЬрди рдХреЛ рдХрд┐рд╕реА рдПрдХ рдбрд┐рд╕реНрдХ рдкрд░ рдзрдХреЗрд▓ рдХрд░ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рд╛рд░реА рд╕реБрдВрджрд░рддрд╛ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддреА рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рдХреЗрд╡рд▓ рдпреВрдИрдПрдлрдЖрдИ рдореЛрдб рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рджреЗрддрд╛.

рд╣рдо рдЗрд╕рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реИрдВ.

рдХреНрдпреЛрдВ?рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, UEFI рдмреВрдЯ рдмреВрдЯ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ RAID рдХреЗ рд╕рд╛рде рдмреЗрд╣рдж рдЦрд░рд╛рдм рд╕рдВрдЧрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐... рдХреЛрдИ рднреА рд╣рдореЗрдВ рдпреВрдИрдПрдлрдЖрдИ рдИрдПрд╕рдкреА рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдСрдирд▓рд╛рдЗрди рдРрд╕реЗ рдиреБрд╕реНрдЦреЗ рд╣реИрдВ рдЬреЛ рдИрдПрд╕рдкреА рд╡рд┐рднрд╛рдЬрди рдХреЛ рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯ рдореЗрдВ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд░рдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдмрд┐рдВрджреБ рд╣реИред рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг 1 рдХреЗ рд╕рд╛рде рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ mdadm RAID 0.9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдВрдЬрди рд╣реИрдВ рдЬреЛ UEFI BIOS рдХреЛ рдЗрд╕ рд╡рд┐рднрд╛рдЬрди рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕ рд╕реБрдЦрдж рдХреНрд╖рдг рддрдХ рд░рд╣рддрд╛ рд╣реИ рдЬрдм BIOS рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ OS ESP рдХреЛ рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИ рджрд░реНрдкрдг.

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреВрдИрдПрдлрдЖрдИ рдмреВрдЯ рдПрдирд╡реАрдЖрд░рдПрдПрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рде рдирдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдорджрд░рдмреЛрд░реНрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ.

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдирдпреЗ рдкрд╣рд┐рдпреЗ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░, рд╕рдордп-рдкрд░реАрдХреНрд╖рдгрд┐рдд рджрд╛рджрд╛рдЬреА рдХреА рдмрд╛рдЗрдХ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдм рд▓рд┐рдЧреЗрд╕реА/рдмреАрдЖрдИрдУрдПрд╕ рдмреВрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпреВрдИрдПрдлрдЖрдИ-рд╕рдВрдЧрдд рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реАрдПрд╕рдПрдо рдХрд╛ рдЧреМрд░рд╡рдкреВрд░реНрдг рдирд╛рдо рд░рдЦрддреА рд╣реИред рд╣рдо рдмрд╕ рдЗрд╕реЗ рд╢реЗрд▓реНрдл рд╕реЗ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ, рдЗрд╕реЗ рдЪрд┐рдХрдирд╛ рдХрд░ рджреЗрдВрдЧреЗ, рдЯрд╛рдпрд░реЛрдВ рдХреЛ рдкрдВрдк рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдПрдХ рдирдо рдХрдкрдбрд╝реЗ рд╕реЗ рдкреЛрдВрдЫ рджреЗрдВрдЧреЗред

рдЙрдмрдВрдЯреВ рдХрд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рдВрд╕реНрдХрд░рдг рднреА рд▓рд┐рдЧреЗрд╕реА рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЙрдмрдВрдЯреВ рд▓рд╛рдЗрд╡ рдмреВрдЯреЗрдмрд▓ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд╣ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдбреЗрд╕реНрдХрдЯреЙрдк рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ:

#sudo bash

рдХреИрд╕реЗтАж?рдЙрдкрд░реЛрдХреНрдд рдкрдВрдХреНрддрд┐ рд╕реБрдбреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрд▓реАрд╡рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╣рд┐рдд рдЯреНрд░рд┐рдЧрд░ рд╣реИред рд╕реА рдмреА╨╛рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рдЖрддреЗ рд╣реИрдВ рдФрд░╨╛рдЕрдзрд┐рдХ рдЬрд┐рдореНрдореЗрджрд╛рд░реА. рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдКрдкрд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕реВрдбреЛ рдХрд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрдо рд╕реЗ рдХрдо рд╕рд╛рд╡рдзрд╛рди рдирд╣реАрдВ рд╣реИред рддрдерд╛рдкрд┐:

#apt-get install mdadm lvm2 thin-provisioning-tools btrfs-tools util-linux lsscsi nvme-cli mc

ZFS рдХреНрдпреЛрдВ рдирд╣реАрдВ...?рдЬрдм рд╣рдо рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рдЗрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдзрд╛рд░ рджреЗрддреЗ рд╣реИрдВред
рдЬрдм рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХреЗ рдмрд░рд╛рдмрд░ рдЛрдг рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдХрд┐рд╕реА рджрд┐рди рдЪреБрдХрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, ZFS рдПрдХ рдлреЗрд░рд╛рд░реА рд╣реИ, рдФрд░ mdadm+lvm рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХреА рддрд░рд╣ рд╣реИред

рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд░реВрдк рд╕реЗ, рд▓реЗрдЦрдХ рдлреЗрд░рд╛рд░реА рдХреЗ рдмрдЬрд╛рдп рдЕрдЬреНрдЮрд╛рдд рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЙрдзрд╛рд░ рдкрд░ рдмрд╛рдЗрдХ рджреЗрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рдЗрд╢реНрдпреВ рдХреА рдХреАрдордд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╣реИ. рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ. рдпрд╛рддрд╛рдпрд╛рдд рдирд┐рдпрдореЛрдВ рд╕реЗ рднреА рд╕рд░рд▓. рдкрд╛рд░реНрдХрд┐рдВрдЧ рдирд┐рдГрд╢реБрд▓реНрдХ рд╣реИ. рдХреНрд░реЙрд╕-рдХрдВрдЯреНрд░реА рдХреНрд╖рдорддрд╛ рдмреЗрд╣рддрд░ рд╣реИ. рдЖрдк рд╣рдореЗрд╢рд╛ рд╕рд╛рдЗрдХрд┐рд▓ рдореЗрдВ рдкреИрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд╕рд╛рдЗрдХрд┐рд▓ рдХреА рдорд░рдореНрдордд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд┐рд░ рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рдХреНрдпреЛрдВ...?рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд▓рд┐рдЧреЗрд╕реА/BIOS GRUB рдЖрдЙрдЯ рдСрдлрд╝ рдж рдмреЙрдХреНрд╕ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реЛ, рдФрд░ рд╕рд╛рде рд╣реА рд▓рд╛рдЗрд╡ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реЛред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ /boot рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдЦрдХ рдЗрд╕ рдПрдлрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ / (рд░реВрдЯ) рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдирд╣реАрдВ рднреВрд▓рддрд╛ рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЖрдк рдПрд▓рд╡реАрдПрдо рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдЗрд╕ рдПрдлрдПрд╕ рдкрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХреЛрдИ рднреА рдЫрд╡рд┐ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рдПрдлрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЗрди рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рд╕реЗрдВрдб/рд░рд┐рд╕реАрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреИрдХрдЕрдк рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдЦрдХ рдЖрдо рддреМрд░ рдкрд░ рд╕реАрдзреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдиреНрдпреВрдирддрдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдИрдУрдПрдордПрдордпреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреАрдкреАрдпреВ рдФрд░ рдкреАрд╕реАрдЖрдИ-рдпреВрдПрд╕рдмреА рд╣реЛрд╕реНрдЯ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдХреЗрд╡реАрдПрдо рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг, рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдмреИрдХрдЕрдк рд╣реА рдмрдЪреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк ZFS рдкрд░ рдЕрдзрд┐рдХ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡реЗ рд╡рд┐рдирд┐рдореЗрдп рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓реЗрдЦрдХ рдЬрд╛рдирдмреВрдЭрдХрд░ ZFS, BRTFS рдФрд░ LVM рдореЗрдВ рдореМрдЬреВрдж рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдорд┐рд░рд░рд┐рдВрдЧ/RAID рдФрд░ рдЕрддрд┐рд░реЗрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓реЗрдЦрди рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдПрдЪрдбреАрдбреА рдкрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ/рдмреИрдХрдЕрдк рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рдкрд░ рдмреЗрд╣рдж рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред

рдЖрдЗрдП рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЛ рдкреБрдирдГ рд╕реНрдХреИрди рдХрд░реЗрдВ:

#udevadm control --reload-rules && udevadm trigger

рдЖрдЗрдП рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

#lsscsi && nvme list
[0:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sda
[1:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdb
[2:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdc
[3:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdd
[4:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sde
[5:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdf
[6:0:0:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdg
[6:0:1:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdh
[6:0:2:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdi
[6:0:3:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdj
[6:0:4:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdk
[6:0:5:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdl
[6:0:6:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdm
[6:0:7:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdn
Node SN Model Namespace Usage Format FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S466NXXXXXXX15L Samsung SSD 970 EVO 500GB 1 0,00 GB / 500,11 GB 512 B + 0 B 2B2QEXE7
/dev/nvme1n1 S5H7NXXXXXXX48N Samsung SSD 970 EVO 500GB 1 0,00 GB / 500,11 GB 512 B + 0 B 2B2QEXE7

рдбрд┐рд╕реНрдХ рд▓реЗрдЖрдЙрдЯ

рдПрдирд╡реАрдПрдордИ рдПрд╕рдПрд╕рдбреА

рд▓реЗрдХрд┐рди рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ. рдлрд┐рд░ рднреА, рд╣рдорд╛рд░рд╛ BIOS рдЗрди рдбреНрд░рд╛рдЗрд╡реНрд╕ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИред рддреЛ, рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ RAID рдкрд░ рдЬрд╛рдПрдВрдЧреЗред рд╣рдо рд╡рд╣рд╛рдВ рдЕрдиреБрднрд╛рдЧ рднреА рдирд╣реАрдВ рдмрдирд╛рдПрдВрдЧреЗ. рдпрджрд┐ рдЖрдк "рдХреИрдирди" рдпрд╛ "рдореБрдЦреНрдп рд░реВрдк рд╕реЗ" рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдЪрдбреАрдбреА рдЬреИрд╕рд╛ рдПрдХ рдмрдбрд╝рд╛ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдПрдВред

SATA HDD

рдпрд╣рд╛рдВ рдХреБрдЫ рдЦрд╛рд╕ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ. рд╣рдо рд╣рд░ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рдПрдВрдЧреЗ. рд╣рдо рдПрдХ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдПрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ BIOS рдЗрди рдбрд┐рд╕реНрдХ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдЙрдирд╕реЗ рдмреВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдмрд╛рдж рдореЗрдВ рдЗрди рдбрд┐рд╕реНрдХ рдкрд░ GRUB рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЕрдЪрд╛рдирдХ рдРрд╕рд╛ рдХрд░ рд╕рдХреЗред

#cat >hdd.part << EOF
label: dos
label-id: 0x00000000
device: /dev/sdg
unit: sectors

/dev/sdg1 : start= 2048, size= 1953523120, type=fd, bootable
EOF
#sfdisk /dev/sdg < hdd.part
#sfdisk /dev/sdh < hdd.part
#sfdisk /dev/sdi < hdd.part
#sfdisk /dev/sdj < hdd.part
#sfdisk /dev/sdk < hdd.part
#sfdisk /dev/sdl < hdd.part
#sfdisk /dev/sdm < hdd.part
#sfdisk /dev/sdn < hdd.part

рд╕реИрдЯрд╛ рдПрд╕рдПрд╕рдбреА

рдпрд╣реАрдВ рдкрд░ рдЪреАрдЬреЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реА рдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдЖрдХрд╛рд░ 2 рдЯреАрдмреА рд╣реИред рдпрд╣ рдПрдордмреАрдЖрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ GPT рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреАрдкреАрдЯреА рдбрд┐рд╕реНрдХ рдореЗрдВ рдПрдХ рд╕рдВрдЧрддрддрд╛ рдкрд░рдд рд╣реЛрддреА рд╣реИ рдЬреЛ рдПрдордмреАрдЖрд░-рд╕рдВрдЧрдд рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрд╣рд▓реЗ 4 рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдпрджрд┐ рд╡реЗ рдкрд╣рд▓реЗ 2 рдЯреЗрд░рд╛рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рднреАрддрд░ рд╕реНрдерд┐рдд рд╣реИрдВред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рдбрд┐рд╕реНрдХ рдкрд░ рдмреВрдЯ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдмрд╛рдпреЛрд╕_рдЧреНрд░рдм рд╡рд┐рднрд╛рдЬрди рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдкрдХреЛ GPT рд▓рд┐рдЧреЗрд╕реА/BIOS рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдмреВрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпреЗ рд╣рдорд╛рд░рд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ.

рдпрд╣рд╛рдВ рд╣рдо рджреЛ рд╕реЗрдХреНрд╢рди рдмрдирд╛рдПрдВрдЧреЗ. рдкрд╣рд▓рд╛ 1 рдЬреАрдмреА рдЖрдХрд╛рд░ рдХрд╛ рд╣реЛрдЧрд╛ рдФрд░ RAID 1/рдмреВрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рджреВрд╕рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ RAID 6 рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрд╕рдВрдмрджреНрдз рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╢реЗрд╖ рд╕рднреА рдЦрд╛рд▓реА рд╕реНрдерд╛рди рд▓реЗ рд▓реЗрдЧрд╛ред

рдпрд╣ рдЕрдЪрд┐рд╣реНрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреНрдпрд╛ рд╣реИ?рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдорд╛рд░реЗ SATA SSDs рдореЗрдВ 6 рд╕реЗ 78 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп SLC рдХреИрд╢ рд╣реИред рдбреНрд░рд╛рдЗрд╡ рдХреА рдбреЗрдЯрд╛ рд╢реАрдЯ рдореЗрдВ "рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕" рдФрд░ "рдЧреАрдмрд╛рдЗрдЯреНрд╕" рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрдВ 6 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ "рдореБрдлрд╝реНрдд рдореЗрдВ" рдорд┐рд▓рддреЗ рд╣реИрдВред рд╢реЗрд╖ 72 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдЕрдкреНрд░рдпреБрдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрд╕рдПрд▓рд╕реА рдХреИрд╢ рд╣реИ, рдФрд░ рд╕реНрдерд╛рди 4 рдмрд┐рдЯ рдПрдордПрд▓рд╕реА рдореЛрдб рдореЗрдВ рд╡реНрдпрд╛рдкреНрдд рд╣реИред рдЬрд┐рд╕рдХрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ 4 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреЗрд╡рд▓ 1 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдПрд╕рдПрд▓рд╕реА рдХреИрд╢ рдорд┐рд▓реЗрдЧрд╛ред

72 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреЛ 4 рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВ рдФрд░ 288 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдПрд╕рдПрд▓рд╕реА рдХреИрд╢ рдХрд╛ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдЫрд╣ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ 312 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдПрд╕рдПрд▓рд╕реА рдХреИрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рд╕рднреА рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рд╕реЗ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрддрд┐рд░реЗрдХ рдХреЗ рд▓рд┐рдП RAID рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреИрд╢ рдХреА рдпрд╣ рдорд╛рддреНрд░рд╛ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реА рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА рдЬрд╣рд╛рдВ рдХреЛрдИ рд▓реЗрдЦ рдХреИрд╢ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ QLC рдореЗрдореЛрд░реА рдХреА рд╕рдмрд╕реЗ рджреБрдЦрдж рдХрдореА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ - рдЬрдм рдХреИрд╢ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдмреЗрд╣рдж рдХрдо рд▓рд┐рдЦрдиреЗ рдХреА рдЧрддрд┐ред рдпрджрд┐ рдЖрдкрдХрд╛ рд▓реЛрдб рдЗрд╕рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдбреЗрдЯрд╛ рд╢реАрдЯ рд╕реЗ рдЯреАрдмреАрдбрдмреНрд▓реНрдпреВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕реЛрдЪреЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдПрд╕рдПрд╕рдбреА рдРрд╕реЗ рд▓реЛрдб рдХреЗ рддрд╣рдд рдХрд┐рддрдиреЗ рд╕рдордп рддрдХ рдЪрд▓реЗрдЧрд╛ред

#cat >ssd.part << EOF
label: dos
label-id: 0x00000000
device: /dev/sda
unit: sectors

/dev/sda1 : start= 2048, size= 2097152, type=fd, bootable
/dev/sda2 : start= 2099200, size= 3300950016, type=fd
EOF
#sfdisk /dev/sda < ssd.part
#sfdisk /dev/sdb < ssd.part
#sfdisk /dev/sdc < ssd.part
#sfdisk /dev/sdd < ssd.part
#sfdisk /dev/sde < ssd.part
#sfdisk /dev/sdf < ssd.part

рд╕рд╛рд░рдгрд┐рдпрд╛рдБ рдмрдирд╛рдирд╛

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдорд╢реАрди рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣реЛрд╕реНрдЯ рдирд╛рдо mdadm рдХреЗ рдЕрдВрджрд░ рдХрд╣реАрдВ рд╕рд░рдгреА рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрд╛рдж рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрджрдо рд╣реИред

#mcedit /etc/hostname
#mcedit /etc/hosts
#hostname
vdesk0

рдПрдирд╡реАрдПрдордИ рдПрд╕рдПрд╕рдбреА

#mdadm --create --verbose --assume-clean /dev/md0 --level=1 --raid-devices=2 /dev/nvme[0-1]n1

рдХреНрдпреЛрдВ -рдорд╛рдиреЛ-рд╕рд╛рдлрд╝...?рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред RAID рд╕реНрддрд░ 1 рдФрд░ 6 рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╛рдиреНрдп рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рдирдИ рд╕рд░рдгреА рд╣реИ рддреЛ рд╕рдм рдХреБрдЫ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд░реНрдорд╛рдг рдкрд░ SSD рд╕рд░рдгреА рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ TBW рд╕рдВрд╕рд╛рдзрди рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИред рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рд╣рдо рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдП рдЧрдП SSD рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ "рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TRIM/DISCARD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

SSD рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, RAID 1 DISCARD рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╕рдорд░реНрдерд┐рдд рд╣реИред

SSD RAID 6 DISCARD рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЗрд╡рд▓ 4/5/6 рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА SSDs рдХреЗ рдкрд╛рд╕ рддреНрдпрд╛рдЧ_рд╢реВрдиреНрдп_рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд░реНрдерди рд╣реЛред рдХрднреА-рдХрднреА рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЕрдЬреАрдм рдбреНрд░рд╛рдЗрд╡ рдЖрддреА рд╣реИрдВ рдЬреЛ рдХрд░реНрдиреЗрд▓ рдХреЛ рдмрддрд╛рддреА рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рд╕рдорд░реНрдерди рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреА рдбреНрд░рд╛рдЗрд╡ рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рднреА рд╣реИрдВред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, RAID 6 рдХреЗ рд▓рд┐рдП DISCARD рд╕рдорд░реНрдерди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ, рдирд┐рдореНрди рдЖрджреЗрд╢ "рд╢реВрдиреНрдп" рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдХреЛ "рдЖрд░рдВрдн" рдХрд░рдХреЗ рдПрдирд╡реАрдПрдордИ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред

#blkdiscard /dev/md0

рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЪрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

#blkdiscard --step 65536 /dev/md0

рд╕реИрдЯрд╛ рдПрд╕рдПрд╕рдбреА

#mdadm --create --verbose --assume-clean /dev/md1 --level=1 --raid-devices=6 /dev/sd[a-f]1
#blkdiscard /dev/md1
#mdadm --create --verbose --assume-clean /dev/md2 --chunk-size=512 --level=6 --raid-devices=6 /dev/sd[a-f]2

рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдХреНрдпреЛрдВ...?рдЦрдВрдб-рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рдЦрдВрдб-рдЖрдХрд╛рд░ рд╕рд╣рд┐рдд рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдкрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдЪрд┐рдд рдЖрдХрд╛рд░ рдпрд╛ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдСрдкрд░реЗрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╣реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ IOPS рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, 99% IO 512K рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред

RAID рдореЗрдВ рдкреНрд░рддрд┐ рд▓реЗрдЦрди 6 IOPS рд╣реИрдВ рд╕рджреИрд╡ рдПрдХ рдбреНрд░рд╛рдЗрд╡ рдХреЗ IOPS рд╕реЗ рдХрдо рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ред рдЬрдм, рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реАрдб рдХреЗ рд░реВрдк рдореЗрдВ, IOPS рдПрдХ рдбреНрд░рд╛рдЗрд╡ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╣рддреНрд╡ рд╣реИред
рд▓реЗрдЦрдХ рдХреЛ RAID 6 рдмрд╛рдИ-рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдЦрд░рд╛рдм рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡рд╣ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ RAID 6 рдЕрдЪреНрдЫрд╛ рд╣реИред
рд╣рдо рдПрдирд╡реАрдПрдордИ рдХреИрд╢ рдФрд░ рдерд┐рди-рдкреНрд░реЛрд╡рд┐рдЬрдирд┐рдВрдЧ рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде RAID 6 рдХреЗ рдЦрд░рд╛рдм рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓реЗрдЦрди рдХреА рднрд░рдкрд╛рдИ рдХрд░реЗрдВрдЧреЗред

рд╣рдордиреЗ рдЕрднреА рддрдХ RAID 6 рдХреЗ рд▓рд┐рдП DISCARD рдХреЛ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрднреА рдЗрд╕ рдРрд░реЗ рдХреЛ "рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝" рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдУрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдХрд░реЗрдВрдЧреЗред

SATA HDD

#mdadm --create --verbose --assume-clean /dev/md3 --chunk-size=512 --level=6 --raid-devices=8 /dev/sd[g-n]1

рдПрдирд╡реАрдПрдордИ RAID рдкрд░ рдПрд▓рд╡реАрдПрдо

рдЧрддрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ NVMe RAID 1 рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ /dev/md0 рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЕрднреА рднреА рдЕрдиреНрдп рдЬрд░реВрд░рддреЛрдВ, рдЬреИрд╕реЗ рд╕реНрд╡реИрдк, рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдФрд░ рдПрд▓рд╡реАрдПрдо-рдХреИрд╢ рдФрд░ рдПрд▓рд╡реАрдПрдо-рдерд┐рди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддреЗрдЬрд╝ рд╕рд░рдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рд╕рд░рдгреА рдкрд░ рдПрдХ рдПрд▓рд╡реАрдПрдо рд╡реАрдЬреА рдмрдирд╛рдПрдВрдЧреЗред

#pvcreate /dev/md0
#vgcreate root /dev/md0

рдЖрдЗрдП рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдПрдБред

#lvcreate -L 128G --name root root

рдЖрдЗрдП рд░реИрдо рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрд╡реИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдПрдВред

#lvcreate -L 32G --name swap root

рдУрдПрд╕ рд╕реНрдерд╛рдкрдирд╛

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬреЗрдВ рд╣реИрдВред

рдЙрдмрдВрдЯреВ рд▓рд╛рдЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╡рд┐рдЬрд╝рд╛рд░реНрдб рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдкрдирд╛. рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдХреЗ рдЪрдпрди рдХреЗ рдЪрд░рдг рдореЗрдВ, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • /dev/md1, - рдорд╛рдЙрдВрдЯ рдкреНрд╡рд╛рдЗрдВрдЯ /рдмреВрдЯ, рдПрдлрдПрд╕ - рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕
  • /dev/root/root (рдЙрд░реНрдл /dev/mapper/root-root), - рдорд╛рдЙрдВрдЯ рдкреЙрдЗрдВрдЯ / (рд░реВрдЯ), FS - BTRFS
  • /dev/root/swap (рдЙрд░реНрдл /dev/mapper/root-swap), - рд╕реНрд╡реИрдк рд╡рд┐рднрд╛рдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ /dev/sda рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдЬрдм рдЖрдк рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ BTRFS рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ / (рд░реВрдЯ) рдХреЗ рд▓рд┐рдП "@" рдФрд░ /home рдХреЗ рд▓рд┐рдП "@home" рдирд╛рдордХ рджреЛ BTRFS рд╡реЙрд▓реНрдпреВрдо рдмрдирд╛рдПрдЧрд╛ред

рдЖрдЗрдП рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВ...

рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдПрдХ рдореЛрдбрд▓ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдЧрд╛ рдЬреЛ рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдк рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдВрд╡рд╛рдж рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦ рдкрд╛рдПрдВрдЧреЗред рд╣рдо рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕рд╛рдл рдЙрдмрдВрдЯреВ рд▓рд╛рдЗрд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗ:

#sudo bash

рд╕рдВрд╕реНрдерд╛рдкрди рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЛрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдБ:

#mkdir /mnt/chroot
#mount -o defaults,space_cache,noatime,nodiratime,discard,subvol=@ /dev/mapper/root-root /mnt/chroot
#mount -o defaults,space_cache,noatime,nodiratime,discard,subvol=@home /dev/mapper/root-root /mnt/chroot/home
#mount -o defaults,space_cache,noatime,nodiratime,discard /dev/md1 /mnt/chroot/boot
#mount --bind /proc /mnt/chroot/proc
#mount --bind /sys /mnt/chroot/sys
#mount --bind /dev /mnt/chroot/dev

рдЖрдЗрдП рдЪреЗрд░реЛрдЯ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

#cat /etc/hostname >/mnt/chroot/etc/hostname
#cat /etc/hosts >/mnt/chroot/etc/hosts
#cat /etc/resolv.conf >/mnt/chroot/etc/resolv.conf

рдЖрдЗрдП рдЪрд┐рд░реЛрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓реЗрдВ:

#chroot /mnt/chroot

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкреИрдХреЗрдЬ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ:

apt-get install --reinstall mdadm lvm2 thin-provisioning-tools btrfs-tools util-linux lsscsi nvme-cli mc debsums hdparm

рдЖрдЗрдП рдЙрди рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░реЗрдВ рдЬреЛ рдЕрдкреВрд░реНрдг рд╕рд┐рд╕реНрдЯрдо рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдХрд╛рд░рдг рдЯреЗрдврд╝реЗ-рдореЗрдврд╝реЗ рддрд░реАрдХреЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдереЗ:

#CORRUPTED_PACKAGES=$(debsums -s 2>&1 | awk '{print $6}' | uniq)
#apt-get install --reinstall $CORRUPTED_PACKAGES

рдпрджрд┐ рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ /etc/apt/sources.list рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ

рдЖрдЗрдП рдЯреНрд░рд┐рдо/рдбрд┐рд╕реНрдХрд╛рд░реНрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП RAID 6 рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ:

#cat >/etc/modprobe.d/raid456.conf << EOF
options raid456 devices_handle_discard_safely=1
EOF

рдЖрдЗрдП рдЕрдкрдиреА рд╕рд╛рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:

#cat >/etc/udev/rules.d/60-md.rules << EOF
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="32768"
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/sync_speed_min", ATTR{md/sync_speed_min}="48000"
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/sync_speed_max", ATTR{md/sync_speed_max}="300000"
EOF
#cat >/etc/udev/rules.d/62-hdparm.rules << EOF
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/hdparm -B 254 /dev/%k"
EOF
#cat >/etc/udev/rules.d/63-blockdev.rules << EOF
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/blockdev --setra 1024 /dev/%k"
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="md*", RUN+="/sbin/blockdev --setra 0 /dev/%k"
EOF

рдпрд╣ рдХреНрдпрд╛ рдерд╛..?рд╣рдордиреЗ udev рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛:

  • RAID 2020 рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдХреИрд╢ рдЖрдХрд╛рд░ рдХреЛ 6 рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗрдЯ рдХрд░реЗрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд▓рд┐рдирдХреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред
  • рд╕рд░рдгреА рдЬрд╛рдВрдЪ/рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо IO рдЖрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЗ рдПрд░реЗрдЬрд╝ рдХреЛ рд▓реЛрдб рдХреЗ рддрд╣рдд рд╢рд╛рд╢реНрд╡рдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрдВрд╕рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
  • рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ/рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЕрдзрд┐рдХрддрдо IO рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ SSD RAID рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝/рдЪреЗрдХ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреА рдбреНрд░рд╛рдЗрд╡ рдЦрд░рд╛рдм рди рд╣реЛ рдЬрд╛рдПред рдпрд╣ рдПрдирд╡реАрдПрдордИ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред (рд░реЗрдбрд┐рдПрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ? рдореИрдВ рдордЬрд╛рдХ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред)
  • рдПрдкреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рд╕реНрдХ рдХреЛ рд╕реНрдкрд┐рдВрдбрд▓ рд░реЛрдЯреЗрд╢рди (рдПрдЪрдбреАрдбреА) рдХреЛ рд░реЛрдХрдиреЗ рд╕реЗ рд░реЛрдХреЗрдВ рдФрд░ рдбрд┐рд╕реНрдХ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд▓реАрдк рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 7 рдШрдВрдЯреЗ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреА рдбреНрд░рд╛рдЗрд╡ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреА рд╣реИ (-рдмреА 255) рддреЛ рдЖрдк рдПрдкреАрдПрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде, рдбреНрд░рд╛рдЗрд╡ рдкрд╛рдВрдЪ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреАред рдлрд┐рд░ рдУрдПрд╕ рдбрд┐рд╕реНрдХ рдХреИрд╢ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдбрд┐рд╕реНрдХ рдлрд┐рд░ рд╕реЗ рдШреВрдо рдЬрд╛рдПрдЧреА, рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕реНрдкрд┐рдВрдбрд▓ рдШреБрдорд╛рд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рд╕рд░рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЪрдХреНрд░ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЖрдкрдХреА рдбрд┐рд╕реНрдХ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦрд╝рддреНрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рднреА рдбрд┐рд╕реНрдХ рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рдбрд┐рд╕реНрдХ рдЙрдкрдпреБрдХреНрдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде "рд▓реИрдкрдЯреЙрдк" рд╣реИрдВ, рдЬреЛ RAID рдХреЛ рдорд┐рдиреА-MAID рдЬреИрд╕рд╛ рдмрдирд╛рддреА рд╣реИрдВред
  • рдбрд┐рд╕реНрдХ рдкрд░ рд░реАрдбрд╣реЗрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдШреВрд░реНрдгрди) 1 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ - рджреЛ рд▓рдЧрд╛рддрд╛рд░ рдмреНрд▓реЙрдХ/рдЪрдВрдХ RAID 6
  • рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╕реНрд╡рдпрдВ рд░реАрдбрд╣реЗрдб рдЕрдХреНрд╖рдо рдХрд░реЗрдВред

рдЖрдЗрдП /etc/fstab рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

#cat >/etc/fstab << EOF
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# file-system mount-point type options dump pass
/dev/mapper/root-root / btrfs defaults,space_cache,noatime,nodiratime,discard,subvol=@ 0 1
UUID=$(blkid -o value -s UUID /dev/md1) /boot btrfs defaults,space_cache,noatime,nodiratime,discard 0 2
/dev/mapper/root-root /home btrfs defaults,space_cache,noatime,nodiratime,discard,subvol=@home 0 2
/dev/mapper/root-swap none swap sw 0 0
EOF

рдРрд╕рд╛ рдХреНрдпреЛрдВ..?рд╣рдо UUID рджреНрд╡рд╛рд░рд╛ /boot рд╡рд┐рднрд╛рдЬрди рдХреА рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗред рд╕рд░рдгреА рдирд╛рдордХрд░рдг рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рд╢реЗрд╖ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ /dev/mapper/vg-lv рдиреЛрдЯреЗрд╢рди рдореЗрдВ LVM рдирд╛рдореЛрдВ рд╕реЗ рдЦреЛрдЬреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдврдВрдЧ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо LVM рдХреЗ рд▓рд┐рдП UUID рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рдХреНрдпреЛрдВрдХрд┐ LVM рд╡реЙрд▓реНрдпреВрдо рдФрд░ рдЙрдирдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ UUID рд╕рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИредрдорд╛рдЙрдВрдЯ /dev/mapper/root-root.. рджреЛ рдмрд╛рд░?рд╣рд╛рдБред рдмрд┐рд▓реНрдХреБрд▓ред рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛. рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдмрд╡реЛрд▓ рдХреЗ рд╕рд╛рде рдХрдИ рдмрд╛рд░ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рд╕рдХреНрд░рд┐рдп рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдПрд▓рд╡реАрдПрдо рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрднреА рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЬрдм рдЖрдк рд░реАрдмреВрдЯ рдХрд░реЗрдВрдЧреЗ рддреЛ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП mdadm рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:

#/usr/share/mdadm/mkconf | sed 's/#DEVICE/DEVICE/g' >/etc/mdadm/mdadm.conf

рдЖрдЗрдП LVM рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ:

#cat >>/etc/lvm/lvmlocal.conf << EOF

activation {
thin_pool_autoextend_threshold=90
thin_pool_autoextend_percent=5
}
allocation {
cache_pool_max_chunks=2097152
}
devices {
global_filter=["r|^/dev/.*_corig$|","r|^/dev/.*_cdata$|","r|^/dev/.*_cmeta$|","r|^/dev/.*gpv$|","r|^/dev/images/.*$|","r|^/dev/mapper/images.*$|","r|^/dev/backup/.*$|","r|^/dev/mapper/backup.*$|"] issue_discards=1
}
EOF

рдпрд╣ рдХреНрдпрд╛ рдерд╛..?рд╣рдордиреЗ рд╡реЙрд▓реНрдпреВрдо рдХреЗ 90% рддрдХ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рди рдХреЗ 5% рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдПрд▓рд╡реАрдПрдо рдкрддрд▓реЗ рдкреВрд▓ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рд╣реИред

рд╣рдордиреЗ LVM рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдмреНрд▓реЙрдХ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛ рджреА рд╣реИред

рд╣рдордиреЗ LVM рдХреЛ LVM рд╡реЙрд▓реНрдпреВрдо (PV) рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рд╣реИ:

  • рдПрд▓рд╡реАрдПрдо рдХреИрд╢ рдпреБрдХреНрдд рдбрд┐рд╡рд╛рдЗрд╕ (рд╕реАрдбреЗрдЯрд╛)
  • рдХреИрд╢ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП LVM рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ ( _рдХреЛрд░рд┐рдЧ). рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреИрд╢реНрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрднреА рднреА рдХреИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдмрд╕ ).
  • LVM рдХреИрд╢ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (cmeta) рдпреБрдХреНрдд рдбрд┐рд╡рд╛рдЗрд╕
  • рдЫрд╡рд┐рдпреЛрдВ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╡реАрдЬреА рдореЗрдВ рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ред рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреА рдбрд┐рд╕реНрдХ рдЫрд╡рд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА, рдФрд░ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рд╣реЛрд╕реНрдЯ рдкрд░ рдПрд▓рд╡реАрдПрдо рдЕрддрд┐рдерд┐ рдУрдПрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЙрд▓реНрдпреВрдо рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗред
  • рдмреИрдХрдЕрдк рдирд╛рдо рдХреЗ рд╕рд╛рде рд╡реАрдЬреА рдореЗрдВ рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ред рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЫрд╡рд┐рдпреЛрдВ рдХреА рдмреИрдХрдЕрдк рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреАред
  • рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдЬрд┐рдирдХрд╛ рдирд╛рдо "рдЬреАрдкреАрд╡реА" (рдЕрддрд┐рдерд┐ рднреМрддрд┐рдХ рд╡реЙрд▓реНрдпреВрдо) рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ

рд╣рдордиреЗ LVM VG рдкрд░ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдЦрд╛рд▓реА рдХрд░рддреЗ рд╕рдордп DISCARD рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рд╣реИред рдзреНрдпрд╛рди рд╕реЗред рдЗрд╕рд╕реЗ SSD рдкрд░ LV рдХреЛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ SSD RAID 6 рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдкрддрд▓реЗ рдкреНрд░рд╛рд╡рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдмрд╛рдзрд╛ рдирд╣реАрдВ рдмрдиреЗрдЧрд╛ред

рдЖрдЗрдП initramfs рдЫрд╡рд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

#update-initramfs -u -k all

рдЧреНрд░рдм рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

#apt-get install grub-pc
#apt-get purge os-prober
#dpkg-reconfigure grub-pc

рдХреМрди рд╕реА рдбрд┐рд╕реНрдХ рдЪреБрдиреЗрдВ?рд╡реЗ рд╕рднреА рдЬреЛ рдПрд╕рдбреА* рд╣реИрдВред рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрд╢реАрд▓ SATA рдбреНрд░рд╛рдЗрд╡ рдпрд╛ SSD рд╕реЗ рдмреВрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдУрдПрд╕-рдкреНрд░реЛрдмрд░ рдХреНрдпреЛрдВ рдЬреЛрдбрд╝рд╛..?рдЕрддреНрдпрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдФрд░ рдЪрдВрдЪрд▓ рд╣рд╛рдереЛрдВ рдХреЗ рд▓рд┐рдП.

рдпрджрд┐ рдХреЛрдИ RAID рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ рддреЛ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрди рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдкрд░ OS рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдмрд╛рддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВред рдореИрдВ рд╢рд░рд╛рд░рддреА рд╣рд╛рдереЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдирд▓рд╛рдЗрди рдиреБрд╕реНрдЦреЗ рдЦреЛрдЬрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рд╣рдордиреЗ рд╢реБрд░реБрдЖрддреА рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ. рдирдП рд╕реНрдерд╛рдкрд┐рдд рдУрдПрд╕ рдореЗрдВ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдмреВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд▓рд╛рдЗрд╡ рд╕реАрдбреА/рдпреВрдПрд╕рдмреА рдХреЛ рд╣рдЯрд╛рдирд╛ рди рднреВрд▓реЗрдВред

#exit
#reboot

рдмреВрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рднреА SATA SSD рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

SATA SSD рдкрд░ LVM

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирдП рдУрдПрд╕ рдореЗрдВ рдмреВрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ, рдПрдкреАрдЯреА, рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рдЦреЛрд▓рд╛ рд╣реИ, рдФрд░ рдЪрд▓рд╛рдпрд╛ рд╣реИ:

#sudo bash

рд╣рдо рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред

SATA SSD рд╕реЗ рд╕рд░рдгреА рдХреЛ "рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ":

#blkdiscard /dev/md2

рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

#blkdiscard --step 65536 /dev/md2
SATA SSD рдкрд░ LVM VG рдмрдирд╛рдПрдВ:

#pvcreate /dev/md2
#vgcreate data /dev/md2

рдПрдХ рдФрд░ рд╡реАрдЬреА рдХреНрдпреЛрдВ..?рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реВрдЯ рдирд╛рдо рдХрд╛ рдПрдХ рд╡реАрдЬреА рд╣реИред рд╕рдм рдХреБрдЫ рдПрдХ рд╡реАрдЬреА рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ?

рдпрджрд┐ рдПрдХ рд╡реАрдЬреА рдореЗрдВ рдХрдИ рдкреАрд╡реА рд╣реИрдВ, рддреЛ рд╡реАрдЬреА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдкреАрд╡реА рдореМрдЬреВрдж (рдСрдирд▓рд╛рдЗрди) рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЕрдкрд╡рд╛рдж LVM RAID рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЬрд╛рдирдмреВрдЭрдХрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ RAID 6 рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдкрд░ рд╡рд┐рдлрд▓рддрд╛ (рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдкрдврд╝реЗрдВ) рд╣реЛ, рддреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмреВрдЯ рд╣реЛрдЧрд╛ рдФрд░ рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдЧрд╛ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдкрд░ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рднреМрддрд┐рдХ "рдореАрдбрд┐рдпрд╛" рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡реАрдЬреА рдореЗрдВ рдЕрд▓рдЧ рдХрд░ рджреЗрдВрдЧреЗред

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣реЗрдВ рддреЛ, рдЕрд▓рдЧ-рдЕрд▓рдЧ RAID рд╕рд░рдгрд┐рдпрд╛рдБ рдЕрд▓рдЧ-рдЕрд▓рдЧ "рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдбреЛрдореЗрди" рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡реАрдЬреА рдореЗрдВ рдареВрдВрд╕рдХрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдВрджреБ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

"рд╣рд╛рд░реНрдбрд╡реЗрдпрд░" рд╕реНрддрд░ рдкрд░ рдПрд▓рд╡реАрдПрдо рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди RAID рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдХреЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХрд╛рдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рднрд╛рдЧреЛ рдПрдХ рд╕рд╛рде bcache + LVM thin, bcache + BTRFS, LVM рдХреИрд╢ + LVM thin, рдХреИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдЯрд┐рд▓ ZFS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдпрд╛ рдпрд╣ рд╕рдм рдЖрдЬрд╝рдорд╛рдиреЗ рдФрд░ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рдирд╛рд░рдХреАрдп рдорд┐рд╢реНрд░рдгред

"рд╣рд╛рд░реНрдбрд╡реЗрдпрд░" рд╕реНрддрд░ рдкрд░, рд╣рдо рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ "рдореЛрдЯреЗ" рдПрд▓рд╡реАрдПрдо рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдЕрдкрд╡рд╛рдж рдмреИрдХрдЕрдк рд╡рд┐рднрд╛рдЬрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ.

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХреНрд╖рдг рддрдХ, рдХрдИ рдкрд╛рдардХреЛрдВ рдХреЛ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдЧреБрдбрд╝рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рдВрджреЗрд╣ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рдерд╛ред

SATA HDD рдкрд░ LVM

#pvcreate /dev/md3
#vgcreate backup /dev/md3

рдлрд┐рд░ рдирдпрд╛ рд╡реАрдЬреА..?рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдбреЗрдЯрд╛ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рд╣рдо рдЬрд┐рд╕ рдбрд┐рд╕реНрдХ рдРрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рд╡рд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдП, рддреЛ рд╣рдорд╛рд░рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЧреИрд░-рдмреИрдХрдЕрдк рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╡реАрдЬреА рд╕рдХреНрд░рд┐рдпрдг рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ рд╡реАрдЬреА рдмрдирд╛рддреЗ рд╣реИрдВред

LVM рдХреИрд╢ рд╕реЗрдЯ рдХрд░рдирд╛

рдЖрдЗрдП рдЗрд╕реЗ рдХреИрд╢рд┐рдВрдЧ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NVMe RAID 1 рдкрд░ рдПрдХ LV рдмрдирд╛рдПрдВред

#lvcreate -L 70871154688B --name cache root

рдЗрддрдирд╛ рдХрдо рдХреНрдпреЛрдВ рд╣реИ...?рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдПрдирд╡реАрдПрдордИ рдПрд╕рдПрд╕рдбреА рдореЗрдВ рдПрд╕рдПрд▓рд╕реА рдХреИрд╢ рднреА рд╣реИред 4-рдмрд┐рдЯ рдПрдордПрд▓рд╕реА рдореЗрдВ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХреЗ рдХрд╛рд░рдг 18 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ "рдлреНрд░реА" рдФрд░ 3 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рдХреИрд╢ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ NVMe SSDs рдХреИрд╢ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ SATA SSD рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рджрд░рдЕрд╕рд▓, рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП LVM рдХреИрд╢ рд╡рд┐рднрд╛рдЬрди рдХреЛ NVMe рдбреНрд░рд╛рдЗрд╡ рдХреЗ SLC рдХреИрд╢ рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рджреЛрдЧреБрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдмрдбрд╝рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдкреНрд░рдпреБрдХреНрдд NVMe рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦрдХ 32-64 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреИрд╢ рдмрдирд╛рдирд╛ рдЙрдЪрд┐рдд рдорд╛рдирддрд╛ рд╣реИред

64 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреИрд╢, рдХреИрд╢ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдмреИрдХрдЕрдк рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рд╡рд┐рднрд╛рдЬрди рдЖрдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореИрдВ рдиреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдЧрдВрджреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, LVM рдкреВрд░реЗ рдХреИрд╢ рдХреЛ рдЧрдВрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рддрдХ рд╕рд┐рд╕реНрдЯрдо рджреЛрдмрд╛рд░рд╛ рд░реАрдмреВрдЯ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрд▓рд╡реАрдЪреЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЙрдЪрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреБрд░рдВрдд рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдЖрдЗрдП рдЗрд╕реЗ рдХреИрд╢реНрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SATA RAID 6 рдкрд░ рдПрдХ LV рдмрдирд╛рдПрдВред

#lvcreate -L 3298543271936B --name cache data

рддреАрди рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рд╣реА рдХреНрдпреЛрдВ..?рддрд╛рдХрд┐ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЖрдк рдХреБрдЫ рдЕрдиреНрдп рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП SATA SSD RAID 6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред рдХреИрд╢реНрдб рд╕реНрдерд╛рди рдХрд╛ рдЖрдХрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░реЛрдХреЗ рдмрд┐рдирд╛, рддреБрд░рдВрдд, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХреИрд╢ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдкреБрди: рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, bcache рдХреА рддреБрд▓рдирд╛ рдореЗрдВ LVM-рдХреИрд╢ рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рддреБрд░рдВрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡реАрдЬреА рдмрдирд╛рдПрдВред

#pvcreate /dev/root/cache
#pvcreate /dev/data/cache
#vgcreate cache /dev/root/cache /dev/data/cache

рдЖрдЗрдП рдХреИрд╢реНрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ LV рдмрдирд╛рдПрдВред

#lvcreate -L 3298539077632B --name cachedata cache /dev/data/cache

рдпрд╣рд╛рдВ рд╣рдордиреЗ рддреБрд░рдВрдд /dev/data/cache рдкрд░ рд╕рднреА рдЦрд╛рд▓реА рдЬрдЧрд╣ рд▓реЗ рд▓реА рддрд╛рдХрд┐ рдЕрдиреНрдп рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рднрд╛рдЬрди рддреБрд░рдВрдд /dev/root/cache рдкрд░ рдмрдирд╛рдП рдЬрд╛ рд╕рдХреЗрдВред рдпрджрд┐ рдЖрдкрдиреЗ рдЧрд▓рдд рдЬрдЧрд╣ рдкрд░ рдХреБрдЫ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ pvmove рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП рдХреИрд╢ рдмрдирд╛рдПрдВ рдФрд░ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:

#lvcreate -y -L 64G -n cache cache /dev/root/cache
#lvcreate -y -L 1G -n cachemeta cache /dev/root/cache
#lvconvert -y --type cache-pool --cachemode writeback --chunksize 64k --poolmetadata cache/cachemeta cache/cache
#lvconvert -y --type cache --cachepool cache/cache cache/cachedata

рдРрд╕рд╛ рдЦрдВрдб рдЖрдХрд╛рд░ рдХреНрдпреЛрдВ..?рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд▓реЗрдЦрдХ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рддрдм рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрд▓рд╡реАрдПрдо рдХреИрд╢ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ рдПрд▓рд╡реАрдПрдо рдкрддрд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдХрд╛рд░ рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛, рд░реИрдВрдбрдо рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрддрдирд╛ рд╣реА рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдЧрд╛ред

64k LVM рдерд┐рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдордд рдиреНрдпреВрдирддрдо рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рд╣реИред

рд╡рд╛рдкрд╕реА рдореЗрдВ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ..!рд╣рд╛рдБред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреИрд╢ рдХреИрд╢реНрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд░рд╛рдЗрдЯ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд╡рд┐рд▓рдВрдмрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреИрд╢ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреИрд╢реНрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдбреЗрдЯрд╛ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╛рдж рдореЗрдВ, рд▓реЗрдЦрдХ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЗрд╕ рдЬреЛрдЦрд┐рдо рдХреА рднрд░рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдирд╡реАрдПрдордИ RAID 1 рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреМрди рд╕реЗ рдЙрдкрд╛рдп рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдХреИрд╢ рдкреНрд░рдХрд╛рд░ рдХреЛ RAID 6 рдХреЗ рдЦрд░рд╛рдм рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓реЗрдЦрди рдкреНрд░рджрд░реНрд╢рди рдХреА рднрд░рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдмреВрдЭрдХрд░ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛:

#lvs -a -o lv_name,lv_size,devices --units B cache
LV LSize Devices
[cache] 68719476736B cache_cdata(0)
[cache_cdata] 68719476736B /dev/root/cache(0)
[cache_cmeta] 1073741824B /dev/root/cache(16384)
cachedata 3298539077632B cachedata_corig(0)
[cachedata_corig] 3298539077632B /dev/data/cache(0)
[lvol0_pmspare] 1073741824B /dev/root/cache(16640)

рдХреЗрд╡рд▓ [cachedata_corig] /dev/data/cache рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реИ рддреЛ pvmove рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдПрдХ рдЖрджреЗрд╢ рд╕реЗ рдХреИрд╢ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

#lvconvert -y --uncache cache/cachedata

рдпрд╣ рдСрдирд▓рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. LVM рдмрд╕ рдХреИрд╢ рдХреЛ рдбрд┐рд╕реНрдХ рд╕реЗ рд╕рд┐рдВрдХ рдХрд░реЗрдЧрд╛, рдЙрд╕реЗ рд╣рдЯрд╛рдПрдЧрд╛, рдФрд░ рдХреИрд╢реЗрдбреЗрдЯрд╛_рдХреЛрд░рд┐рдЧ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рд╡рд╛рдкрд╕ рдХреИрд╢реЗрдбреЗрдЯрд╛ рдХрд░ рджреЗрдЧрд╛ред

рдПрд▓рд╡реАрдПрдо рдкрддрд▓рд╛ рд╕реЗрдЯ рдХрд░рдирд╛

рдЖрдЗрдП рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ рдХрд┐ рдПрд▓рд╡реАрдПрдо рдкрддрд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХрд┐рддрдиреА рдЬрдЧрд╣ рдЪрд╛рд╣рд┐рдП:

#thin_metadata_size --block-size=64k --pool-size=6terabytes --max-thins=100000 -u bytes
thin_metadata_size - 3385794560 bytes estimated metadata area size for "--block-size=64kibibytes --pool-size=6terabytes --max-thins=100000"

4 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рдкреВрд░реНрдгрд╛рдВрдХ: 4294967296рдмреА

рджреЛ рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВ рдФрд░ LVM PV рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП 4194304B рдЬреЛрдбрд╝реЗрдВ: 8594128896B
рдЖрдЗрдП LVM рдкрддрд▓реА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдФрд░ рдЙрд╕ рдкрд░ рдЙрдирдХреА рдмреИрдХрдЕрдк рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП NVMe RAID 1 рдкрд░ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдПрдВ:

#lvcreate -L 8594128896B --name images root

рдХрд┐рд╕ рд▓рд┐рдП..?рдпрд╣рд╛рдВ рд╕рд╡рд╛рд▓ рдЙрда рд╕рдХрддрд╛ рд╣реИ: рдПрд▓рд╡реАрдПрдо рдкрддрд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдХреНрдпреЛрдВ рд░рдЦреЗрдВ рдЕрдЧрд░ рдпрд╣ рдЕрднреА рднреА рдПрдирд╡реАрдПрдордИ рдкрд░ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣рд╛рдБ рдЧрддрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╢ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдПрдХ рдмрд┐рдВрджреБ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ LVM рдкрддрд▓рд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕рдВрдкреВрд░реНрдг рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдирд╛, рдкрддрд▓реА рдорд╛рддреНрд░рд╛рдПрдБ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЧреИрд░-рдХреИрд╢реНрдб, рд▓реЗрдХрд┐рди рддреЗрдЬрд╝, рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рд▓реЗ рдЬрд╛рдХрд░, рд╣рдо рдХреИрд╢ рд╣рд╛рдирд┐ рдпрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреИрд╢ рд╣рд╛рдирд┐ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдХреНрд╖рддрд┐ рдХреЛ рдкрддрд▓реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдкрд░рд┐рдорд╛рдг рдХреЗ рдХреНрд░рдо рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде, рдПрдлрдПрд╕ рд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдХреНрд╖рддрд┐рдпреЛрдВ рдХреЛ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдкрд╣рд▓реЗ рдПрдХ рдкрддрд▓реА рдорд╛рддреНрд░рд╛ рдХрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреИрд╢ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ, рдПрд▓рд╡реАрдПрдо рдерд┐рди рдХреЗ рдЖрдВрддрд░рд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдХрд╛рд░рдг, рдХреИрд╢ рд╣рд╛рдирд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рдПрдЧреА .

рдЖрдЗрдП рдПрдХ рдирдпрд╛ рд╡реАрдЬреА рдмрдирд╛рдПрдВ рдЬреЛ рдкрддрд▓реЗ рдкреНрд░рд╛рд╡рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛:

#pvcreate /dev/root/images
#pvcreate /dev/cache/cachedata
#vgcreate images /dev/root/images /dev/cache/cachedata

рдЖрдЗрдП рдПрдХ рдкреВрд▓ рдмрдирд╛рдПрдВ:

#lvcreate -L 274877906944B --poolmetadataspare y --poolmetadatasize 4294967296B --chunksize 64k -Z y -T images/thin-pool
рдХреНрдпреЛрдВ -Z yрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдореЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ - рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдкреБрдирд░реНрд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рджреВрд╕рд░реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рд▓реАрдХ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП - 64k рд╕реЗ рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓реЗрдЦрди рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдпрдХрд░рдг рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрддрд▓реА рдорд╛рддреНрд░рд╛ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдЕрд╕рдВрдмрджреНрдз рдХреНрд╖реЗрддреНрд░ рдореЗрдВ 64k рд╕реЗ рдХрдо рдХрд╛ рдХреЛрдИ рднреА рд▓реЗрдЦрди рдХреИрд╢ рдореЗрдВ 64K рдХрд┐рдирд╛рд░реЗ-рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдХреИрд╢реНрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЖрдЗрдП рдПрд▓рд╡реА рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкреАрд╡реА рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ:

#pvmove -n images/thin-pool_tdata /dev/root/images /dev/cache/cachedata
#pvmove -n images/lvol0_pmspare /dev/cache/cachedata /dev/root/images
#pvmove -n images/thin-pool_tmeta /dev/cache/cachedata /dev/root/images

рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИ:

#lvs -a -o lv_name,lv_size,devices --units B images
LV LSize Devices
[lvol0_pmspare] 4294967296B /dev/root/images(0)
thin-pool 274877906944B thin-pool_tdata(0)
[thin-pool_tdata] 274877906944B /dev/cache/cachedata(0)
[thin-pool_tmeta] 4294967296B /dev/root/images(1024)

рдЖрдЗрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрддрд▓рд╛ рд╡реЙрд▓реНрдпреВрдо рдмрдирд╛рдПрдВ:

#lvcreate -V 64G --thin-pool thin-pool --name test images

рд╣рдо рдкрд░реАрдХреНрд╖рдг рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ:

#apt-get install sysstat fio

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

#watch 'lvs --rows --reportformat basic --quiet -ocache_dirty_blocks,cache_settings cache/cachedata && (lvdisplay cache/cachedata | grep Cache) && (sar -p -d 2 1 | grep -E "sd|nvme|DEV|md1|md2|md3|md0" | grep -v Average | sort)'

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдо рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

#fio --loops=1 --size=64G --runtime=4 --filename=/dev/images/test --stonewall --ioengine=libaio --direct=1
--name=4kQD32read --bs=4k --iodepth=32 --rw=randread
--name=8kQD32read --bs=8k --iodepth=32 --rw=randread
--name=16kQD32read --bs=16k --iodepth=32 --rw=randread
--name=32KQD32read --bs=32k --iodepth=32 --rw=randread
--name=64KQD32read --bs=64k --iodepth=32 --rw=randread
--name=128KQD32read --bs=128k --iodepth=32 --rw=randread
--name=256KQD32read --bs=256k --iodepth=32 --rw=randread
--name=512KQD32read --bs=512k --iodepth=32 --rw=randread
--name=4Kread --bs=4k --rw=read
--name=8Kread --bs=8k --rw=read
--name=16Kread --bs=16k --rw=read
--name=32Kread --bs=32k --rw=read
--name=64Kread --bs=64k --rw=read
--name=128Kread --bs=128k --rw=read
--name=256Kread --bs=256k --rw=read
--name=512Kread --bs=512k --rw=read
--name=Seqread --bs=1m --rw=read
--name=Longread --bs=8m --rw=read
--name=Longwrite --bs=8m --rw=write
--name=Seqwrite --bs=1m --rw=write
--name=512Kwrite --bs=512k --rw=write
--name=256write --bs=256k --rw=write
--name=128write --bs=128k --rw=write
--name=64write --bs=64k --rw=write
--name=32write --bs=32k --rw=write
--name=16write --bs=16k --rw=write
--name=8write --bs=8k --rw=write
--name=4write --bs=4k --rw=write
--name=512KQD32write --bs=512k --iodepth=32 --rw=randwrite
--name=256KQD32write --bs=256k --iodepth=32 --rw=randwrite
--name=128KQD32write --bs=128k --iodepth=32 --rw=randwrite
--name=64KQD32write --bs=64k --iodepth=32 --rw=randwrite
--name=32KQD32write --bs=32k --iodepth=32 --rw=randwrite
--name=16KQD32write --bs=16k --iodepth=32 --rw=randwrite
--name=8KQD32write --bs=8k --iodepth=32 --rw=randwrite
--name=4kQD32write --bs=4k --iodepth=32 --rw=randwrite
| grep -E 'read|write|test' | grep -v ioengine

рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ! рд╕рдВрд╕рд╛рдзрди!рдпрд╣ рдХреЛрдб 36 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ 4 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЪрд▓реЗрдЧрд╛ред рдЖрдзреЗ рдкрд░реАрдХреНрд╖рдг рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдЖрдк NVMe рдкрд░ 4 рд╕реЗрдХрдВрдб рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 3 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ. рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди рдкрд░реАрдХреНрд╖рдг рдЖрдкрд╕реЗ 216 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдПрд╕рдПрд╕рдбреА рд╕рдВрд╕рд╛рдзрди рддрдХ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрдврд╝рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рдорд┐рд╢реНрд░рд┐рдд?рд╣рд╛рдБред рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд▓рд╛рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдХреИрд╢ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реИрдВ рддрд╛рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдЦрди рдкрдврд╝рдиреЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░реЗред

рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рджреМрд░рд╛рди рдФрд░ рдмрд╛рдж рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдХреИрд╢ рдФрд░ рдкрддрд▓реА рдорд╛рддреНрд░рд╛ рднрд░ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрд╣ рдЗрд╕ рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЕрдВрддрд┐рдо рд▓реЙрдиреНрдЪ рдХреЗ рджреМрд░рд╛рди рднрд░реЗ рдЧрдП рдХреИрд╢ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдпрд╛ рдирд╣реАрдВред

рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реНрдг рдкрддрд▓реА рдорд╛рддреНрд░рд╛ рдкрд░ рдЧрддрд┐ рдХреЛ рдорд╛рдкрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рд╕реЗ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдЦрдХ рдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ рдХрд┐ рдкрд╣рд▓рд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓реЗрдЦрди рдХреИрд╕реЗ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдХреИрд╢ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░рд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХреЙрдкреА-рдСрди-рд░рд╛рдЗрдЯ рд░рд╛рдЗрдЯ рд╕рд┐рдореЗрдВрдЯрд┐рдХреНрд╕, рдХреИрд╢ рдХреЗ рд╕рдВрд░реЗрдЦрдг рдФрд░ рдкрддрд▓реЗ рд╡реЙрд▓реНрдпреВрдо рдмреНрд▓реЙрдХ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ RAID 6 рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓реЗрдЦрди RAID 6 рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реАрдб рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреИрд╢ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, RAID 6 рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реАрдбрд┐рдВрдЧ рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 6 рдЧреБрдирд╛ (рд╕рд░рдгреА рдореЗрдВ SATA SSDs рдХреА рд╕рдВрдЦреНрдпрд╛) рддрдХ рддреЗрдЬрд╝ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ CoW рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдПрдХ рдкрддрд▓реЗ рдкреВрд▓ рд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдХреНрд░рдорд┐рдХ рдореЗрдВ рднреА рдмрджрд▓ рдЬрд╛рддреА рд╣реИред

рдЗрди рджреЛрдиреЛрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

"рд╕реБрд╕рдВрдЧрдд" рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдХреИрд╢ рдХрд░реЗрдВ

рдХреИрд╢ рдХреНрд╖рддрд┐/рд╣рд╛рдирд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦрдХ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдирдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдХреЗ рд▓рд┐рдП рдШреВрд░реНрдгрди рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреА рдкреНрд░рдерд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреНрдпреЛрдВрдХрд┐ рдкрддрд▓реА рдорд╛рддреНрд░рд╛ рд╡рд╛рд▓рд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдХ рдЕрдирдХреИрд╢реНрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд░рд╣рддрд╛ рд╣реИ, рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдиреБрдХрд╕рд╛рди рдХреЛ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЗ рднреАрддрд░ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдиреИрдкрд╢реЙрдЯ рд░реЛрдЯреЗрд╢рди рдЪрдХреНрд░ рдХреИрд╢ рд╣рд╛рдирд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ:

  1. <name> рдирд╛рдо рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрддрд▓реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП, <name>.cached рдирд╛рдо рд╕реЗ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдПрдВ
  2. рдЖрдЗрдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реАрдорд╛ рдХреЛ рдЙрдЪрд┐рдд рдЙрдЪреНрдЪ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ: #lvchange --quiet --cachesettings "migration_threshold=16384" cache/cachedata
  3. рд▓реВрдк рдореЗрдВ рд╣рдо рдХреИрд╢ рдореЗрдВ рдЧрдВрджреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ: #lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}' рдЬрдм рддрдХ рд╣рдореЗрдВ рд╢реВрдиреНрдп рди рдорд┐рд▓ рдЬрд╛рдП. рдпрджрд┐ рд╢реВрдиреНрдп рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХреИрд╢ рдХреЛ рд░рд╛рдЗрдЯрдереНрд░реВ рдореЛрдб рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдорд╛рд░реЗ SATA рдФрд░ NVMe SSD рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЧрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рд╕рд╛рде рд╣реА рдЙрдирдХреЗ TBW рд╕рдВрд╕рд╛рдзрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЖрдк рдпрд╛ рддреЛ рдХреИрд╢ рдореЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рддреБрд░рдВрдд рдХреНрд╖рдг рдХреЛ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдпрд╛ рдЖрдкрдХрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЗрд╕рдХреЗ рд╕рдВрдкреВрд░реНрдг рд╕рдВрд╕рд╛рдзрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреБрдЫ рджрд┐рдиред рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рд╕рд┐рд╕реНрдЯрдо, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рд░ рд╕рдордп 100% рд░рд╛рдЗрдЯ рд▓реЛрдб рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд░рд╣рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИред 100% рд░рд╛рдЗрдЯ рд▓реЛрдб рдХреЗ рддрд╣рдд рд╣рдорд╛рд░реЗ рдПрдирд╡реАрдПрдордИ рдПрд╕рдПрд╕рдбреА рд╕рдВрд╕рд╛рдзрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗ 3-4 рджрд┐рди. SATA SSDs рдХреЗрд╡рд▓ рджреЛрдЧреБрдиреЗ рд╕рдордп рддрдХ рд╣реА рдЪрд▓реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдорд╛рди рд▓реЗрдВрдЧреЗ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдФрд╕рддрди рдХрдо рднрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдЕрддреНрдпрдзрд┐рдХ рдЙрдЪреНрдЪ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реИрдВред
  4. рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рд╢реВрдиреНрдп рдкрдХрдбрд╝рд╛ (рдпрд╛ рдмрдирд╛рдпрд╛), рд╣рдо <name>.cached рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ <name>.committed рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдкреБрд░рд╛рдирд╛ <name>.committed рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  5. рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдХреИрд╢ 100% рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдзреЗ-рдЦрд╛рд▓реА рдХреИрд╢ рдХреЗ рд╕рд╛рде, рд▓рд┐рдЦрддреЗ рд╕рдордп рд╕рд┐рд╕реНрдЯрдо рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  6. рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реАрдорд╛ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ: #lvchange --quiet --cachesettings "migration_threshold=0" cache/cachedata рдпрд╣ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХреИрд╢ рдХреЛ рдореБрдЦреНрдп рдореАрдбрд┐рдпрд╛ рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХ рджреЗрдЧрд╛ред
  7. рд╣рдо рдХреИрд╢ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЬрдорд╛ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ #lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}' рдпрд╛ рдЯрд╛рдЗрдорд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛.
  8. рд╣рдо рдлрд┐рд░ рд╕реЗ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ.

рдкреНрд░рд╡рд╛рд╕рди рд╕реАрдорд╛ рдХреЛ рд▓реЗрдХрд░ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдХреНрдпреЛрдВ...?рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдПрдХ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рд╣рдордиреЗ 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдХреЗ рдХрд┐рд╕реА рд╕реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдЙрд╕реА рдпрд╛ рдкрдбрд╝реЛрд╕реА (+-32K) рд╕реЗрдХреНрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рд╕реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдереНрд░реЗрд╢реЛрд▓реНрдб рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ, рд╣рдо SATA SSD рдкрд░ рд░рд╛рдЗрдЯ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╢ рдореЗрдВ рдПрдХ 64K рдмреНрд▓реЙрдХ рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ SATA SSD рдХреЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред

рдХреЛрдб рдХрд╣рд╛рдВ рд╣реИ..?рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЗрдЦрдХ рдЦреБрдж рдХреЛ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдорд╛рдирддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ 100% рд╕реНрд╡-рд╕рд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ "Google"-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓рд╛ рднрдпрд╛рдирдХ рдХреЛрдб рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдиреНрдпрдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреЗрд╢реЗрд╡рд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдФрд░, рд╢рд╛рдпрдж, рдЗрд╕реЗ рдПрдХ рд╕рд┐рд╕реНрдЯрдордб рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рднреА рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦрдХ рдиреЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереАред

рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд░рд▓ рд╕реНрдиреИрдкрд╢реЙрдЯ рд░реЛрдЯреЗрд╢рди рдпреЛрдЬрдирд╛ рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ SATA SSD рдкрд░ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА, рдмрд▓реНрдХрд┐ thin_delta рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА рдХрд┐ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдХреМрди рд╕реЗ рдмреНрд▓реЙрдХ рдмрджрд▓реЗ рдЧрдП рдереЗ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреНрд╖рддрд┐ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред рдореБрдЦреНрдп рд╡реЙрд▓реНрдпреВрдо, рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

libvirt/KVM рдореЗрдВ рдЯреНрд░рд┐рдо/рдбрд┐рд╕реНрдХрд╛рд░реНрдб рдХрд░реЗрдВ

рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡реАрдПрдо рдореЗрдВ libvirt рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╡реАрдПрдо рдХреЛ рди рдХреЗрд╡рд▓ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рд▓реЗрдирд╛ рд╕рд┐рдЦрд╛рдПрдВ, рдмрд▓реНрдХрд┐ рдЬреЛ рдЕрдм рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдЙрд╕реЗ рднреА рдЦрд╛рд▓реА рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рдПрдВред

рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдХ рдкрд░ TRIM/DISCARD рд╕рдорд░реНрдерди рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░рдХрд╛рд░ рдХреЛ virtio-scsi рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ xml рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

#virsh edit vmname
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='writethrough' io='threads' discard='unmap'/>
<source dev='/dev/images/vmname'/>
<backingStore/>
<target dev='sda' bus='scsi'/>
<alias name='scsi0-0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>

<controller type='scsi' index='0' model='virtio-scsi'>
<alias name='scsi0'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</controller>

рдЕрддрд┐рдерд┐ OSes рд╕реЗ рдРрд╕реЗ DISCARD рдХреЛ LVM рджреНрд╡рд╛рд░рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмреНрд▓реЙрдХ рдХреЛ рдХреИрд╢ рдФрд░ рдерд┐рди рдкреВрд▓ рджреЛрдиреЛрдВ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рд▓рдВрдмрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдЕрдЧрд▓рд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рдмреИрдХрдЕрдк

рдЗрд╕рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ╨║╤А╨░╨╣╨╜╨╡╨╣ рд╕рд╛рд╡рдзрд╛рдиреА рдФрд░ рдЕрдкрдиреЗ рдЬреЛрдЦрд┐рдо рдкрд░. рд▓реЗрдЦрдХ рдиреЗ рдпрд╣ рдХреЛрдб рд╕реНрд╡рдпрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рдЕрдиреБрднрд╡реА рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди рдЙрдкрдХрд░рдг рд╣реИрдВ, рдФрд░ рдХрд┐рд╕реА рдФрд░ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЖрдЗрдП рдмреИрдХрдЕрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рд╡реЙрд▓реНрдпреВрдо рдмрдирд╛рдПрдВ:

#lvcreate -L 256G --name backup backup

рдЖрдЗрдП рдЗрд╕реЗ BTRFS рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ:

#mkfs.btrfs /dev/backup/backup

рдЖрдЗрдП рдорд╛рдЙрдВрдЯ рдкреЙрдЗрдВрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдЯ рдЙрдк-рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

#mkdir /backup
#mkdir /backup/btrfs
#mkdir /backup/btrfs/root
#mkdir /backup/btrfs/back
#ln -s /boot /backup/btrfs
# cat >>/etc/fstab << EOF

/dev/mapper/root-root /backup/btrfs/root btrfs defaults,space_cache,noatime,nodiratime 0 2
/dev/mapper/backup-backup /backup/btrfs/back btrfs defaults,space_cache,noatime,nodiratime 0 2
EOF
#mount -a
#update-initramfs -u
#update-grub

рдЖрдЗрдП рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдПрдБ:

#mkdir /backup/btrfs/back/remote
#mkdir /backup/btrfs/back/remote/root
#mkdir /backup/btrfs/back/remote/boot

рдЖрдЗрдП рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ:

#mkdir /root/btrfs-backup

рдЖрдЗрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ:

рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбрд░рд╛рд╡рдиреЗ рдмреИрд╢ рдХреЛрдбред рдЕрдкрдиреЗ рдЬреЛрдЦрд┐рдо рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд▓реЗрдЦрдХ рдХреЛ рдХреНрд░реЛрдзрд┐рдд рдкрддреНрд░ рди рд▓рд┐рдЦреЗрдВ...#cat >/root/btrfs-backup/btrfs-backup.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

LOCK_FILE="/dev/shm/$SCRIPT_NAME.lock"
DATE_PREFIX='%Y-%m-%d'
DATE_FORMAT=$DATE_PREFIX'-%H-%M-%S'
DATE_REGEX='[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
BASE_SUFFIX=".@base"
PEND_SUFFIX=".@pend"
SNAP_SUFFIX=".@snap"
MOUNTS="/backup/btrfs/"
BACKUPS="/backup/btrfs/back/remote/"

function terminate ()
{
echo "$1" >&2
exit 1
}

function wait_lock()
{
flock 98
}

function wait_lock_or_terminate()
{
echo "Wating for lock..."
wait_lock || terminate "Failed to get lock. Exiting..."
echo "Got lock..."
}

function suffix()
{
FORMATTED_DATE=$(date +"$DATE_FORMAT")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function filter()
{
FORMATTED_DATE=$(date --date="$1" +"$DATE_PREFIX")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function backup()
{
SOURCE_PATH="$MOUNTS$1"
TARGET_PATH="$BACKUPS$1"
SOURCE_BASE_PATH="$MOUNTS$1$BASE_SUFFIX"
TARGET_BASE_PATH="$BACKUPS$1$BASE_SUFFIX"
TARGET_BASE_DIR="$(dirname $TARGET_BASE_PATH)"
SOURCE_PEND_PATH="$MOUNTS$1$PEND_SUFFIX"
TARGET_PEND_PATH="$BACKUPS$1$PEND_SUFFIX"
if [ -d "$SOURCE_BASE_PATH" ] then
echo "$SOURCE_BASE_PATH found"
else
echo "$SOURCE_BASE_PATH File not found creating snapshot of $SOURCE_PATH to $SOURCE_BASE_PATH"
btrfs subvolume snapshot -r $SOURCE_PATH $SOURCE_BASE_PATH
sync
if [ -d "$TARGET_BASE_PATH" ] then
echo "$TARGET_BASE_PATH found out of sync with source... removing..."
btrfs subvolume delete -c $TARGET_BASE_PATH
sync
fi
fi
if [ -d "$TARGET_BASE_PATH" ] then
echo "$TARGET_BASE_PATH found"
else
echo "$TARGET_BASE_PATH not found. Synching to $TARGET_BASE_DIR"
btrfs send $SOURCE_BASE_PATH | btrfs receive $TARGET_BASE_DIR
sync
fi
if [ -d "$SOURCE_PEND_PATH" ] then
echo "$SOURCE_PEND_PATH found removing..."
btrfs subvolume delete -c $SOURCE_PEND_PATH
sync
fi
btrfs subvolume snapshot -r $SOURCE_PATH $SOURCE_PEND_PATH
sync
if [ -d "$TARGET_PEND_PATH" ] then
echo "$TARGET_PEND_PATH found removing..."
btrfs subvolume delete -c $TARGET_PEND_PATH
sync
fi
echo "Sending $SOURCE_PEND_PATH to $TARGET_PEND_PATH"
btrfs send -p $SOURCE_BASE_PATH $SOURCE_PEND_PATH | btrfs receive $TARGET_BASE_DIR
sync
TARGET_DATE_SUFFIX=$(suffix)
btrfs subvolume snapshot -r $TARGET_PEND_PATH "$TARGET_PATH$TARGET_DATE_SUFFIX"
sync
btrfs subvolume delete -c $SOURCE_BASE_PATH
sync
btrfs subvolume delete -c $TARGET_BASE_PATH
sync
mv $SOURCE_PEND_PATH $SOURCE_BASE_PATH
mv $TARGET_PEND_PATH $TARGET_BASE_PATH
sync
}

function list()
{
LIST_TARGET_BASE_PATH="$BACKUPS$1$BASE_SUFFIX"
LIST_TARGET_BASE_DIR="$(dirname $LIST_TARGET_BASE_PATH)"
LIST_TARGET_BASE_NAME="$(basename -s .$BASE_SUFFIX $LIST_TARGET_BASE_PATH)"
find "$LIST_TARGET_BASE_DIR" -maxdepth 1 -mindepth 1 -type d -printf "%fn" | grep "${LIST_TARGET_BASE_NAME/$BASE_SUFFIX/$SNAP_SUFFIX}.$DATE_REGEX"
}

function remove()
{
REMOVE_TARGET_BASE_PATH="$BACKUPS$1$BASE_SUFFIX"
REMOVE_TARGET_BASE_DIR="$(dirname $REMOVE_TARGET_BASE_PATH)"
btrfs subvolume delete -c $REMOVE_TARGET_BASE_DIR/$2
sync
}

function removeall()
{
DATE_OFFSET="$2"
FILTER="$(filter "$DATE_OFFSET")"
while read -r SNAPSHOT ; do
remove "$1" "$SNAPSHOT"
done < <(list "$1" | grep "$FILTER")

}

(
COMMAND="$1"
shift

case "$COMMAND" in
"--help")
echo "Help"
;;
"suffix")
suffix
;;
"filter")
filter "$1"
;;
"backup")
wait_lock_or_terminate
backup "$1"
;;
"list")
list "$1"
;;
"remove")
wait_lock_or_terminate
remove "$1" "$2"
;;
"removeall")
wait_lock_or_terminate
removeall "$1" "$2"
;;
*)
echo "None.."
;;
esac
) 98>$LOCK_FILE

EOF

рдпрд╣ рдХрд░рддрд╛ рднреА рдХреНрдпрд╛ рд╣реИ..?рдЗрд╕рдореЗрдВ рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рд╕реЗрдВрдб/рд░рд┐рд╕реАрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рджреВрд╕рд░реЗ рдПрдлрдПрд╕ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдкрд╣рд▓рд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд▓рдВрдмрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐... рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдЧреЗ рдХреА рд▓реЙрдиреНрдЪрд┐рдВрдЧ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐... рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреЙрдкреА рдХрд┐рдпреЗ рдЬрд╛рдпреЗрдВрдЧреЗ.

рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рд╕реЗ рд╣рдо рдХреНрд░реЙрди рдореЗрдВ рдбрд╛рд▓реЗрдВрдЧреЗ:

рдХреБрдЫ рдФрд░ рдмреИрд╢ рдХреЛрдб#cat >/root/btrfs-backup/cron-daily.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

BACKUP_SCRIPT="$SCRIPT_DIR/btrfs-backup.sh"
RETENTION="-60 day"
$BACKUP_SCRIPT backup root/@
$BACKUP_SCRIPT removeall root/@ "$RETENTION"
$BACKUP_SCRIPT backup root/@home
$BACKUP_SCRIPT removeall root/@home "$RETENTION"
$BACKUP_SCRIPT backup boot/
$BACKUP_SCRIPT removeall boot/ "$RETENTION"
EOF

рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ..?рдмреИрдХрдЕрдк рдПрдлрдПрд╕ рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдпрд╣ 60 рджрд┐рди рдкрд╣рд▓реЗ рдмрдирд╛рдИ рдЧрдИ рд╕рднреА рддрд╕реНрд╡реАрд░реЗрдВ рдбрд┐рд▓реАрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИред рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж, рд╕реВрдЪреАрдмрджреНрдз рд╡реЙрд▓реНрдпреВрдо рдХреЗ рджрд┐рдирд╛рдВрдХрд┐рдд рд╕реНрдиреИрдкрд╢реЙрдЯ /рдмреИрдХрдЕрдк/рдмреАрдЯреАрдЖрд░рдПрдлрдПрд╕/рдмреИрдХ/рд░рд┐рдореЛрдЯ/ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред

рдЖрдЗрдП рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдЕрдзрд┐рдХрд╛рд░ рджреЗрдВ:

#chmod +x /root/btrfs-backup/cron-daily.sh
#chmod +x /root/btrfs-backup/btrfs-backup.sh

рдЖрдЗрдП рдЗрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рдЗрд╕реЗ рдХреНрд░реЙрди рдореЗрдВ рдбрд╛рд▓реЗрдВ:

#/usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/btrfs-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t btrfs-backup
#cat /var/log/syslog | grep btrfs-backup
#crontab -e
0 2 * * * /usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/btrfs-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t btrfs-backup

LVM рдкрддрд▓рд╛ рдмреИрдХрдЕрдк

рдЖрдЗрдП рдмреИрдХрдЕрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рдкрддрд▓рд╛ рдкреВрд▓ рдмрдирд╛рдПрдВ:

#lvcreate -L 274877906944B --poolmetadataspare y --poolmetadatasize 4294967296B --chunksize 64k -Z y -T backup/thin-pool

рдЖрдЗрдП ddrescue рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐... рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреА:

#apt-get install gddrescue

рдЖрдЗрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ:

#mkdir /root/lvm-thin-backup

рдЖрдЗрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрдкреА рдХрд░реЗрдВ:

рдЕрдВрджрд░ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рд╣рдВрдЧрд╛рдорд╛...#cat >/root/lvm-thin-backup/lvm-thin-backup.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

LOCK_FILE="/dev/shm/$SCRIPT_NAME.lock"
DATE_PREFIX='%Y-%m-%d'
DATE_FORMAT=$DATE_PREFIX'-%H-%M-%S'
DATE_REGEX='[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
BASE_SUFFIX=".base"
PEND_SUFFIX=".pend"
SNAP_SUFFIX=".snap"
BACKUPS="backup"
BACKUPS_POOL="thin-pool"

export LVM_SUPPRESS_FD_WARNINGS=1

function terminate ()
{
echo "$1" >&2
exit 1
}

function wait_lock()
{
flock 98
}

function wait_lock_or_terminate()
{
echo "Wating for lock..."
wait_lock || terminate "Failed to get lock. Exiting..."
echo "Got lock..."
}

function suffix()
{
FORMATTED_DATE=$(date +"$DATE_FORMAT")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function filter()
{
FORMATTED_DATE=$(date --date="$1" +"$DATE_PREFIX")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function read_thin_id {
lvs --rows --reportformat basic --quiet -othin_id "$1/$2" | awk '{print $2}'
}

function read_pool_lv {
lvs --rows --reportformat basic --quiet -opool_lv "$1/$2" | awk '{print $2}'
}

function read_lv_dm_path {
lvs --rows --reportformat basic --quiet -olv_dm_path "$1/$2" | awk '{print $2}'
}

function read_lv_active {
lvs --rows --reportformat basic --quiet -olv_active "$1/$2" | awk '{print $2}'
}

function read_lv_chunk_size {
lvs --rows --reportformat basic --quiet --units b --nosuffix -ochunk_size "$1/$2" | awk '{print $2}'
}

function read_lv_size {
lvs --rows --reportformat basic --quiet --units b --nosuffix -olv_size "$1/$2" | awk '{print $2}'
}

function activate_volume {
lvchange -ay -Ky "$1/$2"
}

function deactivate_volume {
lvchange -an "$1/$2"
}

function read_thin_metadata_snap {
dmsetup status "$1" | awk '{print $7}'
}

function thindiff()
{
DIFF_VG="$1"
DIFF_SOURCE="$2"
DIFF_TARGET="$3"
DIFF_SOURCE_POOL=$(read_pool_lv $DIFF_VG $DIFF_SOURCE)
DIFF_TARGET_POOL=$(read_pool_lv $DIFF_VG $DIFF_TARGET)

if [ "$DIFF_SOURCE_POOL" == "" ] then
(>&2 echo "Source LV is not thin.")
exit 1
fi

if [ "$DIFF_TARGET_POOL" == "" ] then
(>&2 echo "Target LV is not thin.")
exit 1
fi

if [ "$DIFF_SOURCE_POOL" != "$DIFF_TARGET_POOL" ] then
(>&2 echo "Source and target LVs belong to different thin pools.")
exit 1
fi

DIFF_POOL_PATH=$(read_lv_dm_path $DIFF_VG $DIFF_SOURCE_POOL)
DIFF_SOURCE_ID=$(read_thin_id $DIFF_VG $DIFF_SOURCE)
DIFF_TARGET_ID=$(read_thin_id $DIFF_VG $DIFF_TARGET)
DIFF_POOL_PATH_TPOOL="$DIFF_POOL_PATH-tpool"
DIFF_POOL_PATH_TMETA="$DIFF_POOL_PATH"_tmeta
DIFF_POOL_METADATA_SNAP=$(read_thin_metadata_snap $DIFF_POOL_PATH_TPOOL)

if [ "$DIFF_POOL_METADATA_SNAP" != "-" ] then
(>&2 echo "Thin pool metadata snapshot already exist. Assuming stale one. Will release metadata snapshot in 5 seconds.")
sleep 5
dmsetup message $DIFF_POOL_PATH_TPOOL 0 release_metadata_snap
fi

dmsetup message $DIFF_POOL_PATH_TPOOL 0 reserve_metadata_snap
DIFF_POOL_METADATA_SNAP=$(read_thin_metadata_snap $DIFF_POOL_PATH_TPOOL)

if [ "$DIFF_POOL_METADATA_SNAP" == "-" ] then
(>&2 echo "Failed to create thin pool metadata snapshot.")
exit 1
fi

#We keep output in variable because metadata snapshot need to be released early.
DIFF_DATA=$(thin_delta -m$DIFF_POOL_METADATA_SNAP --snap1 $DIFF_SOURCE_ID --snap2 $DIFF_TARGET_ID $DIFF_POOL_PATH_TMETA)

dmsetup message $DIFF_POOL_PATH_TPOOL 0 release_metadata_snap

echo $"$DIFF_DATA" | grep -E 'different|left_only|right_only' | sed 's/</"/g' | sed 's/ /"/g' | awk -F'"' '{print $6 "t" $8 "t" $11}' | sed 's/different/copy/g' | sed 's/left_only/copy/g' | sed 's/right_only/discard/g'

}

function thinsync()
{
SYNC_VG="$1"
SYNC_PEND="$2"
SYNC_BASE="$3"
SYNC_TARGET="$4"
SYNC_PEND_POOL=$(read_pool_lv $SYNC_VG $SYNC_PEND)
SYNC_BLOCK_SIZE=$(read_lv_chunk_size $SYNC_VG $SYNC_PEND_POOL)
SYNC_PEND_PATH=$(read_lv_dm_path $SYNC_VG $SYNC_PEND)

activate_volume $SYNC_VG $SYNC_PEND

while read -r SYNC_ACTION SYNC_OFFSET SYNC_LENGTH ; do
SYNC_OFFSET_BYTES=$((SYNC_OFFSET * SYNC_BLOCK_SIZE))
SYNC_LENGTH_BYTES=$((SYNC_LENGTH * SYNC_BLOCK_SIZE))
if [ "$SYNC_ACTION" == "copy" ] then
ddrescue --quiet --force --input-position=$SYNC_OFFSET_BYTES --output-position=$SYNC_OFFSET_BYTES --size=$SYNC_LENGTH_BYTES "$SYNC_PEND_PATH" "$SYNC_TARGET"
fi

if [ "$SYNC_ACTION" == "discard" ] then
blkdiscard -o $SYNC_OFFSET_BYTES -l $SYNC_LENGTH_BYTES "$SYNC_TARGET"
fi
done < <(thindiff "$SYNC_VG" "$SYNC_PEND" "$SYNC_BASE")
}

function discard_volume()
{
DISCARD_VG="$1"
DISCARD_LV="$2"
DISCARD_LV_PATH=$(read_lv_dm_path "$DISCARD_VG" "$DISCARD_LV")
if [ "$DISCARD_LV_PATH" != "" ] then
echo "$DISCARD_LV_PATH found"
else
echo "$DISCARD_LV not found in $DISCARD_VG"
exit 1
fi
DISCARD_LV_POOL=$(read_pool_lv $DISCARD_VG $DISCARD_LV)
DISCARD_LV_SIZE=$(read_lv_size "$DISCARD_VG" "$DISCARD_LV")
lvremove -y --quiet "$DISCARD_LV_PATH" || exit 1
lvcreate --thin-pool "$DISCARD_LV_POOL" -V "$DISCARD_LV_SIZE"B --name "$DISCARD_LV" "$DISCARD_VG" || exit 1
}

function backup()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
SOURCE_PEND_LV="$SOURCE_LV$PEND_SUFFIX"
TARGET_PEND_LV="$TARGET_LV$PEND_SUFFIX"
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
SOURCE_PEND_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_PEND_LV")
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
TARGET_PEND_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_PEND_LV")

if [ "$SOURCE_BASE_LV_PATH" != "" ] then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "Source base not found creating snapshot of $SOURCE_VG/$SOURCE_LV to $SOURCE_VG/$SOURCE_BASE_LV"
lvcreate --quiet --snapshot --name "$SOURCE_BASE_LV" "$SOURCE_VG/$SOURCE_LV" || exit 1
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
echo "Discarding $SOURCE_BASE_LV_PATH as we need to bootstrap."
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SOURCE_BASE_CHUNK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)
discard_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
sync
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found out of sync with source... removing..."
lvremove -y --quiet $TARGET_BASE_LV_PATH || exit 1
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
sync
fi
fi
SOURCE_BASE_SIZE=$(read_lv_size "$SOURCE_VG" "$SOURCE_BASE_LV")
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_VG/$TARGET_LV not found. Creating empty volume."
lvcreate --thin-pool "$BACKUPS_POOL" -V "$SOURCE_BASE_SIZE"B --name "$TARGET_BASE_LV" "$TARGET_VG" || exit 1
echo "Have to rebootstrap. Discarding source at $SOURCE_BASE_LV_PATH"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SOURCE_BASE_CHUNK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)
discard_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
TARGET_BASE_POOL=$(read_pool_lv $TARGET_VG $TARGET_BASE_LV)
TARGET_BASE_CHUNK_SIZE=$(read_lv_chunk_size $TARGET_VG $TARGET_BASE_POOL)
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
echo "Discarding target at $TARGET_BASE_LV_PATH"
discard_volume "$TARGET_VG" "$TARGET_BASE_LV"
sync
fi
if [ "$SOURCE_PEND_LV_PATH" != "" ] then
echo "$SOURCE_PEND_LV_PATH found removing..."
lvremove -y --quiet "$SOURCE_PEND_LV_PATH" || exit 1
sync
fi
lvcreate --quiet --snapshot --name "$SOURCE_PEND_LV" "$SOURCE_VG/$SOURCE_LV" || exit 1
SOURCE_PEND_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_PEND_LV")
sync
if [ "$TARGET_PEND_LV_PATH" != "" ] then
echo "$TARGET_PEND_LV_PATH found removing..."
lvremove -y --quiet $TARGET_PEND_LV_PATH
sync
fi
lvcreate --quiet --snapshot --name "$TARGET_PEND_LV" "$TARGET_VG/$TARGET_BASE_LV" || exit 1
TARGET_PEND_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_PEND_LV")
SOURCE_PEND_LV_SIZE=$(read_lv_size "$SOURCE_VG" "$SOURCE_PEND_LV")
lvresize -L "$SOURCE_PEND_LV_SIZE"B "$TARGET_PEND_LV_PATH"
activate_volume "$TARGET_VG" "$TARGET_PEND_LV"
echo "Synching $SOURCE_PEND_LV_PATH to $TARGET_PEND_LV_PATH"
thinsync "$SOURCE_VG" "$SOURCE_PEND_LV" "$SOURCE_BASE_LV" "$TARGET_PEND_LV_PATH" || exit 1
sync

TARGET_DATE_SUFFIX=$(suffix)
lvcreate --quiet --snapshot --name "$TARGET_LV$TARGET_DATE_SUFFIX" "$TARGET_VG/$TARGET_PEND_LV" || exit 1
sync
lvremove --quiet -y "$SOURCE_BASE_LV_PATH" || exit 1
sync
lvremove --quiet -y "$TARGET_BASE_LV_PATH" || exit 1
sync
lvrename -y "$SOURCE_VG/$SOURCE_PEND_LV" "$SOURCE_BASE_LV" || exit 1
lvrename -y "$TARGET_VG/$TARGET_PEND_LV" "$TARGET_BASE_LV" || exit 1
sync
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}

function verify()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")

if [ "$SOURCE_BASE_LV_PATH" != "" ] then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "$SOURCE_BASE_LV_PATH not found"
exit 1
fi
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_BASE_LV_PATH not found"
exit 1
fi
activate_volume "$TARGET_VG" "$TARGET_BASE_LV"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
echo Comparing "$SOURCE_BASE_LV_PATH" with "$TARGET_BASE_LV_PATH"
cmp "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH"
echo Done...
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}

function resync()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")

if [ "$SOURCE_BASE_LV_PATH" != "" ] then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "$SOURCE_BASE_LV_PATH not found"
exit 1
fi
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_BASE_LV_PATH not found"
exit 1
fi
activate_volume "$TARGET_VG" "$TARGET_BASE_LV"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SYNC_BLOCK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)

echo Syncronizing "$SOURCE_BASE_LV_PATH" to "$TARGET_BASE_LV_PATH"

CMP_OFFSET=0
while [[ "$CMP_OFFSET" != "" ]] ; do
CMP_MISMATCH=$(cmp -i "$CMP_OFFSET" "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH" | grep differ | awk '{print $5}' | sed 's/,//g' )
if [[ "$CMP_MISMATCH" != "" ]] ; then
CMP_OFFSET=$(( CMP_MISMATCH + CMP_OFFSET ))
SYNC_OFFSET_BYTES=$(( ( CMP_OFFSET / SYNC_BLOCK_SIZE ) * SYNC_BLOCK_SIZE ))
SYNC_LENGTH_BYTES=$(( SYNC_BLOCK_SIZE ))
echo "Synching $SYNC_LENGTH_BYTES bytes at $SYNC_OFFSET_BYTES from $SOURCE_BASE_LV_PATH to $TARGET_BASE_LV_PATH"
ddrescue --quiet --force --input-position=$SYNC_OFFSET_BYTES --output-position=$SYNC_OFFSET_BYTES --size=$SYNC_LENGTH_BYTES "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH"
else
CMP_OFFSET=""
fi
done
echo Done...
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}

function list()
{
LIST_SOURCE_VG="$1"
LIST_SOURCE_LV="$2"
LIST_TARGET_VG="$BACKUPS"
LIST_TARGET_LV="$LIST_SOURCE_VG-$LIST_SOURCE_LV"
LIST_TARGET_BASE_LV="$LIST_TARGET_LV$SNAP_SUFFIX"
lvs -olv_name | grep "$LIST_TARGET_BASE_LV.$DATE_REGEX"
}

function remove()
{
REMOVE_TARGET_VG="$BACKUPS"
REMOVE_TARGET_LV="$1"
lvremove -y "$REMOVE_TARGET_VG/$REMOVE_TARGET_LV"
sync
}

function removeall()
{
DATE_OFFSET="$3"
FILTER="$(filter "$DATE_OFFSET")"
while read -r SNAPSHOT ; do
remove "$SNAPSHOT"
done < <(list "$1" "$2" | grep "$FILTER")

}

(
COMMAND="$1"
shift

case "$COMMAND" in
"--help")
echo "Help"
;;
"suffix")
suffix
;;
"filter")
filter "$1"
;;
"backup")
wait_lock_or_terminate
backup "$1" "$2"
;;
"list")
list "$1" "$2"
;;
"thindiff")
thindiff "$1" "$2" "$3"
;;
"thinsync")
thinsync "$1" "$2" "$3" "$4"
;;
"verify")
wait_lock_or_terminate
verify "$1" "$2"
;;
"resync")
wait_lock_or_terminate
resync "$1" "$2"
;;
"remove")
wait_lock_or_terminate
remove "$1"
;;
"removeall")
wait_lock_or_terminate
removeall "$1" "$2" "$3"
;;
*)
echo "None.."
;;
esac
) 98>$LOCK_FILE

EOF

рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ...?рдЗрд╕рдореЗрдВ рдкрддрд▓реЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдФрд░ thin_delta рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рджреЛ рдкрддрд▓реЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ ddrescue рдФрд░ blkdiscard рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд▓реЙрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рд╕реЗ рд╣рдо рдХреНрд░реЙрди рдореЗрдВ рдбрд╛рд▓реЗрдВрдЧреЗ:

рдереЛрдбрд╝рд╛ рдФрд░ рдкреНрд░рд╣рд╛рд░#cat >/root/lvm-thin-backup/cron-daily.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

BACKUP_SCRIPT="$SCRIPT_DIR/lvm-thin-backup.sh"
RETENTION="-60 days"

$BACKUP_SCRIPT backup images linux-dev
$BACKUP_SCRIPT backup images win8
$BACKUP_SCRIPT backup images win8-data
#etc

$BACKUP_SCRIPT removeall images linux-dev "$RETENTION"
$BACKUP_SCRIPT removeall images win8 "$RETENTION"
$BACKUP_SCRIPT removeall images win8-data "$RETENTION"
#etc

EOF

рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ...?рд╕реВрдЪреАрдмрджреНрдз рдкрддрд▓реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдмреИрдХрдЕрдк рдмрдирд╛рдиреЗ рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реВрдЪреАрдмрджреНрдз рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реНрдиреИрдкрд╢реЙрдЯ рдЫреЛрдбрд╝ рджреЗрдЧреА, рдЬреЛ рдЕрдВрддрд┐рдо рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред

рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдЙрди рдкрддрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдмреИрдХрдЕрдк рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рджрд┐рдП рдЧрдП рдирд╛рдо рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдПрдХ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рд╡реЙрд▓реНрдпреВрдо рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░ рджреЗрдЧреАред

рдЖрдЗрдП рдЕрдзрд┐рдХрд╛рд░ рджреЗрдВ:

#chmod +x /root/lvm-thin-backup/cron-daily.sh
#chmod +x /root/lvm-thin-backup/lvm-thin-backup.sh

рдЖрдЗрдП рдЗрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рдЗрд╕реЗ рдХреНрд░реЙрди рдореЗрдВ рдбрд╛рд▓реЗрдВ:

#/usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/lvm-thin-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t lvm-thin-backup
#cat /var/log/syslog | grep lvm-thin-backup
#crontab -e
0 3 * * * /usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/lvm-thin-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t lvm-thin-backup

рдкрд╣рд▓рд╛ рд▓реЙрдиреНрдЪ рд▓рдВрдмрд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐... рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА рд╕реНрдерд╛рди рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдХрд░ рдкрддрд▓реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрд▓рд╡реАрдПрдо рдкрддрд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдмреНрд▓реЙрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкрддрд▓реЗ рд╡реЙрд▓реНрдпреВрдо рдмреНрд▓реЙрдХ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред

рдПрд▓рд╡реАрдПрдо рдкрддрд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░реИрдХрд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдмрд╛рдж рдХреЗ рд░рди рдбреЗрдЯрд╛ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░ рджреЗрдВрдЧреЗред

рджреЗрдЦрддреЗ рд╣реИ рдХреНрдпрд╛ рд╣реБрдЖ:

#time /root/btrfs-backup/cron-daily.sh
real 0m2,967s
user 0m0,225s
sys 0m0,353s

#time /root/lvm-thin-backup/cron-daily.sh
real 1m2,710s
user 0m12,721s
sys 0m6,671s

#ls -al /backup/btrfs/back/remote/*
/backup/btrfs/back/remote/boot:
total 0
drwxr-xr-x 1 root root 1260 ╨╝╨░╤А 26 09:11 .
drwxr-xr-x 1 root root 16 ╨╝╨░╤А 6 09:30 ..
drwxr-xr-x 1 root root 322 ╨╝╨░╤А 26 02:00 .@base
drwxr-xr-x 1 root root 516 ╨╝╨░╤А 6 09:39 [email protected]
drwxr-xr-x 1 root root 516 ╨╝╨░╤А 6 09:39 [email protected]
...
/backup/btrfs/back/remote/root:
total 0
drwxr-xr-x 1 root root 2820 ╨╝╨░╤А 26 09:11 .
drwxr-xr-x 1 root root 16 ╨╝╨░╤А 6 09:30 ..
drwxr-xr-x 1 root root 240 ╨╝╨░╤А 26 09:11 @.@base
drwxr-xr-x 1 root root 22 ╨╝╨░╤А 26 09:11 @home.@base
drwxr-xr-x 1 root root 22 ╨╝╨░╤А 6 09:39 @[email protected]
drwxr-xr-x 1 root root 22 ╨╝╨░╤А 6 09:39 @[email protected]
...
drwxr-xr-x 1 root root 240 ╨╝╨░╤А 6 09:39 @[email protected]
drwxr-xr-x 1 root root 240 ╨╝╨░╤А 6 09:39 @[email protected]
...

#lvs -olv_name,lv_size images && lvs -olv_name,lv_size backup
LV LSize
linux-dev 128,00g
linux-dev.base 128,00g
thin-pool 1,38t
win8 128,00g
win8-data 2,00t
win8-data.base 2,00t
win8.base 128,00g
LV LSize
backup 256,00g
images-linux-dev.base 128,00g
images-linux-dev.snap.2020-03-08-10-09-11 128,00g
images-linux-dev.snap.2020-03-08-10-09-25 128,00g
...
images-win8-data.base 2,00t
images-win8-data.snap.2020-03-16-14-11-55 2,00t
images-win8-data.snap.2020-03-16-14-19-50 2,00t
...
images-win8.base 128,00g
images-win8.snap.2020-03-17-04-51-46 128,00g
images-win8.snap.2020-03-18-03-02-49 128,00g
...
thin-pool <2,09t

рдЗрд╕рдХрд╛ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдЧреБрдбрд╝рд┐рдпрд╛ рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрд▓рд╡реАрдПрдо рдПрд▓рд╡реА рддрд╛рд░реНрдХрд┐рдХ рд╡реЙрд▓реНрдпреВрдо рдЕрдиреНрдп рд╡реАрдЬреА рдХреЗ рд▓рд┐рдП рдПрд▓рд╡реАрдПрдо рдкреАрд╡реА рднреМрддрд┐рдХ рд╡реЙрд▓реНрдпреВрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрд▓рд╡реАрдПрдо рдШреЛрдВрд╕рд▓реЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдЧреБрдбрд╝рд┐рдпрд╛ рдХреА рддрд░рд╣ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ LVM рдХреЛ рдЕрддреНрдпрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╣реЛрдо рдбреЗрд╕реНрдХрдЯреЙрдк, рд╣реЛрдо рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ рдкреА2рдкреА рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдорд╣рд╛рджреНрд╡реАрдкреЛрдВ рдкрд░ рдЕрддрд┐рд░реЗрдХ рдХреЗ рд╕рд╛рде рднреВ-рд╡рд┐рддрд░рд┐рдд рд╕реНрдЯреЛрд░реЗрдЬ/рд╡реАрдПрдо рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рд╕рдорд╛рди рдореЛрдмрд╛рдЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо/рдХреЗрд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ