Cloudflare์ ๊ฐ๋ฐ์
Cloudflare๋ dm-crypt๋ฅผ ์ฌ์ฉํ์ฌ CDN์ ์ฝํ ์ธ ๋ฅผ ์บ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ์ฅ ์ฅ์น์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํฉ๋๋ค. Dm-crypt๋ ๋ธ๋ก ์ฅ์น ์์ค์์ ์๋ํ๊ณ ์ฐ๊ธฐ I/O ์์ฒญ์ ์ํธํํ๊ณ ์ฝ๊ธฐ ์์ฒญ์ ํด๋ ํ์ฌ ๋ธ๋ก ์ฅ์น์ ํ์ผ ์์คํ ๋๋ผ์ด๋ฒ ์ฌ์ด์ ๊ณ์ธต ์ญํ ์ ํฉ๋๋ค.
ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ dm-crypt์ ์ฑ๋ฅ์ ํ๊ฐํ๋ ค๋ฉด
์ฒ์์๋ ์ปค๋ ์ํธ ์์คํ ์์ ๋นํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค๋ ์ํน์ด ์ ๊ธฐ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ ์คํธ์์๋ 256๊ฐ์ ์ํธํ ํค๊ฐ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ธ aes-xts๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด ์๊ณ ๋ฆฌ์ฆ์ "cryptsetup ๋ฒค์น๋งํฌ"๋ฅผ ์คํํ ๋์ ์ฑ๋ฅ์ RAM ๋์คํฌ๋ฅผ ํ ์คํธํ ๋ ์ป์ ๊ฒฐ๊ณผ๋ณด๋ค ๋ ๋ฐฐ ์ด์ ๋์์ต๋๋ค. ์ฑ๋ฅ ํ๋์ ์ํ dm-crypt ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ์คํ์์๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์์ต๋๋ค. "--perf-same_cpu_crypt" ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ๋ ์ฑ๋ฅ์ ์ฌ์ง์ด 136MB/s๋ก ๊ฐ์ํ์ผ๋ฉฐ "--perf-submit_from_crypt_cpus" ํ๋๊ทธ๋ฅผ ์ง์ ํ ๋๋ ์ฑ๋ฅ๋ง ์ฆ๊ฐํ์ต๋๋ค. ์ต๋ 166MB/s.
์ด์ ๋ก์ง์ ๋ํ ์ฌ์ธต ๋ถ์์ ํตํด dm-crypt๋ ๋ณด์ด๋ ๊ฒ๋งํผ ๊ฐ๋จํ์ง ์๋ค๋ ์ฌ์ค์ด ๋๋ฌ๋ฌ์ต๋๋ค. FS ๋๋ผ์ด๋ฒ์์ ์ฐ๊ธฐ ์์ฒญ์ด ๋์ฐฉํ๋ฉด dm-crypt๋ ์ด๋ฅผ ์ฆ์ ์ฒ๋ฆฌํ์ง ์๊ณ "kcryptd" ๋๊ธฐ์ด์ ๋ฐฐ์นํฉ๋๋ค. ์ฆ์ ๊ตฌ๋ฌธ ๋ถ์๋์ง๋ ์์ง๋ง ํธ๋ฆฌํ ์๊ฐ์ ๊ตฌ๋ฌธ ๋ถ์๋ฉ๋๋ค. ๋๊ธฐ์ด์์ ์์ฒญ์ ์ํธํ๋ฅผ ์ํํ๊ธฐ ์ํด Linux Crypto API๋ก ์ ์ก๋ฉ๋๋ค. ํ์ง๋ง Crypto API๋ ๋น๋๊ธฐ ์คํ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ํธํ๋ ์ฆ์ ์ํ๋์ง ์๊ณ ๋ค๋ฅธ ๋๊ธฐ์ด์ ์ฐํํฉ๋๋ค. ์ํธํ๊ฐ ์๋ฃ๋ ํ dm-crypt๋ ๊ฒ์ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด๋ฅ ์ค์ธ ์ฐ๊ธฐ ์์ฒญ์ ์ ๋ ฌํ๋ ค๊ณ ์๋ํ ์ ์์ต๋๋ค.
์ฝ์ ๋ dm-crypt๋ ๋จผ์ "kcryptd_io" ๋๊ธฐ์ด์ ์์ฒญ์ ์ถ๊ฐํ์ฌ ๋๋ผ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค. ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๊ณ ์ํธ ํด๋
์ ์ํด "kcryptd" ๋๊ธฐ์ด์ ๋ฐฐ์น๋ฉ๋๋ค.
Kcryptd๋ ์ ๋ณด๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ํด๋
ํ๋ Linux Crypto API์ ์์ฒญ์ ๋ณด๋
๋๋ค. ์์ฒญ์ด ํญ์ ๋ชจ๋ ๋๊ธฐ์ด์ ํต๊ณผํ๋ ๊ฒ์ ์๋์ง๋ง ์ต์
์ ๊ฒฝ์ฐ ์ฐ๊ธฐ ์์ฒญ์ ์ต๋ 4๋ฒ, ์ฝ๊ธฐ ์์ฒญ์ ์ต๋ 3๋ฒ ๋๊ธฐ์ด์ ๋ค์ด๊ฐ๋๋ค. ๋๊ธฐ์ด์ ๋๋ฌํ ๋๋ง๋ค ์ง์ฐ์ด ๋ฐ์ํ๋ฉฐ, ์ด๋ dm-crypt ์ฑ๋ฅ์ด ํฌ๊ฒ ์ ํ๋๋ ์ฃผ์ ์์ธ์
๋๋ค.
๋๊ธฐ์ด์ ์ฌ์ฉํ๋ ์ด์ ๋ ์ค๋จ์ด ๋ฐ์ํ๋ ์กฐ๊ฑด์์ ์์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. 2005๋ ์ dm-crypt์ ํ์ฌ ๋๊ธฐ์ด ๊ธฐ๋ฐ ์ด์ ๋ชจ๋ธ์ด ๊ตฌํ๋์์ ๋ Crypto API๋ ์์ง ๋น๋๊ธฐ์์ด ์๋์์ต๋๋ค. Crypto API๊ฐ ๋น๋๊ธฐ ์คํ ๋ชจ๋ธ๋ก ์ ํ๋ ํ ๋ณธ์ง์ ์ผ๋ก ์ด์ค ๋ณดํธ๊ฐ ์ฌ์ฉ๋๊ธฐ ์์ํ์ต๋๋ค. ์ปค๋ ์คํ ์๋น๋ฅผ ์ค์ด๊ธฐ ์ํด ๋๊ธฐ์ด๋ ๋์ ๋์์ง๋ง 2014๋ ์ ๋๊ธฐ์ด์ด ์ฆ๊ฐํ ํ ์ด๋ฌํ ์ต์ ํ๋ ๊ด๋ จ์ฑ์ ์์์ต๋๋ค. ๋๋์ ์์ฒญ์ด ๋์ฐฉํ ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ ๋ณ๋ชฉ ํ์์ ๊ทน๋ณตํ๊ธฐ ์ํด ์ถ๊ฐ ํ "kcryptd_io"๊ฐ ๋์ ๋์์ต๋๋ค. 2015๋ ์๋ ๋ค์ค ํ๋ก์ธ์ ์์คํ ์ ์ํธํ ์์ฒญ์ด ์์ ์์ด ์๋ฃ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ์ ๋ ฌ ๋จ๊ณ๊ฐ ๋์ ๋์์ต๋๋ค(๋์คํฌ์ ๋ํ ์์ฐจ์ ์ก์ธ์ค ๋์ ๋ฌด์์ ์์๋ก ์ก์ธ์ค๊ฐ ์ํ๋์์ผ๋ฉฐ CFQ ์ค์ผ์ค๋ฌ๊ฐ ํจ์จ์ ์ผ๋ก ์๋ํ์ง ์์์ต๋๋ค). ํ์ฌ SSD ๋๋ผ์ด๋ธ๋ฅผ ์ฌ์ฉํ ๋ ์ ๋ ฌ์ ์๋ฏธ๊ฐ ์ฌ๋ผ์ง๊ณ CFQ ์ค์ผ์ค๋ฌ๋ ๋ ์ด์ ์ปค๋์์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
์ต์ ๋๋ผ์ด๋ธ๊ฐ ๋ ๋น ๋ฅด๊ณ ์ค๋งํธํด์ก์์ ๊ณ ๋ คํ์ฌ Linux ์ปค๋์ ๋ฆฌ์์ค ๋ถ๋ฐฐ ์์คํ
์ด ์์ ๋๊ณ ์ผ๋ถ ํ์ ์์คํ
์ด ์ฌ์ค๊ณ๋์์ต๋๋ค. Cloudflare ์์ง๋์ด
๊ฒฐ๊ณผ์ ์ผ๋ก RAM ๋์คํฌ๋ฅผ ํ
์คํธํ ๋ dm-crypt์ ์ฑ๋ฅ์ ๋ ๋ฐฐ ์ด์ ํฅ์์ํฌ ์ ์์์ต๋๋ค. ์ฑ๋ฅ์ 294MB/s(2 x 147MB/s)์์ 640MB/s๋ก ์ฆ๊ฐํ์ต๋๋ค. ๋ฒ ์ด ์ํธํ ์ฑ๋ฅ(696MB/s).
์ค์ ์๋ฒ์์ ๋ก๋๋ฅผ ํ ์คํธํ ๋ ์๋ก์ด ๊ตฌํ์ ์ํธํ ์์ด ์คํ๋๋ ๊ตฌ์ฑ๊ณผ ๋งค์ฐ ์ ์ฌํ ์ฑ๋ฅ์ ๋ณด์ฌ ์ฃผ์์ผ๋ฉฐ Cloudflare ์บ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์์ ์ํธํ๋ฅผ ํ์ฑํํด๋ ์๋ต ์๋์๋ ์ํฅ์ ๋ฏธ์น์ง ์์์ต๋๋ค. ์์ผ๋ก Cloudflare๋ ์ค๋น๋ ํจ์น๋ฅผ ๊ธฐ๋ณธ Linux ์ปค๋๋ก ์ ์กํ ๊ณํ์ด์ง๋ง, ๊ทธ ์ ์ ํจ์น๋ฅผ ์ฌ์์ ํด์ผ ํฉ๋๋ค. ์๋ํ๋ฉด ํด๋น ํจ์น๋ ํน์ ๋ก๋์ ์ต์ ํ๋์ด ์๊ณ ๋ฎ์ ์ํธํ์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์์ญ์ ๋ค๋ฃจ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. - ์๋ฒ ๋๋ ์ฅ์น์ ์ ์์ ๊ณต๊ธํฉ๋๋ค.
์ถ์ฒ : opennet.ru