ํธ์คํ
์ ๊ณต์
์ฒด์ ๋ชฉํ ์ค ํ๋๋ ์ต์ข
์ฌ์ฉ์์๊ฒ ๊ณ ํ์ง ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๊ธฐ์กด ์ฅ๋น์ ํ์ฉ๋๋ฅผ ๊ทน๋ํํ๋ ๊ฒ์
๋๋ค. ์ต์ข
์๋ฒ์ ๋ฆฌ์์ค๋ ํญ์ ์ ํ๋์ด ์์ง๋ง ํธ์คํ
๋๋ ํด๋ผ์ด์ธํธ ์๋น์ค์ ์(์ด ๊ฒฝ์ฐ VPS์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์)๋ ํฌ๊ฒ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋๋ฌด์ ์ค๋ฅด๋ ๋ฐฉ๋ฒ๊ณผ ์ ๋จ๋ ๋ถ๋ถ ์๋์์ ๋ฒ๊ฑฐ๋ฅผ ๋จน๋ ๋ฐฉ๋ฒ์ ๋ํด ์ฝ์ด๋ณด์ธ์.
ํด๋ผ์ด์ธํธ๊ฐ ์ ํ ๋๋ผ์ง ๋ชปํ๋ ๋ฐฉ์์ผ๋ก ๋ ธ๋์์ VPS๋ฅผ ์์ถํ๋ฉด ํธ์คํ ์ ๊ณต์ ์ฒด์ ๊ฒฝ์ ์ ์ฑ๊ณผ๋ฅผ ๋์ด๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. ๋ฌผ๋ก , ๋ ธ๋๊ฐ ์ปจํ ์ด๋๋ก ๊ฝ ์ฐจ ์์ผ๋ฉด ๋ ธ๋๊ฐ ํฐ์ ธ์๋ ์ ๋๋ฉฐ, ๋ถํ ๊ธ์ฆ์ด ๋ชจ๋ ํด๋ผ์ด์ธํธ์์ ์ฆ์ ๋๊ปด์ง๋๋ค.
ํ๋์ ๋ ธ๋์์ ํธ์คํ ํ ์ ์๋ VPS ์๋ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
1. ๋
ธ๋ ์์ฒด์ ํ๋์จ์ด ํน์ฑ
2. VPS ํฌ๊ธฐ
3. VPS ๋ถํ์ ์ฑ๊ฒฉ
4. ๋ฐ๋ ์ต์ ํ๋ฅผ ๋๋ ์ํํธ์จ์ด ๊ธฐ์
์ด ๊ฒฝ์ฐ Virtuozzo์ Pfcache ๊ธฐ์ ์ ์ฌ์ฉํ ๊ฒฝํ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๋ 6๋ฒ์งธ ์ง์ ์ ์ฌ์ฉํ์ง๋ง ์์ ๋งํ ๋ชจ๋ ๋ด์ฉ์ 7๋ฒ์งธ ์ง์ ์๋ ์ ์ฉ๋ฉ๋๋ค.
์ค์ ๋ก๋ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
1. ์ปค๋ ์ฝ๋
2. ์ฌ์ฉ์ ๊ณต๊ฐ์ ์
๋ง
3. ์ฌ์ฉ์ ๊ณต๊ฐ ์ ํธ๋ฆฌํฐ
๋ ธ๋ ์ธก์์๋ ๋ ธ๋์ ๋ชจ๋ VPS์์ ์ง์ ์ฌ์ฉํ ํ์ผ์ด ์์ฑ๋๋ ์ ์ฒด ์น์ ์ ํ ๋นํฉ๋๋ค. ์ด ์น์ ์๋ ๋ธ๋กํ๋ฃจํ ์ฅ์น๊ฐ ์ฅ์ฐฉ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ปจํ ์ด๋๊ฐ ์์๋๋ฉด ์ด ์น์ ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ฐ์ต๋๋ค.
[root@pcs13 ~]# cat /proc/mounts
...
/dev/ploop62124p1 /vz/pfcache ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12 0 0
...
/dev/ploop22927p1 /vz/root/418 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
/dev/ploop29642p1 /vz/root/264 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
...
๋ค์์ ๋ ธ๋ ์ค ํ๋์ ํ์ผ ์์ ๋ํ ๋๋ต์ ์ธ ํต๊ณ์ ๋๋ค.
[root@pcs13 ~]# find /vz/pfcache -type f | wc -l
45851
[root@pcs13 ~]# du -sck -h /vz/pfcache
2.4G /vz/pfcache
2.4G total
pfcache์ ์๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โข ์ฌ์ฉ์ ๊ณต๊ฐ ๋ฐ๋ชฌ Pfcached๋ ํ์ผ์ sha-1 ํด์๋ฅผ ์ด ํ์ผ์ xattr ์์ฑ์ ๊ธฐ๋กํฉ๋๋ค. ๋ชจ๋ ํ์ผ์ด ์ฒ๋ฆฌ๋๋ ๊ฒ์ ์๋์ง๋ง /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 ๋๋ ํฐ๋ฆฌ์์๋ง ์ฒ๋ฆฌ๋ฉ๋๋ค.
โข ์ด๋ฌํ ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ "๊ณต์ "๋๊ณ ์ฌ๋ฌ ์ปจํ ์ด๋์์ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
โข Pfcached๋ ์ปค๋์์ ํ์ผ ์ฝ๊ธฐ์ ๋ํ ํต๊ณ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์์งํ๊ณ ๋ถ์ํ๋ฉฐ ํ์ผ์ด ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ์บ์์ ์ถ๊ฐํฉ๋๋ค.
โข ์ด๋ฌํ ๋๋ ํฐ๋ฆฌ๋ ๋ค๋ฅผ ์ ์์ผ๋ฉฐ ๊ตฌ์ฑ ํ์ผ์์ ๊ตฌ์ฑ๋ฉ๋๋ค.
โข ํ์ผ์ ์ฝ์ ๋ xattr ํ์ฅ ์์ฑ์ ์ง์ ๋ ํด์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ํฌํจ๋ ๊ฒฝ์ฐ ์ปจํ ์ด๋ ํ์ผ ๋์ "์ผ๋ฐ" ํ์ผ์ด ์ด๋ฆฝ๋๋ค. ์ด๋ฌํ ๋์ฒด๋ ์ปจํ ์ด๋ ์ฝ๋์์ ๋์น์ฑ์ง ๋ชปํ ์ฑ ๋ฐ์ํ๋ฉฐ ์ปค๋์ ์จ๊ฒจ์ ธ ์์ต๋๋ค.
โข ํ์ผ์ ์ธ ๋ ํด์๊ฐ ๋ฌดํจํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ค์์ ์ปจํ ์ด๋ ํ์ผ์ ์ด๋ฉด ์บ์๊ฐ ์๋ ์ปจํ ์ด๋ ํ์ผ ์์ฒด๊ฐ ์ด๋ฆฝ๋๋ค.
/vz/pfcache์ ๊ณต์ ํ์ผ์ ํ์ด์ง ์บ์์ ๋ณด๊ดํจ์ผ๋ก์จ ์ด ์บ์ ์์ฒด์ IOPS๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค. ๋์คํฌ์์ XNUMX๊ฐ์ ํ์ผ์ ์ฝ๋ ๋์ XNUMX๊ฐ์ ํ์ผ์ ์ฝ๊ณ ์ฆ์ ํ์ด์ง ์บ์๋ก ์ด๋ํฉ๋๋ค.
struct inode {
...
struct file *i_peer_file;
...
};
struct address_space {
...
struct list_head i_peer_list;
...
}
ํ์ผ์ VMA ๋ชฉ๋ก์ ๋จ์ผ๋ก ์ ์ง๋๋ฉฐ(๋ฉ๋ชจ๋ฆฌ ์ค๋ณต ์ ๊ฑฐ) ๋์คํฌ์์ ์ฝ๋ ๋น๋๊ฐ ์ค์ด๋ญ๋๋ค(IOPS ์ ์ฝ). ์ฐ๋ฆฌ์ ๊ณต๋ ๊ธฐ๊ธ์ SSD์ ์์นํ๋ฏ๋ก ์๋๊ฐ ์ถ๊ฐ๋ก ํฅ์๋ฉ๋๋ค.
/bin/bash ํ์ผ ์บ์ฑ์ ์:
[root@pcs13 ~]# ls -li /vz/root/2388/bin/bash
524650 -rwxr-xr-x 1 root root 1021112 Oct 7 2018 /vz/root/2388/bin/bash
[root@pcs13 ~]# pfcache dump /vz/root/2388 | grep 524650
8e3aa19fdc42e87659746f6dc8ea3af74ab30362 i:524650 g:1357611108 f:CP
[root@pcs13 ~]# sha1sum /vz/root/2388/bin/bash
8e3aa19fdc42e87659746f6dc8ea3af74ab30362 /vz/root/2388/bin/bash
[root@pcs13 /]# getfattr -ntrusted.pfcache /vz/root/2388/bin/bash
# file: vz/root/2388/bin/bash
trusted.pfcache="8e3aa19fdc42e87659746f6dc8ea3af74ab30362"
[root@pcs13 ~]# sha1sum /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362
8e3aa19fdc42e87659746f6dc8ea3af74ab30362 /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362
์ฐ๋ฆฌ๋ ์ฌ์ฉ ํจ์จ์ฑ์ ๊ณ์ฐํฉ๋๋ค
์ด ์คํฌ๋ฆฝํธ๋ ๋ ธ๋์ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ํต๊ณผํ์ฌ ๊ฐ ์ปจํ ์ด๋์ ์บ์๋ ํ์ผ์ ๊ณ์ฐํฉ๋๋ค.
[root@pcs16 ~]# /pcs/distr/pfcache-examine.pl
...
Pfcache cache uses 831 MB of memory
Total use of pfcached files in containers is 39837 MB of memory
Pfcache effectiveness: 39006 MB
๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ 40GB์ ํ์ผ์ ์ปจํ ์ด๋์ ์ ์ฅํ๊ณ ์บ์์์ ๋ก๋๋ฉ๋๋ค.
์ด ๋ฉ์ปค๋์ฆ์ด ๋ ์ ์๋ํ๋ ค๋ฉด ๋ ธ๋์ ๊ฐ์ฅ "๋์ผํ" VPS๋ฅผ ๋ฐฐ์นํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์์๊ฒ ๋ฃจํธ ์ก์ธ์ค ๊ถํ์ด ์๊ณ ๋ฐฐํฌ๋ ์ด๋ฏธ์ง์ ํ๊ฒฝ์ด ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์ ๋๋ค.
๊ตฌ์ฑ ํ์ผ์ ํตํด pfcache๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
/etc/vz/pfcache.conf
MINSIZE, MAXSIZE โ ์บ์ฑ์ ์ํ ์ต์/์ต๋ ํ์ผ ํฌ๊ธฐ
TIMEOUT - ์บ์ฑ ์๋ ์ฌ์ด์ ์๊ฐ ์ด๊ณผ
๋งค๊ฐ๋ณ์์ ์ ์ฒด ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com