Proxmox рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдЯреЛрд░реЗрдЬред рднрд╛рдЧ рддреАрди рдмрд╛рд░реАрдХрд┐рдпреЛрдВ

рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

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

рдЕрдзрд┐рдХреГрдд iSCSI рдХрдиреЗрдХреНрд╢рди


рдпрджрд┐ рдЖрдкрдХреЛ iSCSI рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдХреНрд░реЗрдбрд┐рдЯрдпрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рддреЛ Proxmox рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдХреНрдпреЛрдВ?


рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди :

root@srv01-vmx:~# iscsiadm -m discovery -t st -p 10.11.12.13 root@srv01-vmx:~# iscsiadm -m node --targetname "iqn.2012-10.local.alawar.ala-nas-01:pve-cluster-01" --portal "10.11.12.13:3260" --op=update --name node.session.auth.authmethod --value=CHAP root@srv01-vmx:~# iscsiadm -m node --targetname "iqn.2012-10.local.alawar.ala-nas-01:pve-cluster-01" --portal "10.11.12.13:3260" --op=update --name node.session.auth.username --value=Admin root@srv01-vmx:~# iscsiadm -m node --targetname "iqn.2012-10.local.alawar.ala-nas-01:pve-cluster-01" --portal "10.11.12.13:3260" --op=update --name node.session.auth.password --value=Lu4Ii2Ai root@srv01-vmx:~# iscsiadm -m node --targetname "iqn.2012-10.local.alawar.ala-nas-01:pve-cluster-01" --portal "10.11.12.13:3260" --login 

рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕рднреА рдкреЛрд░реНрдЯрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд▓рдХреНрд╖реНрдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рдЪрд╛рд╣рд┐рдПред рдпрд╛ рдЖрдк рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рдиреЛрдб рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ " / etc / iscsi / nodes " рдФрд░ " / etc / iscsi / send_targets "ред

рдирдП GFS2-FS рдиреЛрдб рдкрд░ рдмрдврд╝рддреЗ


рдПрдХ рдирдП рдиреЛрдб рдкрд░ GFS2- рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ ( рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо ) рдПрдХ рдФрд░ рд▓реЙрдЧ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдХрд┐рд╕реА рднреА рдиреЛрдб рдкрд░ рдЬрд┐рд╕ рдкрд░ рд╣рдореЗрдВ рдПрдлрдПрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 root@pve01:~# gfs2_jadd -j 1 /mnt/cluster/storage01 

" -J " рдкреИрд░рд╛рдореАрдЯрд░ рдПрдлрдПрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЖрджреЗрд╢ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

 create: Disk quota exceeded 

рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг:

GFS2 рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдЕрдВрджрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛ рд╣реИрдВред рдПрдХ рдЕрдиреНрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЗрд╕реЗ " -o рдореЗрдЯрд╛ " рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдХрд░ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ FS рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕рдВрднрд╡рддрдГ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╡рд┐рдирд╛рд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред FS рдореЗрдВ рд▓реЙрдЧ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдореЗрдЯрд╛- рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА " / tmp / TEMP_RANDOM_DIR " рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕рдореЗрдВ рдПрдХ рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдЙрди рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рдХрд░реНрдиреЗрд▓ рдХрднреА-рдХрднреА рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрдВрдЯреЗрдб рдХреЛрдЯрд╛ рдорд╛рдЙрдВрдЯреЗрдб рдореЗрдЯрд╛-рдПрдлрдПрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдЖрдк GFS2 рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд░рд┐рдореВрд╡ рдХрд░рдХреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ FS рдкрд░ рд╕реНрдерд┐рдд рд╕рднреА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ) рдФрд░ рдРрдб рд▓реЙрдЧ рдХрдорд╛рдВрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдВред рд▓реЙрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдЕрдВрддрд┐рдо рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдореЗрдЯрд╛-рдПрдлрдПрд╕ рдХреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

 cat /proc/mounts | grep /tmp/ | grep -i gfs2 | awk '{print $2}' | xargs umount 

рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛


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

рдЬрдм рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ vzctl рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ ( рдпрджрд┐ рдХреЛрдИ рд╣реЛ ):


рдЬрдм рд░реЛрдХрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИрдВ:


