LVM рд░ Matryoshka рдорд╛ рдХреЗ рд╕рдорд╛рди рдЫ?

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

рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫ:

  • NVMe SSD рдмрд╛рдЯ md RAID 1 рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджреИред
  • SATA SSD рд░ рдирд┐рдпрдорд┐рдд рдбреНрд░рд╛рдЗрднрд╣рд░реВрдмрд╛рдЯ md RAID 6 рд╕рдВрдпреЛрдЬрди рдЧрд░реНрджреИред
  • SSD RAID 1/6 рдорд╛ TRIM/DSCARD рд╕рдЮреНрдЪрд╛рд▓рдирдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВред
  • рдбрд┐рд╕реНрдХрдХреЛ рд╕рд╛рдЭрд╛ рд╕реЗрдЯрдорд╛ рдмреБрдЯреЗрдмрд▓ md RAID 1/6 array рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИред
  • BIOS рдорд╛ NVMe рд╕рдорд░реНрдерди рдирднрдПрдХреЛ рдмреЗрд▓рд╛ NVMe RAID 1 рдорд╛ рдкреНрд░рдгрд╛рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИред
  • LVM рдХреНрдпрд╛рд╕ рд░ LVM рдкрд╛рддрд▓реЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИред
  • BTRFS рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд░ рдмреНрдпрд╛рдХрдЕрдкрдХреЛ рд▓рд╛рдЧрд┐ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН/рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • BTRFS рд╢реИрд▓реА рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ LVM рдкрд╛рддрд▓реЛ рд╕реНрдиреНрдпрд╛рдкрд╢рдЯрд╣рд░реВ рд░ thin_delta рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИред

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЗрдЪреНрдЫреБрдХ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдХреГрдкрдпрд╛ рдмрд┐рд░рд╛рд▓реЛ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдлрд╛рд░рдо

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

  • рдХреБрд░рдХреБрд░рд╛-рдлреНрд░рд╛рдЗрдб NVMe SSDsред
  • рд░реЗрдХрд░реНрдбрд┐рдЩ рд╕реНрд░реЛрдд рд░ SSD рдбреНрд░рд╛рдЗрднрд╣рд░реВрдХреЛ рд╡рд┐рдлрд▓рддрд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛред
  • рдмреНрдпрд╛рдХрдЕрдк рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рд╣рд░реВ рд╕рд╣рд┐рдд рд╕рдмреИ рдбреНрд░рд╛рдЗрднрд╣рд░реВрдорд╛ рд╕рдмреИ рдбреЗрдЯрд╛рдХреЛ рдкреВрд░реНрдг рд╣рд╛рдирд┐ред
  • рдЦрд░рд╛рдм рдХрдореНрдкреНрдпреБрдЯрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ред
  • рд╕рдордп, рд╕реНрдирд╛рдпреБ рд░ рдкреИрд╕рд╛ рдмрд░реНрдмрд╛рджред
  • рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдЬреБрди рдорд╛рдерд┐ рд╕реВрдЪреАрдмрджреНрдз рдЫреИрдирдиреНред

рдЖрдпрд░рди

рдЙрдкрд▓рдмреНрдз рдерд┐рдП:

Z2013 рдЪрд┐рдкрд╕реЗрдЯрдХреЛ рд╕рд╛рде 87 рдмрд╛рдЯ рдорджрд░рдмреЛрд░реНрдб, Intel Core i7 / Haswell рд╕рдБрдЧ рдкреВрд░реНрдгред

  • рдкреНрд░реЛрд╕реЗрд╕рд░ 4 рдХреЛрд░, 8 рдереНрд░реЗрдбрд╣рд░реВ
  • 32 GB DDR3 RAM
  • 1 x 16 рд╡рд╛ 2 x 8 PCIe 3.0
  • 1 x 4 + 1 x 1 PCIe 2.0
  • 6 x 6 GBps SATA 3 рдХрдиреЗрдХреНрдЯрд░рд╣рд░реВ

SAS рдПрдбрд╛рдкреНрдЯрд░ LSI SAS9211-8I IT / HBA рдореЛрдбрдорд╛ рдлреНрд▓реНрдпрд╛рд╕ рднрдпреЛред RAID-рд╕рдХреНрд╖рдо рдлрд░реНрдорд╡реЗрдпрд░рд▓рд╛рдИ рдЬрд╛рдирд╛рдЬрд╛рдиреА HBA рдлрд░реНрдорд╡реЗрдпрд░рд╕рдБрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░рд┐рдПрдХреЛ рдЫ:

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

рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрднрд╣рд░реВ - рд▓реНрдпрд╛рдкрдЯрдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ 8 рдлрд╛рд░рдо рдХрд╛рд░рдХрдорд╛ 7 TB рдХреНрд╖рдорддрд╛рдХреЛ HGST Travelstar 1000K1 рдХреЛ 2.5 рдЯреБрдХреНрд░рд╛рд╣рд░реВред рдпреА рдбреНрд░рд╛рдЗрднрд╣рд░реВ рдкрд╣рд┐рд▓реЗ RAID 6 array рдорд╛ рдерд┐рдПред рдирдпрд╛рдБ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкрдирд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗрдЫред рд╕реНрдерд╛рдиреАрдп рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиред

рдердк рдердкрд┐рдПрдХреЛ:

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

kernel: ata1.00: Enabling discard_zeroes_data

NVMe SSD рдореЛрдбреЗрд▓ Samsung SSD 2 EVO 970GB рдХреЛ реи рдЯреБрдХреНрд░рд╛ред

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

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

рдпреЛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдХреЗрд╡рд▓ рдПрдЙрдЯрд╛ рдирд┐:рд╢реБрд▓реНрдХ 8x PCIe 3.0 рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдорд╛рддреНрд░ рд╣реЛ, рд░, рдпрджрд┐ рддреНрдпрд╣рд╛рдБ 2 рдирд┐: рд╢реБрд▓реНрдХ рд╕реНрд▓рдЯрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рдпрд╕рд▓рд╛рдИ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рджреБрдИ рдкреЗрдиреА PEX4M2E1 рд╡рд╛ рдПрдирд╛рд▓рдЧрд╣рд░реВрд╕рдБрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬреБрди 600 рдХреЛ рдореВрд▓реНрдпрдорд╛ рдЬрд╣рд╛рдБ рдкрдирд┐ рдХрд┐рдиреНрди рд╕рдХрд┐рдиреНрдЫред рд░реБрдмрд▓ред

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

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

рдареАрдХ рдЫ, рд░, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рд▓рд┐рдирдХреНрд╕рдорд╛ SSD рдХреНрдпрд╛рд╕рд┐рдЩрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдзрд┐рд╣рд░реВрд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ред

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЫрд╛рдкрд╛ рдмреЛрд░рд┐рдВрдЧ рдЫрдиреНред рдпрд╕рд▓рд╛рдИ рд╕реБрдЪрд╛рд░реБ рдЧрд░ред рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрдЫ рд╡рд╛ рдЧрд░реНрджреИрдиред рд░ mdadm рд╕рдВрдЧ рддреНрдпрд╣рд╛рдБ рд╕рдзреИрдВ рд╡рд┐рдХрд▓реНрдк рдЫрдиреНред

