LVM рдЖрдгрд┐ Matryoshka рдордзреНрдпреЗ рдХрд╛рдп рд╕рд╛рдореНрдп рдЖрд╣реЗ?

╨Ф╨╛╨▒╤А╨╛╨│╨╛ ╨▓╤А╨╡╨╝╨╡╨╜╨╕ ╤Б╤Г╤В╨╛╨║.
md RAID + LVM рд╡рд╛рдкрд░реВрди KVM рд╕рд╛рдареА рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯреАрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рдЭрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрднрд╡ рдореА рд╕рдореБрджрд╛рдпрд╛рд╕реЛрдмрдд рд╢реЗрдЕрд░ рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ.

рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдд рд╣реЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕реЗрд▓:

  • NVMe SSD рдХрдбреВрди md RAID 1 рддрдпрд╛рд░ рдХрд░рдгреЗ.
  • SATA SSD рдЖрдгрд┐ рдирд┐рдпрдорд┐рдд рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░реВрди md RAID 6 рдПрдХрддреНрд░ рдХрд░рдгреЗ.
  • SSD RAID 1/6 рд╡рд░ TRIM/DISCARD рдСрдкрд░реЗрд╢рдирдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ.
  • рдбрд┐рд╕реНрдХрдЪреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд╡рд░ рдмреВрдЯ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп md RAID 1/6 рдЕреЕрд░реЗ рддрдпрд╛рд░ рдХрд░рдгреЗ.
  • BIOS рдордзреНрдпреЗ NVMe рд╕рдорд░реНрдерди рдирд╕рддрд╛рдирд╛ NVMe RAID 1 рд╡рд░ рдкреНрд░рдгрд╛рд▓реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ.
  • LVM рдХреЕрд╢реЗ рдЖрдгрд┐ LVM рдкрд╛рддрд│ рд╡рд╛рдкрд░рдгреЗ.
  • BTRFS рд╕реНрдиреЕрдкрд╢реЙрдЯ рд╡рд╛рдкрд░рдгреЗ рдЖрдгрд┐ рдмреЕрдХрдЕрдкрд╕рд╛рдареА рдкрд╛рдард╡рд╛/рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛.
  • BTRFS рд╢реИрд▓реА рдмреЕрдХрдЕрдкрд╕рд╛рдареА LVM рдкрд╛рддрд│ рд╕реНрдиреЕрдкрд╢реЙрдЯреНрд╕ рдЖрдгрд┐ thin_delta рд╡рд╛рдкрд░рдгреЗ.

рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реНрдпрд╛рд╕, рдХреГрдкрдпрд╛ рдорд╛рдВрдЬрд░ рдкрд╣рд╛.

рд╡рд┐рдзрд╛рди

рдпрд╛ рд▓реЗрдЦрд╛рддреАрд▓ рд╕рд╛рд╣рд┐рддреНрдп/рдЙрджрд╛рд╣рд░рдгреЗ/рдХреЛрдб/рдЯрд┐рдкрд╛/рдбреЗрдЯрд╛ рд╡рд╛рдкрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рди рд╡рд╛рдкрд░рдгреЗ рдпрд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрд╕рд╛рдареА рд▓реЗрдЦрдХ рдХреЛрдгрддреАрд╣реА рдЬрдмрд╛рдмрджрд╛рд░реА рдШреЗрдд рдирд╛рд╣реА. рд╣реА рд╕рд╛рдордЧреНрд░реА рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рд╡рд╛рдЪреВрди рдХрд┐рдВрд╡рд╛ рд╡рд╛рдкрд░реВрди, рдЖрдкрдг рдпрд╛ рдХреНрд░рд┐рдпрд╛рдВрдЪреНрдпрд╛ рд╕рд░реНрд╡ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреА рдЬрдмрд╛рдмрджрд╛рд░реА рд╕реНрд╡реАрдХрд╛рд░рддрд╛. рд╕рдВрднрд╛рд╡реНрдп рдкрд░рд┐рдгрд╛рдорд╛рдВрдордзреНрдпреЗ рд╣реЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ:

  • рдХреБрд░рдХреБрд░реАрдд-рддрд│рд▓реЗрд▓реЗ NVMe SSDs.
  • рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдкреВрд░реНрдгрдкрдгреЗ рд╡рд╛рдкрд░рд▓реЗ рдЖрдгрд┐ SSD рдбреНрд░рд╛рдЗрд╡реНрд╣рдЪреЗ рдЕрдкрдпрд╢.
  • рдмреЕрдХрдЕрдк рдкреНрд░рддреАрдВрд╕рд╣ рд╕рд░реНрд╡ рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░реАрд▓ рд╕рд░реНрд╡ рдбреЗрдЯрд╛рдЪреЗ рд╕рдВрдкреВрд░реНрдг рдиреБрдХрд╕рд╛рди.
  • рд╕рджреЛрд╖ рд╕рдВрдЧрдгрдХ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░.
  • рд╡реЗрд│, рдирд╕рд╛ рдЖрдгрд┐ рдкреИрд╕рд╛ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рд▓рд╛.
  • рд╡рд░ рд╕реВрдЪреАрдмрджреНрдз рдирд╕рд▓реЗрд▓реЗ рдЗрддрд░ рдХреЛрдгрддреЗрд╣реА рдкрд░рд┐рдгрд╛рдо.

рд▓реЛрдЦрдВрдб

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

рдорджрд░рдмреЛрд░реНрдб рд╕реБрдорд╛рд░реЗ 2013 рдкрд╛рд╕реВрди Z87 рдЪрд┐рдкрд╕реЗрдЯрд╕рд╣, Intel Core i7 / Haswell рд╕рд╣ рдкреВрд░реНрдг.

  • рдкреНрд░реЛрд╕реЗрд╕рд░ 4 рдХреЛрд░, 8 рдереНрд░реЗрдбреНрд╕
  • 32 GB DDR3 рд░реЕрдо
  • 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 рдлрд░реНрдорд╡реЗрдЕрд░рдордзреНрдпреЗ рдпрд╛ рдЖрдЬреНрдЮрд╛ рдЕрдЬрд┐рдмрд╛рдд рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд, рдЖрдгрд┐ рдПрдЪрдмреАрдП, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдмрд╕рд╡рд░ рдХреЛрдгрддреНрдпрд╛ рдЖрдЬреНрдЮрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдпрд╛рдЪреА рдХрд╛рд│рдЬреА рдШреЗрдд рдирд╛рд╣реА.

рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣рд╕реН - HGST Travelstar 8K7 рдЪреЗ 1000 рддреБрдХрдбреЗ 1 TB рдХреНрд╖рдорддреЗрдЪреНрдпрд╛ 2.5 рдлреЙрд░реНрдо рдлреЕрдХреНрдЯрд░рдордзреНрдпреЗ, рд▓реЕрдкрдЯреЙрдкрд╕рд╛рдареА. рд╣реЗ рдбреНрд░рд╛рдЗрд╡реНрд╣ рдкреВрд░реНрд╡реА RAID 6 рдЕреЕрд░реЗрдордзреНрдпреЗ рд╣реЛрддреЗ. рдирд╡реАрди рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рддреНрдпрд╛рдВрдЪрд╛рд╣реА рдЙрдкрдпреЛрдЧ рд╣реЛрдИрд▓. рд╕реНрдерд╛рдирд┐рдХ рдмреЕрдХрдЕрдк рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛрдбрд▓реЗ:

6 рддреБрдХрдбреЗ SATA SSD рдореЙрдбреЗрд▓ Samsung 860 QVO 2TB. рдпрд╛ SSD рд▓рд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА, SLC рдХреЕрд╢реЗрдЪреА рдЙрдкрд╕реНрдерд┐рддреА, рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛ рдЖрдгрд┐ рдХрдореА рдХрд┐рдВрдордд рд╣рд╡реА рд╣реЛрддреА. рдЯрд╛рдХреВрди рджреНрдпрд╛/рд╢реВрдиреНрдп рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ, рдЬреЗ dmesg рдордзреАрд▓ рдУрд│реАрджреНрд╡рд╛рд░реЗ рддрдкрд╛рд╕рд▓реЗ рдЬрд╛рддреЗ:

kernel: ata1.00: Enabling discard_zeroes_data

NVMe SSD рдореЙрдбреЗрд▓ рд╕реЕрдорд╕рдВрдЧ SSD 2 EVO 970GB рдЪреЗ 500 рддреБрдХрдбреЗ.

рдпрд╛ SSD рд╕рд╛рдареА, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд╛рдЪрди/рд▓реЗрдЦрдирд╛рдЪрд╛ рд╡реЗрдЧ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рдЧрд░рдЬрд╛рдВрд╕рд╛рдареА рд╕рдВрд╕рд╛рдзрди рдХреНрд╖рдорддрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЖрд╣реЗ. рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рд░реЗрдбрд┐рдПрдЯрд░. рдЕрдкрд░рд┐рд╣рд╛рд░реНрдпрдкрдгреЗ. рдПрдХрджрдо. рдЕрдиреНрдпрдерд╛, рдкрд╣рд┐рд▓реНрдпрд╛ RAID рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рджрд░рдореНрдпрд╛рди рддреЗ рдХреБрд░рдХреБрд░реАрдд рд╣реЛрдИрдкрд░реНрдпрдВрдд рддрд│рд╛.

PCIe 8 2x рд╕реНрд▓реЙрдЯрдордзреНрдпреЗ 2 x NVMe SSD рд╕рд╛рдареА StarTech PEX2M3.0E8 рдЕрдбреЕрдкреНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд. рд╣реЗ, рдкреБрдиреНрд╣рд╛, рдлрдХреНрдд рдПрдХ HBA рдЖрд╣реЗ, рдкрд░рдВрддреБ NVMe рд╕рд╛рдареА. рд╣реЗ рд╕реНрд╡рд╕реНрдд рдЕрдбреЕрдкреНрдЯрд░рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ рдХрд╛рд░рдг рдЕрдВрдЧрднреВрдд PCIe рд╕реНрд╡рд┐рдЪрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдореБрд│реЗ рддреНрдпрд╛рд▓рд╛ рдорджрд░рдмреЛрд░реНрдбрд╡рд░реВрди PCIe рджреНрд╡рд┐рднрд╛рдЬрди рд╕рдорд░реНрдердирд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рдЬрд░реА рддреЗ X1 PCIe 1.0 рд╕реНрд▓реЙрдЯ рдЕрд╕рд▓реЗ рддрд░реАрд╣реА рддреЗ PCIe рд╕рд╣ рд╕рд░реНрд╡рд╛рдд рдкреНрд░рд╛рдЪреАрди рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░реЗрд▓. рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХрдЪ, рдпреЛрдЧреНрдп рд╡реЗрдЧрд╛рдиреЗ. рддреЗрдереЗ рдХреЛрдгрддреЗрд╣реА RAID рдирд╛рд╣реАрдд. рдмреЛрд░реНрдбрд╡рд░ рдХреЛрдгрддреЗрд╣реА рдЕрдВрдЧрднреВрдд BIOS рдирд╛рд╣реА. рддреНрдпрд╛рдореБрд│реЗ, рддреБрдордЪреА рд╕рд┐рд╕реНрдЯреАрдо NVMe рд╕рд╣ рдмреВрдЯ рдХрд░рд╛рдпрд▓рд╛ рдЬрд╛рджреБрдИрдкрдгреЗ рд╢рд┐рдХрдгрд╛рд░ рдирд╛рд╣реА, NVMe RAID рдпрд╛ рдпрдВрддреНрд░рд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж.

рд╣рд╛ рдШрдЯрдХ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рдлрдХреНрдд рдПрдХ рд╡рд┐рдирд╛рдореВрд▓реНрдп 8x PCIe 3.0 рдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдореБрд│реЗ рд╣реЛрддрд╛, рдЖрдгрд┐, рдЬрд░ рддреЗрдереЗ 2 рд╡рд┐рдирд╛рдореВрд▓реНрдп рд╕реНрд▓реЙрдЯ рдЕрд╕рддреАрд▓, рддрд░ рддреЗ рд╕рд╣рдЬрдкрдгреЗ рджреЛрди рдкреЗрдиреА PEX4M2E1 рдХрд┐рдВрд╡рд╛ рдЕреЕрдирд╛рд▓реЙрдЧрд╕рд╣ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдЬреЗ 600 рдЪреНрдпрд╛ рдХрд┐рдорддреАрдд рдХреБрдареЗрд╣реА рдЦрд░реЗрджреА рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рд░реБрдмрд▓

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