рдЬрд╣рд╛рдВ " CTID " рдХрдВрдЯреЗрдирд░ рдирдВрдмрд░ рд╣реИред " рд╡реАрдкреАрдПрд╕ред * " рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд┐рдкрд┐рдпреЛрдВ " * .рд╕реНрдЯрд╛рд░реНрдЯ " рдФрд░ " .рд╕реНрдЯреЙрдк " рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╛рдХреА рд╕рднреА рдореЗрдЬрдмрд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдХрдВрдЯреЗрдирд░ рдХреА рд╕реНрдЯрд╛рд░реНрдЯ / рд╕реНрдЯреЙрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбреЗрдЯрд╛ рдорд╛рдЙрдВрдЯ рдХрд░рдХреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ:

рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛

рдпрджрд┐ рдХрдВрдЯреЗрдирд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╣реЛрд╕реНрдЯ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рджреЛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реИрдВ:

  1. рдХрдВрдЯреЗрдирд░ рдЫреЛрдЯрд╛ рд╣реИ, рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░реЙрдХреНрд╕рдореЙрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдВрдЯреЗрдирд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ / рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред
  2. рдХрдВрдЯреЗрдирд░ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╡рдпрд╕реНрдХ рдмреИрдХрдЕрдк рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде (рдмрд╣реБрд╕реНрддрд░реАрдп рдмреИрдХрдЕрдк, рд░реЛрдЯреЗрд╢рди, рдЖрдВрдХрдбрд╝реЗ, рдФрд░ рдЗрд╕реА рддрд░рд╣)ред

рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА " CTID.mount ":

 #!/bin/bash . /etc/vz/vz.conf #        OpenVZ.  ,     ${VE_ROOT} -     . . ${VE_CONFFILE} #       DIR_SRC=/storage/src_dir #   ,      DIR_DST=/data #   ,     $DIR_SRC mkdir -p ${VE_ROOT}/${DIR_DST} #      mount -n -t simfs ${DIR_SRC} ${VE_ROOT}/{$DIR_DST} -o /data #     

рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛

рдореЗрдЬрдмрд╛рди рдкрд░ рдПрдХ рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА " CTID.mount ":

 #!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} UUID_SRC=3d1d8ec1-afa6-455f-8a27-5465c454e212 # UUID ,      DIR_DST=/data mkdir -p ${VE_ROOT}/${DIR_DST} mount -n -U ${UUID_SRC} ${VE_ROOT}/{$DIR_DST} 

рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛

рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдпрджрд┐ рдХреБрдЫ рдореБрд╢реНрдХрд┐рд▓ рдЙрддреНрдкрд╛рдж ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкреНрд▓рдВрдХ ) рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рд┐рдордлреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рд╣рдо рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдЬреАрдПрдлрдПрд╕ 2 рдХреА рдЧрддрд┐ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдвреЗрд░ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреИрд╢ рд╣реИред GFS2 рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЬрд▓реНрджреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдЖрдк рд╣реЛрд╕реНрдЯ рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ GFS2 ( ext3 ) рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

рдХрдВрдЯреЗрдирд░ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реВрдк рдбрд┐рд╡рд╛рдЗрд╕ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

 root@srv01:/storage# truncate -s 10G CTID_ext3.fs 

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ FS рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ:

 root@srv01:/storage# mkfs.ext3 CTID_ext3.fs mke2fs 1.42 (29-Nov-2011) CTID_ext3.fs is not a block special device. Proceed anyway? (y,n) y ... 

рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА " CTID.mount ":

 #!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} CFILE_SRC=/storage/CTID_ext3.fs #   ,      DIR_DST=/data mkdir -p ${VE_ROOT}/${DIR_DST} mount -n ${CFILE_SRC} -t ext3 ${VE_ROOT}/{$DIR_DST} -o loop 

рд░реБрдХрдиреЗ рдкрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдХреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░рдирд╛

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

 #!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} DIR=/data if mountpoint -q "${VE_ROOT}${DIR}" ; then umount ${VE_ROOT}${DIR} fi 

рдПрдХ рдЧреИрд░-рдХреНрд▓рд╕реНрдЯрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВ


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


рдкреНрд░рдХреНрд░рд┐рдпрд╛:

