ZFS рдФрд░ рдбрд┐рд╕реНрдХ рдкрд╣реБрдВрдЪ рдХреА рдЧрддрд┐ рд╣рд╛рдЗрдкрд░рд╡рд┐рдЬрд░ рдореЗрдВ

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



рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! ZFS рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рд╣реИрдВ (рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдПрдлрдПрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧред рдореБрдЭреЗ рдЕрдкрдиреЗ рдШрд░ рдХреЗ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рд╕рд░реНрд╡рд░ (рд╕рд╛рде рд╣реА kvaps рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж) рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕ рдПрдлрдПрд╕ рдореЗрдВ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рдереА, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рдорд╢реАрдиреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рддреБрд▓рдирд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ (рд╢рд╛рдпрдж рдореБрдЭреЗ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛) рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рддреБрд▓рдирд╛рддреНрдордХ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдордВрдЪ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

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

рдЫрд╡рд┐

рдкреНрд░рдпреЛрдЧ рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛: рдорд╢реАрди рдкрд░ рдкреНрд░реЛрдХреНрд╕рдореЙрдХреНрд╕ рд╡реАрдИ 5.2 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╣рд░ рдмрд╛рд░ рдмреВрдЯ рдбрд┐рд╕реНрдХ рд╕реЗ)ред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, XFS / ZFS рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рдИ рдЧрдИ рдереА, рдЬрд┐рд╕ рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ 2008 рдЖрд░ 2 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрд░рд┐рд╕реНрдЯрд▓рдбрд┐рд╕реНрдХрдорд╛рд░ 5.2.2 рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг 1, 4, 32 рдЧрд┐рдмреА рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓рд╛рдП рдЧрдП рдереЗ (32 GiB рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рдХрд╛рд░рдг, рдЖрдк рдЗрд╕реЗ рдЪреБрдирдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕рдорд╛рдзрд╛рди, рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред

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

рдЯреЗрд╕реНрдЯ ZFS RAID 0, RAID 1 рджреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪрдпрдирд┐рдд рдбрд┐рд╕реНрдХ рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, ZFS RAIDZ1 3 рдбрд┐рд╕реНрдХ рдкрд░, ZFS RAID 10, 4 RAID рдкрд░ RAIDZ2ред ZFS RaidZ3 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдПрдХ рдФрд░ рдЕрддреНрдпрдВрдд рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо 500GB HDD рдЦрд░реАрджрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдЖрдпреЛрдЬрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗред

рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд, рдореИрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ ZFS RAID рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди "рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ" рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд░реВрдВрдЧрд╛:

ZFS RAID
2 рдбрд┐рд╕реНрдХ:

  • ZFS RAID 0 - рд╕реНрдЯреНрд░рд╛рдЗрдкреНрдб, 2 * рдбрд┐рд╕реНрдХрд╕рд╛рдЗрдЬ = 1000GBред
  • ZFS RAID 1 - рдорд┐рд░рд░рд┐рдВрдЧ (рдорд┐рд░рд░), рд╡реЙрд▓реНрдпреВрдо 1 * рдбрд┐рд╕реНрдХрд╕рд╛рдЗрдЬ = 500 рдЬреАрдмреАред

3 рдбрд┐рд╕реНрдХ:

  • ZFS RaidZ1 - рдЙрд░реНрдл тАЛтАЛZFS RaidZ, RAID5 рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ, рд╡реЙрд▓реНрдпреВрдо (N - 1) * DiskSize = 1000GBред

4 рдбрд┐рд╕реНрдХ:

  • ZFS RAID 10 - рдзрд╛рд░реАрджрд╛рд░ рджрд░реНрдкрдг, 2 * рдбрд┐рд╕реНрдХрд╕рд╛рдЗрдЬ = 1000GBред
  • ZFS RaidZ2 - RAID6 рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ, (N - 2) рдХреА рд░рд╛рд╢рд┐ * DiskSize = 1000GBред
  • рдЙрд╕реА рд╕рдордп, рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди 4 рдбрд┐рд╕реНрдХ = 1500 рдЬреАрдмреА рдХреЗ рд╕рд╛рде рдЬреЗрдбрдПрдлрдПрд╕ рд░реЗрдбрдЬреЗрдб 1ред

рд╕рд╛рд░ рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ ред рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдЦреЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдбрд┐рд╕реНрдХ рд╣реИрдВред

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

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ, (рд╕рдВрднрд╡рддрдГ) рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВ:

  • рдорджрд░рдмреЛрд░реНрдб: рдЗрдВрдЯреЗрд▓ рдбреЗрд╕реНрдХрдЯреЙрдк рдмреЛрд░реНрдб DS67SQ-B3;
  • рдкреНрд░реЛрд╕реЗрд╕рд░: рдЗрдВрдЯреЗрд▓ рдкреЗрдВрдЯрд┐рдпрдо G630 2.7GHz;
  • RAM: 2 x 4096Mb Hynix PC3-10700;
  • рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡: 3 x WD 5000AZRX 500GB SATA 64MB рдХреИрд╢, 1 x WD 5000AZRZ 500GB SATA 64MB рдХреИрд╢, SSD SATA Goldenfir T650-8GB;
  • рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐: рдбреАрдкрдХреЛрд▓ DA500N 500Wред

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (KVM) рдХреЛ 4GB RAM, 1 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░, Virtio Block 100GB рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рдЬреЗрдбрдПрдлрдПрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, 2 рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдереЗ, рджреВрд╕рд░реЗ рдореЗрдВ, рдПрд╕рдПрд╕рдбреА рдХреЛ рдХреИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред

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

XFS




ZFS RAID 0


ZFS RAID 0 + рдХреИрд╢




ZFS RAID рез


ZFS RAID 1 + рдХреИрд╢




ZFS RAID 10



ZFS RAID 10 + рдХреИрд╢



ZFS RaidZ1


ZFS RaidZ1 + рдХреИрд╢




ZFS RAIDZ2


ZFS RaidZ2 + рдХреИрд╢



рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдпрд╣ рдирдореВрдирд╛ рд╣реЛрдЧрд╛, рдореЗрд░реЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧреАред

PS рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛, рдХреБрдЫ рдЪрд┐рддреНрд░ рдХрд╣реАрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдП рдереЗ, рдорд╛рдк рд╡рд╕рдВрдд рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдП рдЧрдП рдереЗ, рдкрд░реАрдХреНрд╖рдг рдордВрдЪ рдХреЛ рдЙрд╕ рд░реВрдк рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдЙрди рд╕рднреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг 32 GiB рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

PPS рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдЧрдарди рдФрд░ / рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рдореЗрд░рд╛ рдЙрджреНрджреЗрд╢реНрдп рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕рдордЭреМрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдирд╛ рдирд╣реАрдВ рдерд╛, рдЕрдЧрд░ рдореИрдВ рдХрд╣реАрдВ рдЧрд▓рдд рдерд╛, рддреЛ рдХреГрдкрдпрд╛ рдирд┐рдЬреА рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

PPPS ZFS рд▓реЛрдЧреЛ рдЫрд╡рд┐ рдПрдХ рдкреНрд░рдЬрдирди рд╣реИред

Source: https://habr.com/ru/post/hi423453/


All Articles