рд╡рд┐рдиреЛрджрдЕрдиреНрдпрдерд╛, рдХрд╛рдп рд╣реЛрддреЗ рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЖрд╣реЗ - рдХрд╛рд╣реАрд╡реЗрд│рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рддрд╛рддрдбреАрдиреЗ рд╕рдВрдкреВрд░реНрдг рдЕреЕрд░реЗ рдШреЗрдКрди рдЬрд╛рд╡реЗ рд▓рд╛рдЧрддреЗ. рдкрдг рдореА рдбреЗрдЯрд╛ рдЧрдорд╛рд╡реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕рд░реНрд╡ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдорд╛рдзреНрдпрдореЗ рдорд╛рдирдХ рдХреЗрд╕рдЪреНрдпрд╛ 5.25 рдмреЗ рдордзреАрд▓ рд╕реНрд▓рд╛рдЗрдбреНрд╕рд╡рд░ рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗрдд.

рдареАрдХ рдЖрд╣реЗ, рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ, рд▓рд┐рдирдХреНрд╕рдордзреНрдпреЗ рдПрд╕рдПрд╕рдбреА рдХреЕрд╢рд┐рдВрдЧрдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рдкрджреНрдзрддреАрдВрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЫрд╛рдкреЗ рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ рдЖрд╣реЗрдд. рд╣реЗ рд╕реБрд░реБ рдХрд░рд╛. рддреЗ рдПрдХрддрд░ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдХрд┐рдВрд╡рд╛ рддреЗ рдХрд░рдд рдирд╛рд╣реА. рдЖрдгрд┐ mdadm рд╕рд╣ рдиреЗрд╣рдореАрдЪ рдкрд░реНрдпрд╛рдп рдЕрд╕рддрд╛рдд.

рдордК

рдкреВрд░реНрд╡реА, рдИрдУрдПрд▓рдЪреНрдпрд╛ рдЬрд╡рд│ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ рдбреЗрдмрд┐рдпрди 8 рдЬреЗрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рд╣реЛрддреЗ. RAID 6 рд╣реЗ LVM рд╕рд╣ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ HDDs рдордзреВрди рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рд╣реЗ kvm/libvirt рдордзреНрдпреЗ рдЖрднрд╛рд╕реА рдорд╢реАрди рдЪрд╛рд▓рд╡рддреЗ.

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

рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕ рдЖрд╣реЗрдд. рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдХрд┐рдВрд╡рд╛ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.

рд╕реНрдерд╛рдкрдиреЗрдЪреА рддрдпрд╛рд░реА рдХрд░рдд рдЖрд╣реЗ

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

рдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдЖрдирдВрджреА рдирд╛рд╣реА.

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

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, UEFI рдмреВрдЯ NVRAM рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ, рдЬреЗ рдбрд┐рд╕реНрдХрд╕рд╣ рдирд╡реАрди рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рд╣рд▓рдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг рдорджрд░рдмреЛрд░реНрдбрдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ.

рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдирд╡реАрди рдЪрд╛рдХ рд╢реЛрдзреВрди рдХрд╛рдврдгрд╛рд░ рдирд╛рд╣реА. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдЪ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА, рд╡реЗрд│-рдЪрд╛рдЪрдгреА рдХреЗрд▓реЗрд▓реА рдЖрдЬреЛрдмрд╛рдВрдЪреА рдмрд╛рдЗрдХ рдЖрд╣реЗ, рдЬреНрдпрд╛рд▓рд╛ рдЖрддрд╛ Legacy/BIOS рдмреВрдЯ рдореНрд╣рдгрддрд╛рдд, UEFI-рд╕реБрд╕рдВрдЧрдд рдкреНрд░рдгрд╛рд▓реАрдВрд╡рд░ CSM рдЪреЗ рдЕрднрд┐рдорд╛рдирд╛рд╕реНрдкрдж рдирд╛рд╡ рдЖрд╣реЗ. рдЖрдореНрд╣реА рддреЗ рдлрдХреНрдд рд╢реЗрд▓реНрдлрдордзреВрди рдХрд╛рдвреВ, рд╡рдВрдЧрдг рдШрд╛рд▓реВ, рдЯрд╛рдпрд░ рдкрдВрдк рдХрд░реВ рдЖрдгрд┐ рдУрд▓рд╕рд░ рдХрд╛рдкрдбрд╛рдиреЗ рдкреБрд╕реВрди рдЯрд╛рдХреВ.

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

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

рдЖрдореНрд╣реА рдбреЗрд╕реНрдХрдЯреЙрдк рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЬрд╛рддреЛ, рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рд▓рд╛рдБрдЪ рдХрд░рддреЛ рдЖрдгрд┐ рдкреБрдвреЗ рдЬрд╛рддреЛ:

#sudo bash

рдХрд╕реЗтАж?рд╡рд░реАрд▓ рдУрд│ sudo рдмрджреНрджрд▓ holiwars рд╕рд╛рдареА рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреНрд░рд┐рдЧрд░ рдЖрд╣реЗ. рдХ рдм╨╛рдореЛрдареНрдпрд╛ рд╕рдВрдзреА рдпреЗрддрд╛рдд рдЖрдгрд┐╨╛рдЬрд╛рд╕реНрдд рдЬрдмрд╛рдмрджрд╛рд░реА. рдЖрдкрдг рддреЗ рд╕реНрд╡рддрдГрд╡рд░ рдШреЗрдК рд╢рдХрддрд╛ рдХрд╛ рд╣рд╛ рдкреНрд░рд╢реНрди рдЖрд╣реЗ. рдмрд░реНтАНрдпрд╛рдЪ рд▓реЛрдХрд╛рдВрдирд╛ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХреА рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕реБрдбреЛ рд╡рд╛рдкрд░рдгреЗ рдХрдореАрддрдХрдореА рдХрд╛рд│рдЬреА рдШреЗрдгреЗ рдирд╛рд╣реА. рддрдерд╛рдкрд┐:

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

ZFS рдХрд╛ рдирд╛рд╣реА...?рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ, рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдореВрд▓рдд: рдЖрдордЪреЗ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕ рджреЗрддреЛ.
рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╕рд╣ рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдареЗрд╡рддреЛ, рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рд╣рд╛ рдбреЗрдЯрд╛ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЦрд░реНрдЪрд╛рдЗрддрдХреЗ рдХрд░реНрдЬ рдШреЗрддреЛ, рдЬреНрдпрд╛рдЪреА рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рджрд┐рд╡рд╕ рдкрд░рддрдлреЗрдб рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓.

рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди, ZFS рд╣реА рдлреЗрд░рд╛рд░реА рдЖрд╣реЗ рдЖрдгрд┐ mdadm+lvm рд╣реА рд╕рд╛рдпрдХрд▓рд╕рд╛рд░рдЦреА рдЖрд╣реЗ.

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

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