CLVM рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рдХреА рдЕрдкрдиреА рддрд╛рд░реНрдХрд┐рдХ рдорд╛рддреНрд░рд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕реЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВред

рд╣рдо рдореБрдЦреНрдп рднрдВрдбрд╛рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/ рд╕рдВрдЧреНрд░рд╣рдг" )ред рд╣рдо рдЗрд╕рдореЗрдВ рдЕрдкрдиреА рддрд╛рд░реНрдХрд┐рдХ рдорд╛рддреНрд░рд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред Proxmox рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ, " рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ " рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рднрдВрдбрд╛рд░ рдмрдирд╛рдПрдВ , рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, " STORAGE ", рдФрд░ рдХрд╣реЗрдВ рдХрд┐ рдпрд╣ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдмреИрдХрдЕрдк рд╕реНрдЯреЛрд░реЗрдЬ рдмрдирд╛рдПрдВред рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/ storage2" )ред Proxmox рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ, " рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ " рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рднрдВрдбрд╛рд░ рдмрдирд╛рдПрдВ , рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, " STORAGE2 ", рдФрд░ рдХрд╣реЗрдВ рдХрд┐ рдпрд╣ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЧрд┐рд░рдиреЗ / рдмрдВрдж рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЙрд╕ рдиреЛрдб рдкрд░ " / рд╕рдВрдЧреНрд░рд╣рдг 2 " рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЗрд╕рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдореГрддрдХ рдХрд╛ рдмреЛрдЭ рдЙрдард╛рдПрдЧрд╛ ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:


рдХреНрдпреЛрдВ "рдХреЗ рддрд╣рдд ", рдФрд░ рдХреНрдпреЛрдВ " рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ ":

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

  1. рдЕрдЧреНрдирд┐ рдкреАрдбрд╝рд┐рддреЛрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдирдХрд╛ рдирдпрд╛ рдШрд░ " рднрдВрдбрд╛рд░рдг " рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди / рднрдВрдбрд╛рд░рдг 2 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ " * .conf " рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ " / etc / pve / nodes / dead_name / openvz ", " / рд╕рдВрдЧреНрд░рд╣рдг / рдирд┐рдЬреА / CTID " рд╕реЗ VE_PRIVATE рдЪрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ " / рд╕рдВрдЧреНрд░рд╣рдг 2 / рдирд┐рдЬреА / CTID " рдореЗрдВ рдмрджрд▓реЗрдВ ред
  2. рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдмрддрд╛рдПрдВ рдХрд┐ рдЙрд╕ рдирд┐рд░реНрдЬреАрд╡ рдиреЛрдб рдореЗрдВ рд╕реЗ рдЖрднрд╛рд╕реА рдХрдВрдкреНрдпреВрдЯрд░ рдЕрдм рдЗрд╕ рдЬреАрд╡рд┐рдд рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ " / etc / pve / nodes / dead_name / openvz " рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ " / etc / pve / nodes / live_node / openvz " рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ ред рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд╣реА API рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ :)
  3. рдкреНрд░рддреНрдпреЗрдХ рдЬрд▓реЗ рд╣реБрдП рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдХреЛрдЯрд╛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ ( рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ ):

     vzquota drop CTID 


рд╡рд╣ рд╕рдм рд╣реИред рдЖрдк рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЕрдЧрд░ рдХреНрд▓рд╕реНрдЯрд░ рдЕрд▓рдЧ рд╣реЛ рдЧрдпрд╛


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

рдпрджрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд▓реАрдб рдХреЛ рд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ ( рдлрд╝рд╛рдЗрд▓ "/ etc / default / redhat-рдХреНрд▓рд╕реНрдЯрд░-pve" ) рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдмрд╛рдбрд╝ рдХреЗ рдбреЛрдореЗрди рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ, рдФрд░ рд╕рднреА рдиреЛрдбреНрд╕ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдиреЛрдбреНрд╕ рдЕрдкрдиреЗ рджрдо рдкрд░ рд░рд┐рдмреВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрд╛рдбрд╝ рдбреЛрдореЗрди рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ, рд╕реАрдПрд▓рд╡реАрдПрдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рд╣реИред


рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ рдХрд┐ рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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


All Articles