XCP-ng에서 Storage는 iSCSI를 연동한 ZFS Repository를 사용하고자 합니다.
이를 위해서 FreeNAS로 ZFS를 구성하였고, XCP-ng와 FreeNAS 서버간 iSCSI 연결을 통하여 XCP-ng에 Block 기반 스토리지를 구성하고, 여기에 CentOS 7.6 VM을 생성하여 DD 테스트를 수행하였습니다.
이 경우, Disk Write만을 단순 테스트하였고, XCP-ng에 배포된 VM (CentOS 7.6)에서의 Disk I/O가 FreeNAS 서버에서 직접 수행한 Disk I/O와 비교하여 현저하게 낮게 나오고 있습니다.
테스트 환경 구성 정보
++++++++++++++++++++++++++
- ZFS Storage: FreeNAS 11.2, 2TB HDD 12개로 RAIDZ2 구성, DC P3700 SSD 2개로 ZIL, L2ARC 각각 구성
- Virtualization: XCP-ng 7.6
- Network: 10GbE로 FreeNAS와 XCP-ng 서버간 Direct 연결 (iSCSI는 multipath를 구성하지는 않음)
- Storage volume: FreeNAS에서 1TB 크기의 zvol를 생성 (blocksize=128k)하고 이를 iSCSI 서비스에 할당 (LUN 등록)하고 SCP-ng에서 iSCSI 기반 Storage를 생성함 (이때 Storage type은 LVM over iSCSI로 생성되네요).
iperf3를 이용한 Network 테스트 내용
+++++++++++++++++++++++++++++++++++++
XCP-ng Dom0에서 ZFS Storage인 FreeNAS 서버로 iperf3 테스트 (10GbE Direct 연결되어 있음).
[root@svms3 ~]# iperf3 -c 172.16.1.90
Connecting to host 172.16.1.90, port 5201
[ 4] local 172.16.1.30 port 52690 connected to 172.16.1.90 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 1.15 GBytes 9.89 Gbits/sec 0 874 KBytes
[ 4] 1.00-2.00 sec 1.15 GBytes 9.88 Gbits/sec 0 874 KBytes
[ 4] 2.00-3.00 sec 1.15 GBytes 9.88 Gbits/sec 0 874 KBytes
[ 4] 3.00-4.00 sec 1.15 GBytes 9.88 Gbits/sec 0 874 KBytes
[ 4] 4.00-5.00 sec 1.15 GBytes 9.88 Gbits/sec 0 874 KBytes
[ 4] 5.00-6.00 sec 1.15 GBytes 9.88 Gbits/sec 0 874 KBytes
[ 4] 6.00-7.00 sec 1.15 GBytes 9.88 Gbits/sec 0 874 KBytes
[ 4] 7.00-8.00 sec 1.15 GBytes 9.88 Gbits/sec 0 874 KBytes
[ 4] 8.00-9.00 sec 1.15 GBytes 9.89 Gbits/sec 0 1.29 MBytes
[ 4] 9.00-10.00 sec 1.15 GBytes 9.88 Gbits/sec 0 1.29 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 11.5 GBytes 9.88 Gbits/sec 0 sender
[ 4] 0.00-10.00 sec 11.5 GBytes 9.88 Gbits/sec receiver
iperf Done.
FreeNAS에서 DD Write 테스트
+++++++++++++++++++++++++++++++
root@snas9[/]# dd if=/dev/zero of=/mnt/hpool/ddfile1 bs=1024k count=16k
16384+0 records in
16384+0 records out
17179869184 bytes transferred in 8.845996 secs (1942106827 bytes/sec)
XCP-ng의 VM 내에서 DD Write 테스트
++++++++++++++++++++++++++++++++++++
[root@localhost /]# dd if=/dev/zero of=/ddfile1 bs=1024k count=16k
16384+0 records in
16384+0 records out
17179869184 bytes (17 GB) copied, 70.2106 s, 245 MB/s
위의 테스트 결과에서 소요된 시간으로 비교해 보면, 10GbE 네트웍으로 묶여 있는 상태에서 iSCSI 연동한 Disk I/O의 Write 성능이 ZFS Local에서의 Disk I/O보다 약 9배 정도 성능이 떨어지는 것으로 나타납니다.
문제 해결을 위한 조언좀 부탁드립니다. 저가 미쳐 놓치고 있는 부분이 있을것 같은데 몇일째 그 원인을 찾지 못하고 있네요.
1. Network Setting¿¡ ¹Î°¨ ÇÒ ¼ö ÀÖ½À´Ï´Ù. iSCSI´Â Jumbo FrameÀÌ ÇÙ½ÉÀε¥ ¸¸¾à Intel X5xx °è¿ÀÇ Network Card¸¦ »ç¿ëÇϽøé Jumber FrameÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿À» ¾ÈÇÏ´øÁö ¾Æ´Ï¸é ¼º´ÉÀÌ Àß ³ªÁú ¾ÊÁÒ. Æ©´×ÀÌ ¸¹ÀÌ ÇÊ¿äÇÕ´Ï´Ù.
Network Switch¿¡ iSCSI ÃÖÀûÈ ¼³Á¤ÀÌ µÇ¾î ÀÖ´ÂÁöµµ º¸½Ã±¸¿ä.
Network Card¿¡ µû¶ó¼ MTU Å©±âµµ ÀÌ»óÇÑ ¼öÄ¡¸¦ ¿ä±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. 9216, 9000, 8972, 8958 µî ´Ù¾çÇÑ ¼öÄ¡·Î Çغ¸¼¼¿ä.
2. DD¿¡ BS¸¦ 1MB·Î Çϼ̴µ¥ º¸Åë iscsiÀÇ packet size°¡ 32k¸¦ ³ÑÁö ¾Ê½À´Ï´Ù. ´ëºÎºÐ 8k Á¤µµ¿¡¼ ÀÌ·ç¾î Áý´Ï´Ù.
iSCSI´Â initiator¿Í targetÀÌ ¼·Î ÇùÀÇ ÇÏ¸é¼ Å©±â¸¦ Á¤Çϱ⠶§¹®¿¡ º¸Åë Å©±â¸¦ ÁöÁ¤Çϱâ´Â ¾î·Æ½À´Ï´Ù¸¸ 1M´Â iscsi·Î¼´Â ³Ê¹« Å« ¼öÄ¡ÀÔ´Ï´Ù.
3. ´Ù¸¥ ÀÇ°ßÀÔ´Ï´Ù¸¸ VMÀ» ¼öÇàÇÏ´Â iSCSI ȯ°æÀ̶ó¸é BS´Â ´õ Àû¾îÁ®¾ß ÇÕ´Ï´Ù. º¸Åë 4KB°¡ ÃÖÀûÀ¸·Î ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. ½ÇÁ¦ »ç¿ëȯ°æÀÇ ¼º´ÉÀÌ ÇÊ¿äÇϽøé BS¸¦ 4KB·Î ÇϽô°ÍÀÌ ÁÁ½À´Ï´Ù.
4. ¶Ç ´Ù¸¥ ÀÇ°ßÀÔ´Ï´Ù¸¸ ±âº»ÀûÀ¸·Î ZFS´Â iSCSI¿Í ÁÁÀº Á¶ÇÕÀº ¾Æ´Õ´Ï´Ù. ZFS¿Í °°Àº COW ½Ã½ºÅÛÀº ÀÛÀº Å©±âÀÇ Write IO°¡ ¸¹Àº VM ÀúÀå¼Ò·Î´Â ÁÁÁö¾Ê½À´Ï´Ù. DB¸¦ »ç¿ëÇϴ ȯ°æÀº ÃÖ¾ÇÀ̱¸¿ä.
5. 4¹øÀÇ ÀÌÀ¯·Î ZFSÀÇ ¼º´ÉÅ×½ºÆ®´Â Á» ¾î·Æ½À´Ï´Ù. cache È¿°ú°¡ ³Ê¹« Å©°Ô ÀÛ¿ëÀ» ÇÕ´Ï´Ù. Å×½ºÆ® ÇϽǶ§ Local, Local,..., Local ´ÙÀ½¿¡ iSCSI, iSCSI,...,iSCSI°¡ ¾Æ´Ï¶ó Local, iSCSI, Local, iSCSIµîÀ» ¹Ù²ã°¡¸é¼ 10ȸ ÀÌ»ó Çغ¸¼Å¾ß ±×³ª¸¶ Á¤È®ÇÑ °á°ú¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
±×·¸´Ù¸é iscsi initiator ´Ü¿¡¼ ´Ù¾çÇÑ tuningÀÌ °¡´ÉÇÕ´Ï´Ù.
À̺κÐÀº ±¸±Û¿¡ ¸¹ÀÌ ÀÖ½À´Ï´Ù.
°á·ÐÀº SANÀΰǰ¡¿ä.
FreeNAS ´ë½Å Oracle Solaris 11.4·Î ZFS ±¸¼ºÇÑ °æ¿ì¿¡´Â ±×³ª¸¶ Á¶±Ý ´õ ¼Óµµ °³¼±ÀÌ ÀÖ¾úÁö¸¸ °áÁ¤ÀûÀÌÁø ¾ÊÀº °ÍÀ» º¸¸é iSCSI¿¡ ´ëÇÑ ´õ ±íÀº °í¹ÎÀÌ ÀÖ¾î¾ß ÇÒ µí ÇÕ´Ï´Ù. (HDD¸¦ SSD·Î º¯°æÇßÀ» °æ¿ì¿¡µµ iSCSI¿¡ ´ëÇÑ °³¼±Àº ¾ø´õ¶ó±¸¿ä).
ÀÏ´ÜÀº Network Switch¸¦ ¹èÁ¦ÇÏ°í Direct ¿¬°áÇÑ »óÅ¿¡¼ iSCSI¿¡ ´ëÇÑ Æ©´×À» ÇØ º¸°í iSCSI »ç¿ëÇÒÁö ¾Æ´Ï¸é SANÀ¸·Î ³Ñ¾î°¥Áö °áÁ¤À» ÇØ¾ß ÇÒ°Å °°½À´Ï´Ù.
ÀÎÅͳݿ¡¼ cow, copy on write, file system ±â¼ú ã¾Æ¼ Àо½Ã¸é ¿Ö zfs + is is or fc°¡ ´äÀÌ ¾Æ´ÑÁö ¾Ë ¼ö ÀÖÀ»°Ì´Ï´Ù.
Âü°í·Î °èȹÀº ¾Æ·¡¿Í °°Àº ¹æ¾ÈÀÔ´Ï´Ù.
- ZFS zvol01: 128k block size, iSCSI·Î ¿¬µ¿ÇÏ¿© VMµéÀÌ À§Ä¡ÇÏ´Â Storage ¿µ¿ª
- ZFS zvol02: 8k block size, Oracle DB software°¡ ¼³Ä¡µÈ Linux VM ³»¿¡¼ iSCSI·Î ¸¶¿îÆ®ÇÏ¿© Oracle Data file¿ëÀ¸·Î »ç¿ëÇÏ°íÀÚ ÇÔ)
Ä¿³Î ¸Þ¸ð¸® ij½ÌÀ» È°¼ºÈÇϸé Á» ±¦ÂúÀ» ¼öµµ ÀÖ½À´Ï´Ù..
https://www.youtube.com/watch?v=OAe3_8qoCWo
ÇÑ ¹ø Âü°íÇغ¸½Ã¸é ÁÁÀ» °Í °°½À´Ï´Ù.