рдЖрдореНрд╣реА рдпрд╛ FS рд╡рд░ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдХрд┐рдВрд╡рд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.
рд╣реЗ FS рдлрдХреНрдд рд╕рд┐рд╕реНрдЯреАрдордЪреЗ рд╕реНрдиреЕрдкрд╢реЙрдЯреНрд╕ рдмрдВрдж рди рдХрд░рддрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдИрд▓ рдЖрдгрд┐ рдирдВрддрд░ рд╣реЗ рд╕реНрдиреЕрдкрд╢реЙрдЯ рдкрд╛рдард╡рд╛/рдкреНрд░рд╛рдкреНрдд рдХрд░реВрди рдмреЕрдХрдЕрдк рдбрд┐рд╕реНрдХрд╡рд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛.

рдпрд╛рд╢рд┐рд╡рд╛рдп, рд▓реЗрдЦрдХ рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ рдХрд┐рдорд╛рди рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдареЗрд╡рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдЗрддрд░ рд╕рд░реНрд╡ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░реНрд╕ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдордзреНрдпреЗ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреЗрддреЛ рдЬрд╕реЗ рдХреА GPUs рдЖрдгрд┐ 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

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

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

рдкрд░рдВрддреБ рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рдЖрдордЪреНрдпрд╛ BIOS рд▓рд╛ рдпрд╛ рдбреНрд░рд╛рдЗрд╡реНрд╣ рджрд┐рд╕рдд рдирд╛рд╣реАрдд. рддреНрдпрд╛рдореБрд│реЗ, рддреЗ рдкреВрд░реНрдгрдкрдгреЗ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ RAID рд╡рд░ рдЬрд╛рддреАрд▓. рдЖрдореНрд╣реА рддреЗрдереЗ рд╡рд┐рднрд╛рдЧ рджреЗрдЦреАрд▓ рддрдпрд╛рд░ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рддреБрдореНрд╣рд╛рд▓рд╛ тАЬрдХреЕрдирдитАЭ рдХрд┐рдВрд╡рд╛ тАЬрдореБрдЦреНрдпрддрдГтАЭ рдлреЙрд▓реЛ рдХрд░рд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, 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

рдЗрдереЗрдЪ рдЧреЛрд╖реНрдЯреА рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдордиреЛрд░рдВрдЬрдХ рд╣реЛрддрд╛рдд.

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

рдкрдг рд╣реЗ рдЖрдордЪреЗ рдкреНрд░рдХрд░рдг рдирд╛рд╣реА.

рдпреЗрдереЗ рдЖрдкрдг рджреЛрди рд╡рд┐рднрд╛рдЧ рддрдпрд╛рд░ рдХрд░реВ. рдкрд╣рд┐рд▓рд╛ рдЖрдХрд╛рд░ 1 GB рдЕрд╕реЗрд▓ рдЖрдгрд┐ RAID 1 /boot рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдИрд▓.

рджреБрд╕рд░рд╛ RAID 6 рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдИрд▓ рдЖрдгрд┐ рдбреНрд░рд╛рдЗрд╡реНрд╣рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рд╡рд╛рдЯрдк рди рдХреЗрд▓реЗрд▓реЗ рд▓рд╣рд╛рди рдХреНрд╖реЗрддреНрд░ рд╡рдЧрд│рддрд╛ рдЙрд░реНрд╡рд░рд┐рдд рд╕рд░реНрд╡ рдореЛрдХрд│реА рдЬрд╛рдЧрд╛ рдШреЗрдИрд▓.

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

рдпреЗрдереЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрд╕рдПрд▓рд╕реА рдХреЕрд╢реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЬрд╛рдЧрд╛ 4 рдмрд┐рдЯ рдПрдордПрд▓рд╕реА рдореЛрдбрдордзреНрдпреЗ рд╡реНрдпрд╛рдкрд▓реЗрд▓реА рдЖрд╣реЗ. рдЬреНрдпрд╛рдЪрд╛ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рднрд╛рд╡реА рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдкреНрд░рддреНрдпреЗрдХ 4 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЛрдХрд│реНрдпрд╛ рдЬрд╛рдЧреЗрд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд 1 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ SLC рдХреЕрд╢реЗ рдорд┐рд│реЗрд▓.

72 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ 4 рдиреЗ рдЧреБрдгрд╛рдХрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ 288 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдорд┐рд│рд╡рд╛. рд╣реА рдореЛрдХрд│реА рдЬрд╛рдЧрд╛ рдЖрд╣реЗ рдЬреА рдЖрдореНрд╣реА рдбреНрд░рд╛рдЗрд╡реНрд╣рд▓рд╛ SLC рдХреЕрд╢реЗрдЪрд╛ рдкреВрд░реНрдг рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рдПрдХреВрдг рд╕рд╣рд╛ рдбреНрд░рд╛рдИрд╡реНрд╣рдордзреВрди 312 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕рдкрд░реНрдпрдВрдд рдПрд╕рдПрд▓рд╕реА рдХреЕрд╢реЗ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рдорд┐рд│рд╡реВ. рд╕рд░реНрд╡ рдбреНрд░рд╛рдЗрд╡реНрд╣рдкреИрдХреА, 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 рдЪреНрдпрд╛ рдЖрдд рдХреБрдареЗрддрд░реА рдЕреЕрд░реЗ рдирд╛рд╡рд╛рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ рдЖрдгрд┐ рдХреБрдареЗрддрд░реА рдХрд╛рд╣реАрддрд░реА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ. рдЕрд░реНрдерд╛рдд, рдЕреЕрд░реЗрдЪреЗ рдирд╛рд╡ рдирдВрддрд░ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдкрд░рдВрддреБ рд╣реА рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд╛рдпрд░реА рдЖрд╣реЗ.

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

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

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

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

SSD рдЕреЕрд░реЗрд╕рд╛рдареА, RAID 1 DISCARD рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ.

SSD RAID 6 рдбрд┐рд╕реНрдХрд╛рд░реНрдб рдЕреЕрд░реЗрд╕рд╛рдареА, рддреБрдореНрд╣реА рддреЗ рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдордзреНрдпреЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ.

рдпрд╛ рдкреНрд░рдгрд╛рд▓реАрддреАрд▓ рд▓реЗрд╡реНрд╣рд▓ 4/5/6 рдЕреЕрд░реЗрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕рд░реНрд╡ 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 рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЖрдХрдбреЗрд╡рд╛рд░реАрдиреБрд╕рд╛рд░, 99% IO 512K рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдирд╛рд╣реА.

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