рд╕рдлреНрдЯрд╡реЗрдпрд░

рдкрд╣рд┐рд▓реЗ, рдбреЗрдмрд┐рдпрди 8 рдЬреЗрд╕реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬреБрди EOL рдирдЬрд┐рдХ рдЫред RAID 6 LVM рд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦрд┐рдд HDDs рдмрд╛рдЯ рднреЗрд▓рд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпрд╕рд▓реЗ kvm/libvirt рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рдЪрд▓рд╛рдПрдХреЛ рдЫред

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

рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рд╕рдмреИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рд╣рд╛рдореАрд▓рд╛рдИ рдХреБрдиреИ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд╛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред

рд╕реНрдерд╛рдкрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░реА рдЧрд░реНрджреИ

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

рдпрд╕рдмрд╛рдЯ рд╣рд╛рдореА рд╕рдиреНрддреБрд╖реНрдЯ рдЫреИрдиреМрдВред

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

рдердк рд░реВрдкрдорд╛, UEFI рдмреБрдЯ NVRAM рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ, рдЬреБрди рдбрд┐рд╕реНрдХрд╕рдБрдЧреИ рдирдпрд╛рдБ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╕рд░реНрджреИрди, рдХрд┐рдирднрдиреЗ рдорджрд░рдмреЛрд░реНрдбрдХреЛ рдЕрдВрд╢ рд╣реЛред

рддреНрдпрд╕реЛрднрдП, рд╣рд╛рдореА рдирдпрд╛рдБ рдкрд╛рдЩреНрдЧреНрд░рд╛ рдкреБрди: рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрджреИрдиреМрдВред рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рддрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд, рд╕рдордп-рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ рд╣рдЬреБрд░рдмреБрдмрд╛рдХреЛ рдмрд╛рдЗрдХ рдЫ, рдЬрд╕рд▓рд╛рдИ рдЕрд╣рд┐рд▓реЗ Legacy/BIOS рдмреБрдЯ рднрдирд┐рдиреНрдЫ, UEFI- рд╕рдВрдЧрдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ CSM рдХреЛ рдЧреМрд░рд╡рдкреВрд░реНрдг рдирд╛рдо рдмреЛрдХреЗрдХреЛ рдЫред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╢реЗрд▓реНрдлрдмрд╛рдЯ рдирд┐рдХрд╛рд▓реНрдиреЗрдЫреМрдВ, рдпрд╕рд▓рд╛рдИ рд▓реБрдмреНрд░рд┐рдХреЗрдЯ рдЧрд░реНрдиреЗрдЫреМрдВ, рдЯрд╛рдпрд░рд╣рд░реВ рдкрдореНрдк рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рдУрд╕рд┐рд▓реЛ рдХрдкрдбрд╛рд▓реЗ рдкреБрдЫреНрдиреЗрдЫреМрдВред

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

рд░ рддреНрдпрд╕реЛрднрдП, рд╣рд╛рдореА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдЫреМрдВ рд░ Ubuntu Live рдмреБрдЯреЗрдмрд▓ рдлреНрд▓реНрдпрд╛рд╕ рдбреНрд░рд╛рдЗрднрдмрд╛рдЯ рдкреНрд░рдгрд╛рд▓реА рд▓реЛрдб рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореАрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗрдЫреМрдВред рдпрджрд┐ рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрди рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЖрд╡рд╢реНрдпрдХ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрднрдорд╛ рд▓реЛрдб рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╣рд╛рдореА рдбреЗрд╕реНрдХрдЯрдк рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдЬрд╛рдиреНрдЫреМрдВ, рдЯрд░реНрдорд┐рдирд▓ рдЗрдореБрд▓реЗрдЯрд░ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рд░ рд╣рд╛рдореА рдЬрд╛рдиреНрдЫреМрдВ:

#sudo bash

рдХрд╕рд░реАтАж?рдорд╛рдерд┐рдХреЛ рд░реЗрдЦрд╛ рд╕реБрдбреЛрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╣реЛрд▓рд┐рд╡рд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХреНрдпрд╛рдиреЛрдирд┐рдХрд▓ рдЯреНрд░рд┐рдЧрд░ рд╣реЛред C рдЦ╨╛рдареВрд▓реЛ рдЕрд╡рд╕рд░ рдЖрдЙрдБрдЫ рд░╨╛рдареВрд▓реЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реАред рдкреНрд░рд╢реНрди рдпреЛ рд╣реЛ рдХрд┐ рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдЖрдлреИрдВрдорд╛ рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдзреЗрд░реИ рдорд╛рдирд┐рд╕рд╣рд░реВ рд╕реЛрдЪреНрдЫрдиреН рдХрд┐ рдпрд╕ рддрд░рд┐рдХрд╛рдорд╛ sudo рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдореНрддрд┐рдорд╛ рд╕рд╛рд╡рдзрд╛рди рдЫреИрдиред рдпрджреНрдпрдкрд┐:

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

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

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

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

рддреНрдпрд╕реЛ рднрдП BTRFS рдХрд┐рди...?рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдмреБрдЯ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓рд╛рдИ Legacy/BIOS GRUB рдорд╛ рд╕рдорд░реНрдерд┐рдд рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдЪрд╛рд╣рд┐рдиреНрдЫ, рд░ рдПрдХреИ рд╕рдордпрдорд╛ рд▓рд╛рдЗрдн рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ /boot рд╡рд┐рднрд╛рдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред рдердк рд░реВрдкрдорд╛, рд▓реЗрдЦрдХрд▓реЗ рдпреЛ FS рдХреЛ / (рд░реВрдЯ) рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░реБрдЪрд╛рдЙрдБрдЫрдиреН, рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрд▓реЗ LVM рдорд╛ рдЫреБрдЯреНрдЯреИ рд╡рд┐рднрд╛рдЬрдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдЖрд╡рд╢реНрдпрдХ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВрдорд╛ рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗрд░ рдпрд╛рдж рдЧрд░реНрди рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реНред

рд╣рд╛рдореА рдпрд╕ FS рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╡рд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдХреБрдиреИ рдкрдирд┐ рдЫрд╡рд┐рд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджреИрдиреМрдВред
рдпреЛ FS рд▓рд╛рдИ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдирдЧрд░реАрдХрди рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рддреНрдпрд╕рдкрдЫрд┐ рдкрдард╛рдЙрдиреЗ/рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдпреА рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВрд▓рд╛рдИ рдмреНрдпрд╛рдХрдЕрдк рдбрд┐рд╕реНрдХрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫред

рдердк рд░реВрдкрдорд╛, рд▓реЗрдЦрдХ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдорд╛ рдиреНрдпреВрдирддрдо рд╕рдлреНрдЯрд╡реЗрдпрд░ рд░рд╛рдЦреНрди рд░ GPU рд╣рд░реВ рд░ PCI-USB рд╣реЛрд╕реНрдЯ рдирд┐рдпрдиреНрддреНрд░рдХрд╣рд░реВрд▓рд╛рдИ IOMMU рдорд╛рд░реНрдлрдд KVM рдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрдиреЗ рдЬрд╕реНрддрд╛ рдЪреАрдЬрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рдЕрдиреНрдп рд╕рдмреИ рд╕рдлреНрдЯрд╡реЗрдпрд░рд╣рд░реВ рдЪрд▓рд╛рдЙрди рд░реБрдЪрд╛рдЙрдБрдЫрдиреНред

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