рдЖрдореНрд╣реА рдЕрджреНрдпрд╛рдк RAID 6 рд╕рд╛рдареА DISCARD рд╕рдХреНрд╖рдо рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА. рддреНрдпрд╛рдореБрд│реЗ рдЖрддреНрддрд╛ рдЖрдореНрд╣реА рд╣рд╛ рдЕреЕрд░реЗ "рдкреНрд░рд╛рд░рдВрдн" рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. OS рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣реА рд╣реЗ рдирдВрддрд░ рдХрд░реВ.

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

#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 рд╕реНрдерд╛рдкрдирд╛

рдПрдХреВрдг, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рдХрд╛рд╣реА рдЖрд╣реЗ.

рдЙрдмрдВрдЯреВ рд▓рд╛рдЗрд╡реНрд╣ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рддреВрди рд╕рд┐рд╕реНрдЯрдо рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╡рд┐рдЭрд╛рд░реНрдб рд▓рд╛рдБрдЪ рдХрд░рд╛. рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдкрдирд╛. рдХреЗрд╡рд│ рд╕реНрдерд╛рдкрдиреЗрд╕рд╛рдареА рдбрд┐рд╕реНрдХ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

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

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯреАрдо рдореНрд╣рдгреВрди BTRFS рдирд┐рд╡рдбрддрд╛, рддреЗрд╡реНрд╣рд╛ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЖрдкреЛрдЖрдк / (рд░реВрдЯ) рд╕рд╛рдареА "@" рдЖрдгрд┐ /home рд╕рд╛рдареА "@home" рдирд╛рд╡рд╛рдЪреЗ рджреЛрди BTRFS рдЦрдВрдб рддрдпрд╛рд░ рдХрд░реЗрд▓.

рдЪрд▓рд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реБрд░реВ рдХрд░реВрдпрд╛...

рдмреВрдЯрд▓реЛрдбрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛ рддреНрд░реБрдЯреА рджрд░реНрд╢рд╡рд┐рдгрд╛рд▒реНрдпрд╛ рдореЙрдбреЗрд▓ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕рд╕рд╣ рд╕реНрдерд╛рдкрдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдИрд▓. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рддреБрдореНрд╣реА рдорд╛рдирдХ рдорд╛рдзреНрдпрдорд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдпрд╛ рд╕рдВрд╡рд╛рджрд╛рддреВрди рдмрд╛рд╣реЗрд░ рдкрдбреВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА рдЖрдгрд┐ рд╕реНрдерд╛рдкрдирд╛ рд╕реБрд░реВ рдареЗрд╡реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА. рдЖрдореНрд╣реА рд╕рд┐рд╕реНрдЯрдордордзреВрди рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рддреЛ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рд▓реЙрдЧ рдЗрди рдХрд░рддреЛ, рд╕реНрд╡рдЪреНрдЫ рдЙрдмрдВрдЯреВ рд▓рд╛рдЗрд╡реНрд╣ рдбреЗрд╕реНрдХрдЯреЙрдкрд╡рд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЛ. рдЯрд░реНрдорд┐рдирд▓ рдЙрдШрдбрд╛ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛:

#sudo bash

рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реБрд░реВ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд░реЛрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдХрд░рд╛:

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

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 рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЬрд╛рдКрдпрд╛:

#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 рд╕рд╛рдареА рдкреБрд░реЗрд╕рд╛ рдЕрд╕реЗрд▓ рдЕрд╕реЗ рд╕реЗрдЯ рдХрд░рд╛. рдбреАрдлреЙрд▓реНрдЯ рдореВрд▓реНрдп, рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА, Linux рдЪреНрдпрд╛ рдирд┐рд░реНрдорд┐рддреАрдкрд╛рд╕реВрди рдмрджрд▓рд▓реЗрд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рдмрд░реНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рдкреБрд░реЗрд╕реЗ рдирд╛рд╣реА.
  • рдЕреЕрд░реЗ рдЪреЗрдХ/рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рдирдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрд╕рд╛рдареА рдХрд┐рдорд╛рди IO рд░рд╛рдЦреВрди рдареЗрд╡рд╛. рд╣реЗ рддреБрдордЪреЗ рдЕреЕрд░реЗ рд▓реЛрдб рдЕрдВрддрд░реНрдЧрдд рд╢рд╛рд╢реНрд╡рдд рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рд╕реНрдерд┐рддреАрдд рдЕрдбрдХрдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ.
  • рдЕреЕрд░реЗрдЪреНрдпрд╛ рдЪреЗрдХ/рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рджрд░рдореНрдпрд╛рди рдХрдорд╛рд▓ IO рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рд╛. рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реБрди SSD RAIDs рдЪреЗ рд╕рдордХреНрд░рдордг/рддрдкрд╛рд╕рдгреА рдХреЗрд▓реНрдпрд╛рдиреЗ рддреБрдордЪреЗ рдбреНрд░рд╛рдЗрд╡реНрд╣реНрд╕ рдХреБрд░рдХреБрд░реАрдд рд╣реЛрдгрд╛рд░ рдирд╛рд╣реАрдд. рд╣реЗ рд╡рд┐рд╢реЗрд╖рддрдГ NVMe рд╕рд╛рдареА рдЦрд░реЗ рдЖрд╣реЗ. (рд░реЗрдбрд┐рдПрдЯрд░рдмрджреНрджрд▓ рдЖрдард╡рддреЗ? рдореА рд╡рд┐рдиреЛрдж рдХрд░рдд рдирд╡реНрд╣рддреЗ.)
  • APM рджреНрд╡рд╛рд░реЗ рд╕реНрдкрд┐рдВрдбрд▓ рд░реЛрдЯреЗрд╢рди (HDD) рдерд╛рдВрдмрд╡рдгреНрдпрд╛рдкрд╛рд╕реВрди рдбрд┐рд╕реНрдХреНрд╕рдирд╛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рд╛ рдЖрдгрд┐ рдбрд┐рд╕реНрдХ рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕рд╕рд╛рдареА рд╕реНрд▓реАрдк рдЯрд╛рдЗрдордЖрдЙрдЯ 7 рддрд╛рд╕рд╛рдВрд╡рд░ рд╕реЗрдЯ рдХрд░рд╛. рддреБрдордЪреА рдбреНрд░рд╛рдЗрд╡реНрд╣рд╕реН (-B 255) рдХрд░реВ рд╢рдХрдд рдЕрд╕рд▓реНрдпрд╛рд╕ рддреБрдореНрд╣реА APM рдкреВрд░реНрдгрдкрдгреЗ рдЕрдХреНрд╖рдо рдХрд░реВ рд╢рдХрддрд╛. рдбреАрдлреЙрд▓реНрдЯ рдореВрд▓реНрдпрд╛рд╕рд╣, рдбреНрд░рд╛рдЗрд╡реНрд╣рд╕реН рдкрд╛рдЪ рд╕реЗрдХрдВрджрд╛рдВрдирдВрддрд░ рдерд╛рдВрдмрддреАрд▓. рдордЧ OS рд▓рд╛ рдбрд┐рд╕реНрдХ рдХреЕрд╢реЗ рд░реАрд╕реЗрдЯ рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ, рдбрд┐рд╕реНрдХ рдкреБрдиреНрд╣рд╛ рдлрд┐рд░рддреАрд▓ рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рд╣реЛрдИрд▓. рдбрд┐рд╕реНрдХреНрд╕рдордзреНрдпреЗ рд╕реНрдкрд┐рдВрдбрд▓ рд░реЛрдЯреЗрд╢рдирдЪреА рдорд░реНрдпрд╛рджрд┐рдд рдХрдорд╛рд▓ рд╕рдВрдЦреНрдпрд╛ рдЕрд╕рддреЗ. рдЕрд╢реА рд╕рд╛рдзреА рдбреАрдлреЙрд▓реНрдЯ рд╕рд╛рдпрдХрд▓ рдХрд╛рд╣реА рд╡рд░реНрд╖рд╛рдВрдд рддреБрдордЪреА рдбрд┐рд╕реНрдХ рд╕рд╣рдЬрдкрдгреЗ рдирд╖реНрдЯ рдХрд░реВ рд╢рдХрддреЗ. рд╕рд░реНрд╡ рдбрд┐рд╕реНрдХрд▓рд╛ рдпрд╛рдЪрд╛ рддреНрд░рд╛рд╕ рд╣реЛрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЖрдордЪреЗ "рд▓реЕрдкрдЯреЙрдк" рдЖрд╣реЗрдд, рдпреЛрдЧреНрдп рдбреАрдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣, рдЬреЗ RAID рд▓рд╛ рдорд┐рдиреА-MAID рд╕рд╛рд░рдЦреЗ рдмрдирд╡рддреЗ.
  • рдбрд┐рд╕реНрдХрд╡рд░ рд░реАрдбрд╣реЗрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ (рд░реЛрдЯреЗрдЯрд┐рдВрдЧ) 1 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ - рд╕рд▓рдЧ рджреЛрди рдмреНрд▓реЙрдХреНрд╕/рдЦрдВрдб RAID 6
  • рдЕтАНреЕрд░реЗрд╡рд░ рд╕реНрд╡рддрдГрдЪ рд░реАрдбрд╣реЗрдб рдЕрдХреНрд╖рдо рдХрд░рд╛.