рдпрджрд┐ рддрдкрд╛рдЗрдБ ZFS рд▓рд╛рдИ рдмрдвреА рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рддрд┐рдиреАрд╣рд░реВ рд╡рд┐рдирд┐рдореЗрдп рдЫрдиреНред

рдпрджреНрдпрдкрд┐, рд▓реЗрдЦрдХрд▓реЗ рдЬрд╛рдирд╛рдЬрд╛рдиреА ZFS, BRTFS рд░ LVM рдорд╛ рднрдПрдХрд╛ рдмрд┐рд▓реНрдЯ-рдЗрди рдорд┐рд░рд░рд┐рдЩ/RAID рд░ рд░рд┐рдбрдиреНрдбрдиреНрд╕реА рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдЫрдиреНред

рдердк рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛, BTRFS рд╕рдБрдЧ рдЕрдирд┐рдпрдорд┐рдд рд▓реЗрдЦрд╣рд░реВрд▓рд╛рдИ рдХреНрд░рдорд┐рдХ рд▓реЗрдЦрд╣рд░реВрдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдЫ, рдЬрд╕рд▓реЗ HDD рдорд╛ рд╕реНрдиреНрдпрд╛рдкрд╢рдЯ/рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрдиреЗ рдЧрддрд┐рдорд╛ рдЕрддреНрдпрдиреНрдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдЫред

рд╕рдмреИ рдпрдиреНрддреНрд░рд╣рд░реВ рдкреБрди: рд╕реНрдХреНрдпрд╛рди рдЧрд░реМрдВ:

#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

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

NVMe SSD

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

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

SATA SSD

рдпрд╣рд╛рдБ рдЪреАрдЬрд╣рд░реВ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рд░реЛрдЪрдХ рд╣реБрдиреНрдЫрдиреНред

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

рддрд░ рдпреЛ рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛ рд╣реЛрдЗрдиред

рдпрд╣рд╛рдБ рд╣рд╛рдореА рджреБрдИ рдЦрдгреНрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рдкрд╣рд┐рд▓реЛ рдЖрдХрд╛рд░рдорд╛ 1 GB рд╣реБрдиреЗрдЫ рд░ RAID 1 /boot рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫред

рджреЛрд╕реНрд░реЛ RAID 6 рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ рдЫ рд░ рдбреНрд░рд╛рдЗрднрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдПрдХ рд╕рд╛рдиреЛ рдЕрдирд▓реЛрдХреЗрдЯреЗрдб рдХреНрд╖реЗрддреНрд░ рдмрд╛рд╣реЗрдХ рдмрд╛рдБрдХреА рд╕рдмреИ рдЦрд╛рд▓реА рдард╛рдЙрдБ рд▓рд┐рдиреЗрдЫред

рдпреЛ рдЕрдЪрд┐рд╣реНрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╣реЛ?рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХрд╛ рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рдореНрд░реЛ SATA SSDs рд╕рдБрдЧ 6 рджреЗрдЦрд┐ 78 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╕рдореНрдордХреЛ рд╕рд╛рдЗрдЬрдорд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░рдпреЛрдЧреНрдп SLC рдХреНрдпрд╛рд╕ рдЫред рд╣рд╛рдореАрд▓реЗ рдбреНрд░рд╛рдЗрднрдХреЛ рдбреЗрдЯрд╛ рдкрд╛рдирд╛рдорд╛ "рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕" рд░ "рдЧреАрдмрд┐рдмрд╛рдЗрдЯреНрд╕" рдмреАрдЪрдХреЛ рднрд┐рдиреНрдирддрд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ 6 рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯрд╣рд░реВ "рдирд┐:рд╢реБрд▓реНрдХ" рдкрд╛рдЙрдБрдЫреМрдВред рдмрд╛рдБрдХреА 72 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХреЛ рдард╛рдЙрдБрдмрд╛рдЯ рдЫреБрдЯреНрдпрд╛рдЗрдПрдХреЛ рдЫред

рдпрд╣рд╛рдБ рдпреЛ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдЫ рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ SLC рдХреНрдпрд╛рд╕ рдЫ, рд░ рд╕реНрдкреЗрд╕ 4 рдмрд┐рдЯ MLC рдореЛрдбрдорд╛ рдУрдЧрдЯреЗрдХреЛ рдЫред рдЬрд╕рдХреЛ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ 4 рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯ рдЦрд╛рд▓реА рдард╛рдЙрдБрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореАрд▓реЗ SLC рдХреНрдпрд╛рд╕рдХреЛ 1 рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯ рдорд╛рддреНрд░ рдкрд╛рдЙрдиреЗрдЫреМрдВред

ренреи рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯрд▓рд╛рдИ рек рд▓реЗ рдЧреБрдгрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ реиреорео рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯ рдкрд╛рдЙрдиреБрд╣реЛрд╕реНред рдпреЛ рдЦрд╛рд▓реА рдард╛рдЙрдБ рд╣реЛ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдбреНрд░рд╛рдЗрднрд╣рд░реВрд▓рд╛рдИ SLC рдХреНрдпрд╛рд╕рдХреЛ рдкреВрд░реНрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдиреЗ рдЫреИрдиреМрдВред

рдпрд╕рд░реА, рд╣рд╛рдореА рдХреБрд▓ рдЫ рдбреНрд░рд╛рдЗрднрд╣рд░реВрдмрд╛рдЯ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ 312 рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯреНрд╕ SLC рдХреНрдпрд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВред рд╕рдмреИ рдбреНрд░рд╛рдЗрднрд╣рд░реВ рдордзреНрдпреЗ, 2 рд░рд┐рдбрдиреНрдбрдиреНрд╕реАрдХреЛ рд▓рд╛рдЧрд┐ RAID рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫред

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

#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 рднрд┐рддреНрд░ рдХрддреИ рдПрд░реЗ рдирд╛рдордХреЛ рдЕрдВрд╢ рд╣реЛ рд░ рдХрддреИ рдХреЗрд╣реА рдЕрд╕рд░ рдЧрд░реНрдЫред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, arrays рдкрдЫрд┐ рдкреБрди: рдирд╛рдорд╛рдХрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдпреЛ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрджрдо рд╣реЛред

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

NVMe SSD

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

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

SSD arrays рдХреЛ рд▓рд╛рдЧрд┐, RAID 1 DISCARD рд▓рд╛рдИ рдмрдХреНрд╕ рдмрд╛рд╣рд┐рд░ рд╕рдорд░реНрдерд┐рдд рдЫред

SSD RAID 6 DISCARD arrays рдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдорд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдпрд╕ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╕реНрддрд░ 4/5/6 array рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ SSDs рдорд╛ discard_zeroes_data рдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕рдорд░реНрдерди рдЫ рднрдиреЗ рдорд╛рддреНрд░ рдпреЛ рдЧрд░рд┐рдиреБ рдкрд░реНрдЫред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддрдкрд╛рдЗрдБ рдЕрдиреМрдареЛ рдбреНрд░рд╛рдЗрднрд╣рд░реВ рднреЗрдЯреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕рд▓реЗ рдХрд░реНрдиреЗрд▓рд▓рд╛рдИ рдпреЛ рдкреНрд░рдХрд╛рд░реНрдп рд╕рдорд░реНрдерд┐рдд рдЫ рднрдиреЗрд░ рдмрддрд╛рдЙрдБрдЫ, рддрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдпреЛ рддреНрдпрд╣рд╛рдБ рдЫреИрди, рд╡рд╛ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╕рдзреИрдВ рдХрд╛рдо рдЧрд░реНрджреИрдиред рдпрд╕ рд╕рдордпрдорд╛, рд╕рдорд░реНрдерди рд▓рдЧрднрдЧ рд╕рдмреИ рдард╛рдЙрдБрдорд╛ рдЙрдкрд▓рдмреНрдз рдЫ, рддрдерд╛рдкрд┐, рддреНрдпрд╣рд╛рдБ рдкреБрд░рд╛рдирд╛ рдбреНрд░рд╛рдЗрднрд╣рд░реВ рд░ рддреНрд░реБрдЯрд┐рд╣рд░реВрд╕рдБрдЧ рдлрд░реНрдорд╡реЗрдпрд░ рдЫрдиреНред рдпрд╕ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, RAID 6 рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ DISCARD рд╕рдорд░реНрдерди рдЕрд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫред

рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН, рдирд┐рдореНрди рдЖрджреЗрд╢рд▓реЗ "рд╢реВрдиреНрдп" рдХреЛ рд╕рд╛рде рдПрд░реЗ "рд╕реБрд░реБрд╡рд╛рдд" рдЧрд░реЗрд░ NVMe рдбреНрд░рд╛рдЗрднрд╣рд░реВрдорд╛ рд╕рдмреИ рдбрд╛рдЯрд╛ рдирд╖реНрдЯ рдЧрд░реНрдиреЗрдЫред

#blkdiscard /dev/md0

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

#blkdiscard --step 65536 /dev/md0

SATA SSD

#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 рд╕рдВрдХреНрд╖реЗрдк рдЧрд░рд┐рдПрдХреЛ рдЫред рддрдереНрдпрд╛рдЩреНрдХ рдЕрдиреБрд╕рд╛рд░, IO рдХреЛ 99% 512K рднрдиреНрджрд╛ рдмрдвреА рдЫреИрдиред

RAID рдорд╛ рдкреНрд░рддрд┐ рд▓реЗрдЦрди 6 IOPS рдЫ рд╕рдВрдзреИ рдПрдХ рдбреНрд░рд╛рдЗрднрдХреЛ IOPS рднрдиреНрджрд╛ рдХрдо рд╡рд╛ рдмрд░рд╛рдмрд░ред рдЬрдм, рдЕрдирд┐рдпрдорд┐рдд рдкрдврд╛рдЗрдХреЛ рд░реВрдкрдорд╛, IOPS рдПрдХ рдбреНрд░рд╛рдЗрднрдХреЛ рднрдиреНрджрд╛ рдзреЗрд░реИ рдЧреБрдгрд╛ рдареВрд▓реЛ рд╣реБрди рд╕рдХреНрдЫ, рд░ рдпрд╣рд╛рдБ рдмреНрд▓рдХ рд╕рд╛рдЗрдЬ рдкреНрд░рдореБрдЦ рдорд╣рддреНрддреНрд╡рдХреЛ рдЫред
рд▓реЗрдЦрдХрд▓реЗ RAID 6 рджреНрд╡рд╛рд░рд╛ рдбрд┐рдЬрд╛рдЗрдирдорд╛ рдЦрд░рд╛рдм рднрдПрдХреЛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд▓рд╛рдИ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдмрд┐рдиреНрджреБ рджреЗрдЦреНрджреИрди рд░ рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛рдорд╛ RAID 6 рд░рд╛рдореНрд░реЛ рдЫ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрджрдЫред
рд╣рд╛рдореА RAID 6 рдХреЛ рдЦрд░рд╛рдм рдЕрдирд┐рдпрдорд┐рдд рд▓реЗрдЦрдирдХреЛ рд▓рд╛рдЧрд┐ NVMe рдХреНрдпрд╛рд╕ рд░ рдкрд╛рддрд▓реЛ-рдкреНрд░реЛрднрд┐рдЬрди рдпреБрдХреНрддрд┐рд╣рд░реВрдХреЛ рд╕рд╛рде рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдЧрд░реНрдиреЗрдЫреМрдВред

рд╣рд╛рдореАрд▓реЗ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо RAID 6 рдХреЛ рд▓рд╛рдЧрд┐ DISCARD рд╕рдХреНрд╖рдо рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдВред рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ array рд▓рд╛рдИ "рдкреНрд░рд╛рд░рдореНрдн" рдЧрд░реНрджреИрдиреМрдВред рд╣рд╛рдореА рдпреЛ рдкрдЫрд┐, OS рд╕реНрдерд╛рдкрдирд╛ рдкрдЫрд┐ рдЧрд░реНрдиреЗрдЫреМрдВред

SATA HDD

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

NVMe RAID рдорд╛ LVM

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

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

рд░реВрдЯ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд╛рдЬрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред

#lvcreate -L 128G --name root root

RAM рдХреЛ рд╕рд╛рдЗрдЬ рдЕрдиреБрд╕рд╛рд░ рд╕реНрд╡реИрдк рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд╛рдЬрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред

#lvcreate -L 32G --name swap root

OS рд╕реНрдерд╛рдкрдирд╛

рдХреБрд▓рдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ рдкреНрд░рдгрд╛рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╕рдмреИ рдЫред

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

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

рдЬрдм рддрдкрд╛рдИрдБрд▓реЗ рд░реВрдЯ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд░реВрдкрдорд╛ BTRFS рдЪрдпрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рд╕реНрдерд╛рдкрдирд╛рдХрд░реНрддрд╛рд▓реЗ рд╕реНрд╡рддрдГ рджреБрдИ BTRFS рднреЛрд▓реНрдпреБрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ "@" рдХреЛ рд▓рд╛рдЧрд┐ / (root), рд░ "@home" /home рдХреЛ рд▓рд╛рдЧрд┐ред

рд╕реНрдерд╛рдкрдирд╛ рд╕реБрд░реБ рдЧрд░реМрдВ ...

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

#sudo bash

рд╕реНрдерд╛рдкрдирд╛ рдЬрд╛рд░реА рд░рд╛рдЦреНрди chroot рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

#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

chroot рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд░ рд╣реЛрд╕реНрдЯрдирд╛рдо рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реМрдВ:

#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 рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫ

TRIM/DISCARD рд╕рдХреНрд╖рдо рдЧрд░реНрди 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 RAIDs рд▓рд╛рдИ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ/рдЬрд╛рдБрдЪ рдЧрд░реНрджрд╛ рддрдкрд╛рдЗрдБрдХреЛ рдбреНрд░рд╛рдЗрднрд▓рд╛рдИ рдХреБрд░рдХреБрд░рд╛рдорд╛ рдлреНрд░рд╛рдЗ рдЧрд░реНрджреИрдиред рдпреЛ NVMe рдХреЛ рд▓рд╛рдЧреА рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд╕рддреНрдп рд╣реЛред (рд░реЗрдбрд┐рдПрдЯрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН? рдо рдордЬрд╛рдХ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдерд┐рдПрдиред)
  • APM рдорд╛рд░реНрдлрдд рд╕реНрдкрд┐рдиреНрдбрд▓ рд░реЛрдЯреЗрд╢рди (HDD) рд░реЛрдХреНрди рдбрд┐рд╕реНрдХрд╣рд░реВрд▓рд╛рдИ рдирд┐рд╖реЗрдз рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдбрд┐рд╕реНрдХ рдирд┐рдпрдиреНрддреНрд░рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рджреНрд░рд╛рдХреЛ рд╕рдордп 7 рдШрдгреНрдЯрд╛рдорд╛ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рддрдкрд╛рдЗрдБрдХреЛ рдбреНрд░рд╛рдЗрднрд▓реЗ рдпреЛ рдЧрд░реНрди рд╕рдХреНрдЫ рднрдиреЗ рддрдкрд╛рдЗрдБ APM рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (-B 255)ред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирдХреЛ рд╕рд╛рде, рдбреНрд░рд╛рдЗрднрд╣рд░реВ рдкрд╛рдБрдЪ рд╕реЗрдХреЗрдиреНрдб рдкрдЫрд┐ рд░реЛрдХрд┐рдиреЗрдЫред рддреНрдпрд╕рдкрдЫрд┐ OS рд▓реЗ рдбрд┐рд╕реНрдХ рдХреНрдпрд╛рд╕ рд░рд┐рд╕реЗрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫ, рдбрд┐рд╕реНрдХрд╣рд░реВ рдлреЗрд░рд┐ рд╕реНрдкрд┐рди рд╣реБрдиреЗрдЫ, рд░ рд╕рдмреИ рдХреБрд░рд╛ рдлреЗрд░рд┐ рд╕реБрд░реБ рд╣реБрдиреЗрдЫред рдбрд┐рд╕реНрдХрд╣рд░реВрдорд╛ рд╕реНрдкрд┐рдиреНрдбрд▓ рдШреБрдорд╛рдЙрдиреЗ рд╕реАрдорд┐рдд рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╣реБрдиреНрдЫред рдпрд╕реНрддреЛ рд╕рд╛рдзрд╛рд░рдг рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЪрдХреНрд░рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рдбрд┐рд╕реНрдХрд▓рд╛рдИ рдХреЗрд╣рд┐ рд╡рд░реНрд╖рдорд╛ рд╕рдЬрд┐рд▓реИ рдорд╛рд░реНрди рд╕рдХреНрдЫред рд╕рдмреИ рдбрд┐рд╕реНрдХрд╣рд░реВ рдпрд╕рдмрд╛рдЯ рдкреАрдбрд┐рдд рд╣реБрдБрджреИрдирдиреН, рддрд░ рд╣рд╛рдореНрд░рд╛ "рд▓реНрдпрд╛рдкрдЯрдк" рд╣реБрдиреН, рдЙрдкрдпреБрдХреНрдд рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ, рдЬрд╕рд▓реЗ RAID рд▓рд╛рдИ рдорд┐рдиреА-MAID рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫред
  • рдбрд┐рд╕реНрдХрдорд╛ рд░реАрдбрд╣реЗрдб рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдШреБрдорд╛рдЙрдиреЗ) 1 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ - рджреБрдИ рд▓рдЧрд╛рддрд╛рд░ рдмреНрд▓рдХрд╣рд░реВ/рдЪрдЩреНрдХ RAID 6
  • arrays рдЖрдлреИрдВрдорд╛ readahead рдЕрдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕рдореНрдкрд╛рджрди рдЧрд░реМрдВ /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.. рджреБрдИ рдкрдЯрдХ?рд╣реЛред рдареНрдпрд╛рдХреНрдХреИред BTRFS рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ред рдпреЛ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди subvols рд╕рдВрдЧ рдзреЗрд░реИ рдкрдЯрдХ рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

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

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 рд▓рд╛рдИ LVM рднреЛрд▓реНрдпреБрдорд╣рд░реВ (PV) рдЦреЛрдЬреНрдирдмрд╛рдЯ рд░реЛрдХреЗрдХрд╛ рдЫреМрдВ:

  • LVM рдХреНрдпрд╛рд╕ (cdata) рдпреБрдХреНрдд рдпрдиреНрддреНрд░рд╣рд░реВ
  • LVM рдХреНрдпрд╛рд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХрд╛ рдпрдиреНрддреНрд░рд╣рд░реВ, рдХреНрдпрд╛рд╕рд▓рд╛рдИ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрджреИ ( _corig)ред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдпрдиреНрддреНрд░ рдЖрдлреИрдВ рдЕрдЭреИ рдкрдирд┐ рдХреНрдпрд╛рд╕ рдорд╛рд░реНрдлрдд рд╕реНрдХреНрдпрд╛рди рд╣реБрдиреЗрдЫ (рдХреЗрд╡рд▓ )ред
  • LVM рдХреНрдпрд╛рд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (cmeta) рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдпрдиреНрддреНрд░рд╣рд░реВ
  • VG рдорд╛ рд╕рдмреИ рдпрдиреНрддреНрд░рд╣рд░реВ рдирд╛рдо рдЫрд╡рд┐рд╣рд░реВрд╕рдБрдЧред рдпрд╣рд╛рдБ рд╣рд╛рдореАрд╕рдБрдЧ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рдбрд┐рд╕реНрдХ рдЫрд╡рд┐рд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН, рд░ рд╣рд╛рдореА рд╣реЛрд╕реНрдЯрдорд╛ LVM рд▓реЗ рдЕрддрд┐рдерд┐ OS рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рднреЛрд▓реНрдпреБрдорд╣рд░реВ рд╕рдХреНрд░рд┐рдп рдЧрд░реНрди рдЪрд╛рд╣рдБрджреИрдиреМрдВред
  • рдирд╛рдо рдмреНрдпрд╛рдХрдЕрдк рд╕рдВрдЧ VG рдорд╛ рд╕рдмреИ рдЙрдкрдХрд░рдгрд╣рд░реВред рдпрд╣рд╛рдБ рд╣рд╛рдореАрд╕рдБрдЧ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдЫрд╡рд┐рд╣рд░реВрдХреЛ рдЬрдЧреЗрдбрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рд╣рд░реВ рд╣реБрдиреЗрдЫред
  • рд╕рдмреИ рдпрдиреНрддреНрд░рд╣рд░реВ рдЬрд╕рдХреЛ рдирд╛рдо "gpv" рдмрд╛рдЯ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ (рдЕрддрд┐рдерд┐ рднреМрддрд┐рдХ рднреЛрд▓реНрдпреБрдо)

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

initramfs рдЫрд╡рд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реМрдВ:

#update-initramfs -u -k all

grub рд╕реНрдерд╛рдкрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

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

рддрдкрд╛рдИрд▓реЗ рдХреБрди рдбрд┐рд╕реНрдХ рдЫрд╛рдиреНрдиреБ рдкрд░реНрдЫ?рд╕рдмреИ рдЬреЛ sd* рдЫрдиреНред рдкреНрд░рдгрд╛рд▓реА рдХреБрдиреИ рдкрдирд┐ рдХрд╛рдо рдЧрд░реНрдиреЗ SATA рдбреНрд░рд╛рдЗрдн рд╡рд╛ SSD рдмрд╛рдЯ рдмреБрдЯ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫред

рдХрд┐рди рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдУрдПрд╕-рдкреНрд░реЛрдмрд░ рдердкреЗ ..?рдЕрддреНрдпрдзрд┐рдХ рд╕реНрд╡рддрдиреНрддреНрд░рддрд╛ рд░ рдЪрдВрдЪрд▓ рд╣рд╛рддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред

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

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

рдпрд╕рд╕рдБрдЧреИ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░рд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдпреЛ рдирдпрд╛рдБ рд╕реНрдерд╛рдкрд┐рдд OS рдорд╛ рд░рд┐рдмреБрдЯ рдЧрд░реНрди рд╕рдордп рд╣реЛред рдмреБрдЯреЗрдмрд▓ рд▓рд╛рдЗрдн CD/USB рд╣рдЯрд╛рдЙрди рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реНред

#exit
#reboot

рдмреБрдЯ рдпрдиреНрддреНрд░рдХреЛ рд░реВрдкрдорд╛ SATA SSDs рдордзреНрдпреЗ рдХреБрдиреИ рдкрдирд┐ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред

SATA SSD рдорд╛ LVM

рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛, рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдирдпрд╛рдБ OS рдорд╛ рдмреБрдЯ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рдЙрдкрдпреБрдХреНрдд, рдЯрд░реНрдорд┐рдирд▓ рдЗрдореБрд▓реЗрдЯрд░ рдЦреЛрд▓реЗрдХрд╛ рдЫреМрдВ, рд░ рд╕реБрд░реВ рдЧрд░реЗрдХрд╛ рдЫреМрдВ:

#sudo bash

рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реНред

SATA SSD рдмрд╛рдЯ array "рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрдиреБрд╣реЛрд╕реН":

#blkdiscard /dev/md2

рдпрджрд┐ рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрди рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

#blkdiscard --step 65536 /dev/md2
SATA SSD рдорд╛ LVM VG рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

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

рдЕрд░реНрдХреЛ VG рдХрд┐рди..?рд╡рд╛рд╕реНрддрд╡рдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ VG рдирд╛рдордХреЛ рд░реВрдЯ рдЫред рдХрд┐рди рд╕рдмреИ рдХреБрд░рд╛ рдПрдЙрдЯреИ VG рдорд╛ рдердкреНрдиреБрднрдПрди?

рдпрджрд┐ VG рдорд╛ рдзреЗрд░реИ PV рд╣рд░реВ рдЫрдиреН рднрдиреЗ, VG рд╕рд╣реА рд░реВрдкрдорд╛ рд╕рдХреНрд░рд┐рдп рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐, рд╕рдмреИ PV рд╣рд░реВ рдЙрдкрд╕реНрдерд┐рдд рд╣реБрдиреБрдкрд░реНрдЫ (рдЕрдирд▓рд╛рдЗрди)ред рдЕрдкрд╡рд╛рдж LVM RAID рд╣реЛ, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдЬрд╛рдирд╛рдЬрд╛рдиреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиреМрдВред

рд╣рд╛рдореА рд╕рд╛рдБрдЪреНрдЪреИ рдЪрд╛рд╣рдиреНрдЫреМрдВ рдХрд┐ рдпрджрд┐ рдХреБрдиреИ рдкрдирд┐ RAID 6 arrays рдорд╛ рдЕрд╕рдлрд▓рддрд╛ (рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН) рдЫ рднрдиреЗ, рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдмреБрдЯ рдЧрд░реНрдиреЗрдЫ рд░ рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдореМрдХрд╛ рджрд┐рдиреЗрдЫред

рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдЕрдореВрд░реНрддрддрд╛рдХреЛ рдкрд╣рд┐рд▓реЛ рд╕реНрддрд░рдорд╛ рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рднреМрддрд┐рдХ "рдорд┐рдбрд┐рдпрд╛" рд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ VG рдорд╛ рдЕрд▓рдЧ рдЧрд░реНрдиреЗрдЫреМрдВред

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд░реВрдкрдорд╛ рдмреЛрд▓реНрджрд╛, рд╡рд┐рднрд┐рдиреНрди RAID arrayрд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди "рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдбреЛрдореЗрдирд╣рд░реВ" рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫрдиреНред рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдПрдХ VG рдорд╛ рдХреНрд░реНрдпрд╛рдо рдЧрд░реЗрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдЭрд╛ рдмрд┐рдиреНрджреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрдиред

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

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

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

SATA HDD рдорд╛ LVM

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

рдлреЗрд░рд┐ рдирдпрд╛рдБ VG..?рд╣рд╛рдореА рд╕рд╛рдБрдЪреНрдЪреИ рдЪрд╛рд╣рдиреНрдЫреМрдВ рдХрд┐ рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдбрд╛рдЯрд╛ рдмреНрдпрд╛рдХрдЕрдкрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдбрд┐рд╕реНрдХ рдПрд░реЗ рдЕрд╕рдлрд▓ рднрдпреЛ рднрдиреЗ, рд╣рд╛рдореНрд░реЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдЧреИрд░-рдмреНрдпрд╛рдХрдЕрдк рдбреЗрдЯрд╛рдорд╛ рдкрд╣реБрдБрдЪ рдХрд╛рдпрдо рд░рд╛рдЦреНрджреИред рддрд╕рд░реНрде, VG рд╕рдХреНрд░рд┐рдпрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди, рд╣рд╛рдореА рдЫреБрдЯреНрдЯреИ VG рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВред

LVM рдХреНрдпрд╛рд╕ рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ

рдпрд╕рд▓рд╛рдИ рдХреНрдпрд╛рд╕рд┐рдЩ рдпрдиреНрддреНрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди NVMe RAID 1 рдорд╛ LV рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред

#lvcreate -L 70871154688B --name cache root

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

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

рдердк рд░реВрдкрдорд╛, рдо рдиреЛрдЯ рдЧрд░реНрдЫреБ рдХрд┐ рдлреЛрд╣реЛрд░ рдкреНрд░рдгрд╛рд▓реА рдмрдиреНрдж рднрдПрдкрдЫрд┐, LVM рд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдХреНрдпрд╛рд╕рд▓рд╛рдИ рдлреЛрд╣реЛрд░рдХреЛ рд░реВрдкрдорд╛ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдиреЗрдЫ рд░ рдлреЗрд░рд┐ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрдиреЗрдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рдпреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдпреЛ рдпрдиреНрддреНрд░рдорд╛ lvchange рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдкреНрд░рдгрд╛рд▓реА рдкреБрди: рдмреБрдЯ рдирднрдПрд╕рдореНрдо рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдиреЗрдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рдо рдЙрдкрдпреБрдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддреБрд░реБрдиреНрддреИ рдХреНрдпрд╛рд╕ рдкреБрди: рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБред

рдпрд╕рд▓рд╛рдИ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдпрдиреНрддреНрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди SATA RAID 6 рдорд╛ LV рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред

#lvcreate -L 3298543271936B --name cache data

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

рдХреНрдпрд╛рд╕рд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ VG рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред

#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

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