рдЪрд▓рд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрдпрд╛ /etc/fstab:

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

рдЕрд╕ рдХрд╛..?рдЖрдореНрд╣реА UUID рджреНрд╡рд╛рд░реЗ /boot рд╡рд┐рднрд╛рдЬрди рд╢реЛрдзреВ. рдЕреЕрд░реЗ рдирд╛рдордХрд░рдг рд╕реИрджреНрдзрд╛рдВрддрд┐рдХрджреГрд╖реНрдЯреНрдпрд╛ рдмрджрд▓реВ рд╢рдХрддреЗ.

рдЖрдореНрд╣реА /dev/mapper/vg-lv рдиреЛрдЯреЗрд╢рдирдордзреНрдпреЗ LVM рдирд╛рд╡рд╛рдВрджреНрд╡рд╛рд░реЗ рдЙрд░реНрд╡рд░рд┐рдд рд╡рд┐рднрд╛рдЧ рд╢реЛрдзреВ, рдХрд╛рд░рдг рддреЗ рд╡рд┐рднрд╛рдЬрдиреЗ рдЕрдЧрджреА рдЕрджреНрд╡рд┐рддреАрдпрдкрдгреЗ рдУрд│рдЦрддрд╛рдд.

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

рдпрд╛рдЪ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдореБрд│реЗ, рдореА рдХрдзреАрд╣реА рд╕рдХреНрд░рд┐рдп 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 рдХреЕрд╢реЗ рд╡рд╛рдкрд░реВрди рдХреЕрд╢реЗ рдХреЗрд▓реЗрд▓реА рд╕рд╛рдзрдиреЗ, рдХреЕрд╢реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реВрди ( _рдХреЛрд░рд┐рдЧ). рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдХреЕрд╢реЗ рдХреЗрд▓реЗрд▓реЗ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рд╕реНрд╡рддрдГ рдЕрдЬреВрдирд╣реА рдХреЕрд╢реЗрджреНрд╡рд╛рд░реЗ рд╕реНрдХреЕрди рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ (рдлрдХреНрдд ).
  • LVM рдХреЕрд╢реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (cmeta) рдЕрд╕рд▓реЗрд▓реА рдЙрдкрдХрд░рдгреЗ
  • VG рдордзреАрд▓ рд╕рд░реНрд╡ рдЙрдкрдХрд░рдгреЗ рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдкреНрд░рддрд┐рдорд╛рдВрд╕рд╣. рдпреЗрдереЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдиреНрд╕рдЪреНрдпрд╛ рдбрд┐рд╕реНрдХ рдкреНрд░рддрд┐рдорд╛ рдЕрд╕рддреАрд▓, рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ рд╣реЛрд╕реНрдЯрд╡рд░реАрд▓ LVM рдиреЗ рдЕрддрд┐рдереА OS рдЪреЗ рдЦрдВрдб рд╕рдХреНрд░рд┐рдп рдХрд░рд╛рдпрдЪреЗ рдирд╛рд╣реАрдд.
  • VG рдордзреАрд▓ рд╕рд░реНрд╡ рдЙрдкрдХрд░рдгреЗ рдирд╛рд╡ рдмреЕрдХрдЕрдкрд╕рд╣. рдпреЗрдереЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрднрд╛рд╕реА рдорд╢реАрди рдкреНрд░рддрд┐рдорд╛рдВрдЪреНрдпрд╛ рдмреЕрдХрдЕрдк рдкреНрд░рддреА рдЕрд╕рддреАрд▓.
  • рд╕рд░реНрд╡ рдЙрдкрдХрд░рдгреЗ рдЬреНрдпрд╛рдВрдЪреЗ рдирд╛рд╡ тАЬgpvтАЭ рдиреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ (рдЕрддрд┐рдереА рднреМрддрд┐рдХ рдЦрдВрдб)

LVM VG рд╡рд░ рдореЛрдХрд│реА рдЬрд╛рдЧрд╛ рдореЛрдХрд│реА рдХрд░рддрд╛рдирд╛ рдЖрдореНрд╣реА DISCARD рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗ. рдХрд╛рд│рдЬреА рдШреНрдпрд╛. рдпрд╛рдореБрд│реЗ SSD рд╡рд░реАрд▓ LV рд╣рдЯрд╡рдгреЗ рдЦреВрдк рд╡реЗрд│рдЦрд╛рдК рд╣реЛрдИрд▓. рд╣реЗ рд╡рд┐рд╢реЗрд╖рдд: SSD RAID 6 рд╡рд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ. рддрдерд╛рдкрд┐, рдпреЛрдЬрдиреЗрдиреБрд╕рд╛рд░, рдЖрдореНрд╣реА рдкрд╛рддрд│ рддрд░рддреБрджреА рд╡рд╛рдкрд░реВ, рддреНрдпрд╛рдореБрд│реЗ рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдЬрд┐рдмрд╛рдд рдЕрдбрдерд│рд╛ рдЖрдгрдгрд╛рд░ рдирд╛рд╣реА.

рдЪрд▓рд╛ initramfs рдкреНрд░рддрд┐рдорд╛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдпрд╛:

#update-initramfs -u -k all

рдЧреНрд░рдм рд╕реНрдерд╛рдкрд┐рдд рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛:

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

рдЖрдкрдг рдХреЛрдгрддреА рдбрд┐рд╕реНрдХ рдирд┐рд╡рдбрд▓реА рдкрд╛рд╣рд┐рдЬреЗ?рд╕рд░реНрд╡ рдЬреЗ sd* рдЖрд╣реЗрдд. рдкреНрд░рдгрд╛рд▓реА рдХреЛрдгрддреНрдпрд╛рд╣реА рдХрд╛рд░реНрдпрд░рдд SATA рдбреНрд░рд╛рдЗрд╡реНрд╣ рдХрд┐рдВрд╡рд╛ SSD рд╡рд░реВрди рдмреВрдЯ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рддреНрдпрд╛рдВрдиреА os-prober рдХрд╛ рдЬреЛрдбрд▓реЗ..?рдЕрддреНрдпрдзрд┐рдХ рд╕реНрд╡рд╛рддрдВрддреНрд░реНрдп рдЖрдгрд┐ рдЦреЗрд│рдХрд░ рд╣рд╛рддрд╛рдВрд╕рд╛рдареА.

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

рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЕрд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рддреЗ рд╕реЛрдбреВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рд╡рд░реАрд▓ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреА рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛. рдореА рдСрдирд▓рд╛рдЗрди рд╢рд░рд╛рд░рддреА рд╣рд╛рддрд╛рдВрдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рдкрд╛рдХрдХреГрддреА рд╢реЛрдзрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ.

рдпрд╛рд╕рд╣ рдЖрдореНрд╣реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░реНрдг рдХреЗрд▓реА рдЖрд╣реЗ. рдирд╡реАрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ OS рдордзреНрдпреЗ рд░реАрдмреВрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ. рдмреВрдЯ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп Live CD/USB рдХрд╛рдврд╛рдпрд▓рд╛ рд╡рд┐рд╕рд░реВ рдирдХрд╛.

#exit
#reboot

рдмреВрдЯ рд╕рд╛рдзрди рдореНрд╣рдгреВрди рдХреЛрдгрддреЗрд╣реА SATA SSDs рдирд┐рд╡рдбрд╛.

SATA SSD рд╡рд░ LVM

рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдЖрдореНрд╣реА рдЖрдзреАрдЪ рдирд╡реАрди OS рдордзреНрдпреЗ рдмреВрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ, рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ, рдпреЛрдЧреНрдп рдЖрд╣реЗ, рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рдЙрдШрдбрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗ рдЖрд╣реЗ:

#sudo bash

рдЪрд▓рд╛ рд╕реБрд░реВ рдареЗрд╡реВрдпрд╛.

SATA SSD рд╡рд░реВрди рдЕреЕрд░реЗ "рдкреНрд░рд╛рд░рдВрдн рдХрд░рд╛":

#blkdiscard /dev/md2

рддреЗ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╕рд▓реНрдпрд╛рд╕, рдирдВрддрд░ рдкреНрд░рдпрддреНрди рдХрд░рд╛:

#blkdiscard --step 65536 /dev/md2
SATA SSD рд╡рд░ LVM VG рддрдпрд╛рд░ рдХрд░рд╛:

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

рджреБрд╕рд░реА рд╡реНрд╣реАрдЬреА рдХрд╛..?рдЦрд░рдВ рддрд░, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдкрд╛рд╕реВрди рд░реВрдЯ рдирд╛рд╡рд╛рдЪрд╛ рд╡реНрд╣реАрдЬреА рдЖрд╣реЗ. рд╕рд░реНрд╡ рдХрд╛рд╣реА рдПрдХрд╛ VG рдордзреНрдпреЗ рдХрд╛ рдЬреЛрдбреВ рдирдпреЗ?

VG рдордзреНрдпреЗ рдЕрдиреЗрдХ PV рдЕрд╕рд▓реНрдпрд╛рд╕, VG рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рд╕рдХреНрд░рд┐рдп рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА, рд╕рд░реНрд╡ PV рдЙрдкрд╕реНрдерд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдСрдирд▓рд╛рдЗрди). рдЕрдкрд╡рд╛рдж LVM RAID рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪрд╛ рдЖрдкрдг рдЬрд╛рдгреВрдирдмреБрдЬреВрди рд╡рд╛рдкрд░ рдХрд░рдд рдирд╛рд╣реА.

RAID 6 рдЕтАНреЕрд░реЗрдкреИрдХреА рдХреЛрдгрддреНрдпрд╛рд╣реА тАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНтАНрдбреЗрдЯрд╛ рдЧрдорд╛рд╡рд▓реНрдпрд╛рд╕, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНтАНрдЯрдо рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдмреВрдЯ рд╣реЛрдИрд▓ рдЖрдгрд┐ рдЖрдореНтАНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНтАНрдпрд╛ рд╕реЛрдбрд╡рдгреНтАНрдпрд╛рдЪреА рд╕рдВрдзреА рджреЗрдгреНтАНрдпрд╛рдЪреА рдЖрдордЪреА рдордирд╛рдкрд╛рд╕реВрди рдЗрдЪреНрдЫрд╛ рдЖрд╣реЗ.

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЕрдореВрд░реНрддрддреЗрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рднреМрддрд┐рдХ "рдореАрдбрд┐рдпрд╛" рд╡реЗрдЧрд│реНрдпрд╛ VG рдордзреНрдпреЗ рд╡реЗрдЧрд│реЗ рдХрд░реВ.

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрджреГрд╖реНрдЯреНрдпрд╛, рднрд┐рдиреНрди RAID рдЕреЕрд░реЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ "рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдбреЛрдореЗрди" рдЪреНрдпрд╛ рдЖрд╣реЗрдд. рддреБрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рдПрдХрд╛ VG рдордзреНрдпреЗ рдХреНрд░реЕрдо рдХрд░реВрди рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЕрдкрдпрд╢рд╛рдЪрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдорд╛рдиреНрдп рдореБрджреНрджрд╛ рддрдпрд╛рд░ рдХрд░реВ рдирдпреЗ.

"рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░" рд╕реНрддрд░рд╛рд╡рд░ LVM рдЪреА рдЙрдкрд╕реНрдерд┐рддреА рдЖрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ RAID рдЕреЕрд░реЗрдЪреЗ рддреБрдХрдбреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдПрдХрддреНрд░ рдХрд░реВрди рдХрдЯ рдХрд░реВ рджреЗрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде - рдЪрд╛рд▓рд╡рд╛ рддреНрдпрд╛рдЪ рд╡реЗрд│реА bcache + LVM thin, 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

рдЕрд╕рд╛ рдЪрдВрдХрд╕рд╛рдИрдЬ рдХрд╛..?рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рдпреЛрдЧрд╛рдВрджреНрд╡рд╛рд░реЗ, рд▓реЗрдЦрдХ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдд рд╕рдХреНрд╖рдо рд╣реЛрддреЗ рдХреА 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 рд▓реЙрдЧ рд╡рд╛рдкрд░реВрди рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.

рд╢рд┐рд╡рд╛рдп, рдЬрд░ рдпрд╛рдЖрдзреА рдкрд╛рддрд│ рд╡реНрд╣реЙрд▓реНрдпреВрдордЪрд╛ рд╕реНрдиреЕрдкрд╢реЙрдЯ рдШреЗрддрд▓рд╛ рдЕрд╕реЗрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░ рдХреЕрд╢реЗ рдХрд┐рдорд╛рди рдПрдХрджрд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдЭрд╛рд▓рд╛ рдЕрд╕реЗрд▓, рддрд░, рдПрд▓рд╡реНрд╣реАрдПрдо рдерд┐рдирдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдбрд┐рдЭрд╛рдЗрдирдореБрд│реЗ, рдХреЕрд╢реЗ рдЧрдорд╛рд╡рд▓реНрдпрд╛рд╕ рд╕реНрдиреЕрдкрд╢реЙрдЯрдЪреНрдпрд╛ рдЕрдЦрдВрдбрддреЗрдЪреА рд╣рдореА рджрд┐рд▓реА рдЬрд╛рдИрд▓. .

рдЪрд▓рд╛ рдПрдХ рдирд╡реАрди 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
рдХрд╛ -Zyрд╣рд╛ рдореЛрдб рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдХрд╢рд╛рд╕рд╛рдареА рдЖрд╣реЗ - рд╕реНрдкреЗрд╕рдЪреЗ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдХрд░рддрд╛рдирд╛ рдПрдХрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдордзреАрд▓ рдбреЗрдЯрд╛ рджреБрд╕рд░реНтАНрдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╡рд░ рд▓реАрдХ рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА - 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 рд╕реЗрдХрдВрджрд╛рдВрд╕рд╛рдареА рдЪрд╛рд▓реЗрд▓. рдирд┐рдореНрдореНрдпрд╛ рдЪрд╛рдЪрдгреНрдпрд╛ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрд╕рд╛рдареА рдЖрд╣реЗрдд. рддреБрдореНрд╣реА NVMe рд╡рд░ 4 рд╕реЗрдХрдВрджрд╛рдд рдмрд░реЗрдЪ рдХрд╛рд╣реА рд░реЗрдХреЙрд░реНрдб рдХрд░реВ рд╢рдХрддрд╛. рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 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 рдЕтАНреЕрд░реЗрдЪреА рдЧрддреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рддрд╕реЗрдЪ рддреНрдпрд╛рдВрдЪреЗ 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/DISCARD

рдХрд╛рд░рдг рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬрдЪрд╛ рд╡рд╛рдкрд░ 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 рдордзреАрд▓ рдЕрд╢рд╛ DISCARDs рд▓рд╛ 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/ subdirectories рдордзреНрдпреЗ рджрд┐рд╕реВрди рдпреЗрддреАрд▓.

рдЪрд▓рд╛ рдХреЛрдбрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдЕрдзрд┐рдХрд╛рд░ рджреЗрдК:

#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

рддреЗ рдХрд╛рдп рдХрд░рддреЗ...?рдкрд╛рддрд│ рд╕реНрдиреЕрдкрд╢реЙрдЯреНрд╕ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ ddrescue рдЖрдгрд┐ blkdiscard рд╡рд╛рдкрд░реВрди thin_delta рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рджреЛрди рдкрд╛рддрд│ рд╕реНрдиреЕрдкрд╢реЙрдЯрдордзреАрд▓ рдлрд░рдХ рджреБрд╕рд░реНтАНрдпрд╛ рдмреНрд▓реЙрдХ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрджреЗрд╢рд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.

рджреБрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреА рдЖрдореНрд╣реА рдХреНрд░реЙрдирдордзреНрдпреЗ рдареЗрд╡реВ:

рдЬрд░рд╛ рдЬрд╛рд╕реНрдд рдмрд╛рд╢#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 рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рдкрд░реВрди рдЕрдиреЗрдХ рдЦрдВрдбрд╛рдВрд╡рд░ рд░рд┐рдбрдВрдбрдВрд╕реАрд╕рд╣ рднреВ-рд╡рд┐рддрд░рд┐рдд рд╕реНрдЯреЛрд░реЗрдЬ/рд╡реНрд╣реАрдПрдо рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдзрд╛рд░ рдореНрд╣рдгреВрди рдЕрдиреЗрдХ рд╕рдорд╛рди рдореЛрдмрд╛рдЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо/KVM рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