64k LVM рдкрд╛рддрд▓реЛрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдиреНрдпреВрдирддрдо рдмреНрд▓рдХ рд╕рд╛рдЗрдЬ рд╣реЛред

рд╣реЛрд╕рд┐рдпрд╛рд░ рднрдПрд░ рд▓реЗрдЦреНрдиреБрд╣реЛрд▓рд╛..!рд╣реЛред рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рдХреНрдпрд╛рд╕рд▓реЗ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдпрдиреНрддреНрд░рдорд╛ рд▓реЗрдЦреНрдиреЗ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рдирд▓рд╛рдИ рд╕реНрдердЧрд┐рдд рдЧрд░реНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдпрджрд┐ рдХреНрдпрд╛рд╕ рд╣рд░рд╛рдПрдХреЛ рдЫ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдпрдиреНрддреНрд░рдорд╛ рдбрд╛рдЯрд╛ рдЧреБрдорд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдкрдЫрд┐, рд▓реЗрдЦрдХрд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдпреЛ рдЬреЛрдЦрд┐рдордХреЛ рд▓рд╛рдЧрд┐ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдЧрд░реНрди NVMe 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 рд▓реЗ рдХреЗрд╡рд▓ рдХреНрдпрд╛рд╕рд▓рд╛рдИ рдбрд┐рд╕реНрдХрдорд╛ рд╕рд┐рдВрдХ рдЧрд░реНрдиреЗрдЫ, рдпрд╕рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдиреЗрдЫ, рд░ cachedata_corig рд▓рд╛рдИ рдХреНрдпрд╛рдЪреЗрдбрд╛рдЯрд╛рдорд╛ рдкреБрди: рдирд╛рдорд╛рдХрд░рдг рдЧрд░реНрдиреЗрдЫред

LVM рдкрд╛рддрд▓реЛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ

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 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╕рдореНрдо рд░рд╛рдЙрдиреНрдб: 4294967296B

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

#lvcreate -L 8594128896B --name images root

рдХреЗ рдХреЛ рд▓рд╛рдЧрд┐..?рдпрд╣рд╛рдБ рдкреНрд░рд╢реНрди рдЙрдареНрди рд╕рдХреНрдЫ: рдХрд┐рди LVM рдкрд╛рддрд▓реЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЫреБрдЯреНрдЯреИ рд░рд╛рдЦреНрдиреЗ рдпрджрд┐ рдпреЛ рдЕрдЭреИ рдкрдирд┐ NVMe рдорд╛ рдХреНрдпрд╛рд╕ рд╣реБрдиреЗрдЫ рд░ рдЫрд┐рдЯреНрдЯреИ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред

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

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

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

рдкрд╛рддрд▓реЛ рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд╛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рд╣реБрдиреЗ рдирдпрд╛рдБ VG рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ:

#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 рдХрд┐рдирд╛рд░рд╛-рдкрдЩреНрдХреНрддрд┐рдмрджреНрдз рд╣реБрдиреЗрдЫред рдпрд╕рд▓реЗ рдХреНрдпрд╛рд╕ рдпрдиреНрддреНрд░рд▓рд╛рдИ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реЗрд░, рдХреНрдпрд╛рд╕ рдорд╛рд░реНрдлрдд рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

LVs рд▓рд╛рдИ рд╕рдореНрдмрдиреНрдзрд┐рдд PV рдорд╛ рд╕рд╛рд░реМрдВ:

#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 рд╕реЗрдХреЗрдиреНрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫред рдЖрдзрд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рд░реЗрдХрд░реНрдбрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рд╣реБрдиреНред рддрдкрд╛рдИрдВрд▓реЗ 4 рд╕реЗрдХреЗрдиреНрдбрдорд╛ NVMe рдорд╛ рдзреЗрд░реИ рд░реЗрдХрд░реНрдб рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред 3 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рд╕рдореНрдоред рддреНрдпрд╕реЛрднрдП, рд▓реЗрдЦрди рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд░рдирд▓реЗ рддрдкрд╛рдЗрдБрдмрд╛рдЯ 216 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯрдХреЛ SSD рд╕рдВрд╕рд╛рдзрди рдЦрд╛рди рд╕рдХреНрдЫред

рдкрдвреНрдиреЗ рд░ рд▓реЗрдЦрди рдорд┐рд╢реНрд░рд┐рдд?рд╣реЛред рдкрдвреНрдиреЗ рд░ рд▓реЗрдЦреНрдиреЗ рдкрд░реАрдХреНрд╖рд╛ рдЫреБрдЯреНрдЯрд╛рдЫреБрдЯреНрдЯреИ рдЪрд▓рд╛рдЙрдиреБрдХреЛ рдЕрд░реНрде рд╣реБрдиреНрдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рдпрд╕рд▓реЗ рд╕рдмреИ рдХреНрдпрд╛рд╕рд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЕрд░реНрдердкреВрд░реНрдг рд╣реБрдиреНрдЫ рддрд╛рдХрд┐ рдкрд╣рд┐рд▓реЗ рдмрдирд╛рдЗрдПрдХреЛ рд▓реЗрдЦрд▓реЗ рдкрдвреНрдиреЗрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрджреИрдиред

рдХреНрдпрд╛рд╕ рд░ рдкрд╛рддрд▓реЛ рднреЛрд▓реНрдпреБрдо рднрд░реНрджрд╛ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдХреНрд╖реЗрдкрдгрдХреЛ рд╕рдордпрдорд╛ рд░ рддреНрдпрд╕рдкрдЫрд┐рдХрд╛ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдзреЗрд░реИ рдлрд░рдХ рд╣реБрдиреЗрдЫрдиреН, рд░ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдЕрдиреНрддрд┐рдо рдкреНрд░рдХреНрд╖реЗрдкрдгрдХреЛ рд╕рдордпрдорд╛ рднрд░рд┐рдПрдХреЛ рдХреНрдпрд╛рд╕рд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдпреЛ рдХрд┐ рдЧрд░реНрджреИрди рднрдиреНрдиреЗ рдХреБрд░рд╛рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред

рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдордзреНрдпреЗ, рдо рдкрд╣рд┐рд▓реЗ рдиреИ рдкреВрд░реНрдг рдкрд╛рддрд▓реЛ рднреЛрд▓реНрдпреБрдордорд╛ рдЧрддрд┐ рдорд╛рдкрди рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ рдЬрд╣рд╛рдБрдмрд╛рдЯ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рднрд░реНрдЦрд░реИ рд▓рд┐рдЗрдПрдХреЛ рдерд┐рдпреЛред рд▓реЗрдЦрдХрд▓реЗ рдкрд╣рд┐рд▓реЛ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдкрдЫрд┐ рдХрд╕рд░реА рдЕрдирд┐рдпрдорд┐рдд рд▓реЗрдЦрд╣рд░реВ рддреАрд╡реНрд░ рдЧрддрд┐рдорд╛ рдЧрддрд┐ рд▓рд┐рдиреНрдЫ рднрдиреЗрд░ рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░ рдерд┐рдпреЛ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдЬрдм рдХреНрдпрд╛рд╕ рдЕрдЭреИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рднрд░рд┐рдПрдХреЛ рдЫреИрдиред рдпреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐-рдЕрди-рд░рд╛рдЗрдЯ рд▓реЗрдЦрди рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░, рдХреНрдпрд╛рд╕рдХреЛ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдзрддрд╛ рд░ рдкрд╛рддрд▓реЛ рднреЛрд▓реНрдпреБрдо рдмреНрд▓рдХрд╣рд░реВ, рд░ 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 arrays рдХреЛ рдЧрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ, рд╕рд╛рдереИ рддрд┐рдиреАрд╣рд░реВрдХреЛ TBW рд╕рдВрд╕рд╛рдзрдирд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, рддрдкрд╛рдИрдВ рдпрд╛ рдд рдХреНрдпрд╛рд╕ рдореЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рджреНрд░реБрдд рд░реВрдкрдорд╛ рдкрд▓ рд╕рдорд╛рддреНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрд╣реБрдиреЗрдЫ, рд╡рд╛ рддрдкрд╛рдИрдВрдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рд▓реЗ рдпрд╕рдХреЛ рд╕рдореНрдкреВрд░реНрдг рд╕реНрд░реЛрдд рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЦрд╛рдЗрджрд┐рдиреНрдЫред рдХреЗрд╣реА рджрд┐рдиред рд╕реНрд░реЛрдд рд╕реАрдорд┐рддрддрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдг, рдкреНрд░рдгрд╛рд▓реА, рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, 100% рд▓реЗрдЦрди рд▓реЛрдб рд╕рдмреИ рд╕рдордп рднрдиреНрджрд╛ рдХрдо рд╣реБрди рдЕрд╕рдХреНрд╖рдо рдЫред рд╣рд╛рдореНрд░реЛ NVMe SSDs 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% рдЖрддреНрдо-рд╕рд┐рдХреЗрдХрд╛ рдЫрдиреН рд░ "рдЧреБрдЧрд▓"-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдЙрдиреА рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдЫрдиреН рдХрд┐ рдЙрдирдХреЛ рд╣рд╛рддрдмрд╛рдЯ рдирд┐рд╕реНрдХреЗрдХреЛ рднрдпрд╛рдирдХ рдХреЛрдб рдХрд╕реИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрдиред рдЕрд░реВред

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

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

libvirt/KVM рдорд╛ TRIM/DSCARD

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

рдпреЛ рднрд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдХрд╣рд░реВрдорд╛ 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>

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

BTRFS рдмреНрдпрд╛рдХрдЕрдк

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

рдмреНрдпрд╛рдХрдЕрдк рдЙрдкрдХрд░рдгрдорд╛ рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ:

#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

рдпрд╕рд▓реЗ рдкрдирд┐ рдХреЗ рдЧрд░реНрдЫ..?BTRFS рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ BTRFS рдкрдард╛рдЙрдиреЗ/рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрд░реНрдХреЛ FS рдорд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд╛рдзрд╛рд░рдг рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рдкрд╣рд┐рд▓реЛ рдкреНрд░рдХреНрд╖реЗрдкрдг рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд▓рд╛рдореЛ рд╣реБрди рд╕рдХреНрдЫ, рдХрд┐рдирднрдиреЗ ... рд╕реБрд░реБрдорд╛, рд╕рдмреИ рдбрд╛рдЯрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░рд┐рдиреЗрдЫред рдердк рдкреНрд░рдХреНрд╖реЗрдкрдгрд╣рд░реВ рдзреЗрд░реИ рдЫрд┐рдЯреЛ рд╣реБрдиреЗрдЫ, рдХрд┐рдирднрдиреЗ ... рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдорд╛рддреНрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реБрдиреЗрдЫрдиреНред

рдЕрд░реНрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреБрди рд╣рд╛рдореА рдХреНрд░реЛрдирдорд╛ рд░рд╛рдЦреНрдиреЗрдЫреМрдВ:

рдХреЗрд╣рд┐ рдердк рдмреНрдпрд╛рд╕ рдХреЛрдб#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

рдпрд╕рд▓реЗ рдХреЗ рдЧрд░реНрдЫ..?рдмреНрдпрд╛рдХрдЕрдк FS рдорд╛ рд╕реВрдЪреАрдмрджреНрдз BTRFS рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрджрдЫред рдпрд╕ рдкрдЫрд┐, рдпрд╕рд▓реЗ 60 рджрд┐рди рдЕрдШрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдЪрд┐рддреНрд░рд╣рд░реВ рдореЗрдЯрд╛рдЙрдБрдЫред рд╕реБрд░реБрд╡рд╛рдд рдкрдЫрд┐, рд╕реВрдЪреАрдмрджреНрдз рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рдорд┐рддрд┐ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ /backup/btrfs/back/remote/ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рд╣рд░реВрдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫред

рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдзрд┐рдХрд╛рд░ рджрд┐рдиреБрд╣реЛрд╕реН:

#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

рдкрд╣рд┐рд▓реЛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд▓рд╛рдореЛ рд╣реБрдиреЗрдЫ, рдХрд┐рдирднрдиреЗ ... рдкрд╛рддрд▓реЛ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рд╕рдмреИ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдард╛рдЙрдБ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рд╣реБрдиреЗрдЫрдиреНред LVM рдкрд╛рддрд▓реЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж, рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХреБрди рдмреНрд▓рдХрд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдкреНрд░рдпреЛрдЧрдорд╛ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рдкрд╛рддрд▓реЛ рднреЛрд▓реНрдпреБрдо рдмреНрд▓рдХрд╣рд░реВ рдорд╛рддреНрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░рд┐рдиреЗрдЫред

LVM рдкрд╛рддрд▓реЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдорд╛рд░реНрдлрдд рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрдЫрд┐рдХреЛ рд░рдирд╣рд░реВрд▓реЗ рдбреЗрдЯрд╛рд▓рд╛рдИ рдХреНрд░рдорд╢рдГ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреЗрдЫред

рдХреЗ рднрдпреЛ рд╣реЗрд░реМрдВ:

#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 LV рддрд╛рд░реНрдХрд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдЕрдиреНрдп VG рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ LVM PV рднреМрддрд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН рднрдиреНрдиреЗ рджрд┐рдИрдПрдХреЛ рдЫред LVM рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реБрди рд╕рдХреНрдЫ, рдЧреБрдбрд┐рдпрд╛ рдЧреБрдбрд┐рдпрд╛ рдЬрд╕реНрддреИред рдпрд╕рд▓реЗ LVM рдЪрд░рдо рд▓рдЪрд┐рд▓реЛрдкрди рджрд┐рдиреНрдЫред

PS

рдЕрд░реНрдХреЛ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА рдЧреГрд╣ рдбреЗрд╕реНрдХрдЯрдкрд╣рд░реВ, рдЧреГрд╣ рдЗрдиреНрдЯрд░рдиреЗрдЯ рд░ P2P рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдзреЗрд░реИ рдорд╣рд╛рджреНрд╡реАрдкрд╣рд░реВрдорд╛ рд░рд┐рдбрдиреНрдбрдиреНрд╕реАрдХреЛ рд╕рд╛рде рднреВ-рд╡рд┐рддрд░рд┐рдд рднрдгреНрдбрд╛рд░рдг/vm рдХреНрд▓рд╕реНрдЯрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдЖрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдзреЗрд░реИ рд╕рдорд╛рди рдореЛрдмрд╛рдЗрд▓ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ/KVM рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреМрдВред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди