KVM/LXC 호스트의 높은 IO로 인해 서버가 중단되지만 게스트는 중단되지 않습니다(Proxmox/Debian)

KVM/LXC 호스트의 높은 IO로 인해 서버가 중단되지만 게스트는 중단되지 않습니다(Proxmox/Debian)

지난 몇 달 동안 문제가 있었고 점점 더 악화되었습니다. 이제 시각화 호스트(Proxmox ve 5.1-41)에서 거의 모든 집중적인 IO 작업을 수행하려고 하면 다음과 같은 지점에 도달했습니다. 백업 속도 또는 cp/rsync, dd 전송 속도가 KB/s로 떨어지면 서버가 무기한 중단되어 "작업이 120초 이상 중단"되는 경우가 많습니다. 오랫동안 디스크 문제인 줄 알았습니다. VM 저장소용 ZFS Raid 1에서 SSD 2개를 실행하고 있었지만 최근에는 SSD 자체 외에 다른 것을 사용할 수 없어 절망하기 시작했습니다. 모든 백업(한 풀에서 동일한 풀로 복사할 때의 속도는 괜찮습니다). 그런 다음 KVM/LXC 내의 호스트에서 수행한 것과 동일한 속도 테스트를 시도했지만 속도에 문제가 없고 속도가 느려지지 않았으며 모든 것이 예상대로 작동했습니다.

이 발견은 또한 내가 이전에 이 문제를 발견하지 못한 이유를 설명합니다. 왜냐하면 저는 가상 머신의 성능을 테스트해 왔고 호스트 머신이 게스트보다 성능이 나쁠 것이라고는 결코 생각하지 않았기 때문입니다.

나는 이 문제에 대해 Proxmox 포럼에 게시했지만 이것이 실제로 시스템의 버그인지 완전히 확신할 수 없으며 여러분 중 일부가 이 문제의 원인을 찾기 위해 어떤 테스트를 할 것인지 듣고 싶습니다.

모든 게스트 OS를 종료하고 변경 사항 없이 테스트했습니다. 머신에는 일반적인 사용 중에 사용할 수 있는 무료 리소스가 많이 있습니다. 디스크와 RAM에 충분한 공간이 있습니다.

CPU는 Intel Xeon E5-2620 v4입니다.

메모리: 64GB

데이터 디스크: ZFS RAID 10의 1TB SSD 2개

부팅 디스크: ZFS RAID 10의 satadom 32GB 2개

편집하다: 호스트의 IO가 높은 기간 동안 Proxmox 내 그래프에서 비정상적으로 나타나는 유일한 것은 서버 로드입니다. 이는 약 50까지 급증하며 대부분의 경우 로드로 인해 모든 그래프가 끊어집니다. 실제 CPU 로드와 RAM 사용량은 상당히 낮습니다.

어떤 아이디어라도 정말 감사드립니다!

편집 2: SSD에서 데이터 전송 중(rsync 사용) 통계입니다.sdd와 sde(ZFS RAID 1) HDD 테스트 (BTRFS RAID 1)sda와 sdb하지만 실제 부하가 켜져자위대와 자위대(및 zd0 - SWAP), 이는 시스템 SSD(ZFS RAID 1)입니다. (두 번째 측정은 부하를 나타냅니다)

iostat -x -d 2
Linux 4.13.13-2-pve (klaas)     01/03/2018      _x86_64_        (16 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.04    2.00     0.17   869.78   850.88     0.01    4.13    5.71    4.10   1.46   0.30
sda               0.00     0.00    0.00    0.00     0.00     0.00    40.94     0.00    2.98    2.98    0.00   1.96   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00    40.94     0.00    3.58    3.58    0.00   2.96   0.00
sdc               0.00     2.00    0.02    0.71     0.26   108.82   297.28     0.02   22.87    7.26   23.33   9.11   0.67
sdd               0.00     0.01   12.79   39.53   794.05   645.26    55.02     0.02    0.29    0.71    0.15   0.19   0.99
sde               0.00     0.00   12.80   39.00   794.16   645.26    55.58     0.02    0.30    0.72    0.17   0.20   1.04
sdf               0.00     0.00    0.88   10.16    10.27   139.85    27.22     0.13   11.66    4.42   12.28   5.96   6.57
sdg               0.00     0.00    0.89   10.39    10.32   139.85    26.63     0.14   12.53    4.38   13.24   6.41   7.23
zd0               0.00     0.00    0.04    0.24     0.16     0.94     8.00     0.02   87.75    5.03  101.71  35.04   0.97
zd16              0.00     0.00    0.33    0.46     2.82     8.71    28.95     0.00    1.17    0.28    1.80   0.11   0.01
zd32              0.00     0.00    0.03    5.96     0.77    88.80    29.88     0.00    0.19    0.31    0.18   0.02   0.01

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.50    0.00    1.00     0.00     6.00    12.00     0.01    6.00    0.00    6.00   6.00   0.60
sdd               0.00     0.00   17.50   16.50    24.00   162.00    10.94     0.01    0.35    0.69    0.00   0.35   1.20
sde               0.00     0.00   16.50   16.50    18.00   162.00    10.91     0.01    0.30    0.61    0.00   0.30   1.00
sdf               0.00     0.50    0.50    2.50     0.00    22.00    14.67     2.70  754.67  792.00  747.20 333.33 100.00
sdg               0.00     0.00    2.50    3.00     8.00    30.00    13.82     0.39   73.45  128.00   28.00  35.64  19.60
zd0               0.00     0.00    0.00    1.50     0.00     6.00     8.00     3.99  728.00    0.00  728.00 666.67 100.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00   20.50    6.00  1566.00   104.00   126.04     0.01    0.30    0.39    0.00   0.23   0.60
sde               0.00     0.00   20.00    6.00  1690.00   104.00   138.00     0.01    0.46    0.40    0.67   0.38   1.00
sdf               0.00     0.50   13.50   44.50    10.00   646.00    22.62     2.93   68.03   78.67   64.81  16.97  98.40
sdg               0.50     0.50   19.00   44.00    40.00   630.00    21.27     2.85   44.41   34.74   48.59  15.24  96.00
zd0               0.00     0.00    0.00   11.00     0.00    44.00     8.00     2.59  375.45    0.00  375.45  91.09 100.20
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    4.00     0.00    32.00    16.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00   61.00  117.00  7028.00  3236.00   115.33     0.04    0.25    0.49    0.12   0.19   3.40
sde               0.00     0.00   40.00   84.00  4680.00  3236.00   127.68     0.07    0.55    1.20    0.24   0.40   5.00
sdf               0.00     0.50    7.00    9.50    78.00   852.00   112.73     3.64  222.18  147.71  277.05  60.61 100.00
sdg               0.00     0.00    7.00   15.50    32.00  1556.00   141.16     2.89  121.60   59.71  149.55  44.44 100.00
zd0               0.00     0.00    0.00   21.00     0.00    84.00     8.00    19.72 2074.95    0.00 2074.95  47.62 100.00
zd16              0.00     0.00    0.00    1.00     0.00     4.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    1.00     0.00     4.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.50    0.00    1.50     0.00     8.00    10.67     0.02   13.33    0.00   13.33  13.33   2.00
sdd               0.00     0.00   10.50    4.00   832.00    50.00   121.66     0.01    0.41    0.57    0.00   0.28   0.40
sde               0.00     0.00    8.50    4.00   576.00    50.00   100.16     0.02    1.28    0.94    2.00   1.12   1.40
sdf               0.00     2.00    5.50   11.50    12.00  1534.00   181.88     2.76  160.59  110.18  184.70  58.82 100.00
sdg               0.00     1.50    6.00   13.00    48.00  1622.00   175.79     2.86  156.42  107.67  178.92  52.63 100.00
zd0               0.00     0.00    4.00   34.50    16.00   138.00     8.00    22.63  692.10  120.00  758.43  25.97 100.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00    5.50   17.00     4.00   378.00    33.96     0.00    0.09    0.36    0.00   0.09   0.20
sde               0.00     0.00    7.50    6.50    42.00    98.00    20.00     0.01    0.71    0.53    0.92   0.57   0.80
sdf               0.00     1.00    7.50   11.00    28.00  1384.00   152.65     3.16  152.65  105.60  184.73  54.05 100.00
sdg               0.00     0.50    4.00    8.00    16.00   976.00   165.33     3.36  208.00  192.50  215.75  83.33 100.00
zd0               0.00     0.00    7.00   17.50    28.00    70.00     8.00    25.68  592.65  231.71  737.03  40.82 100.00
zd16              0.00     0.00    0.00    3.50     0.00    14.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.50    0.00    1.00     0.00     6.00    12.00     0.01   10.00    0.00   10.00  10.00   1.00
sdd               0.00     0.00    3.00   66.50    14.00  1308.00    38.04     0.01    0.17    1.33    0.12   0.12   0.80
sde               0.00     0.00    2.50   57.00     0.00  1588.00    53.38     0.01    0.24    1.60    0.18   0.17   1.00
sdf               0.00     0.00    1.50    1.00     6.00   128.00   107.20     3.27 1056.80 1004.00 1136.00 400.00 100.00
sdg               0.00     0.00    0.00    0.50     0.00    64.00   256.00     3.62 2176.00    0.00 2176.00 2000.00 100.00
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00    25.00    0.00    0.00    0.00   0.00 100.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

이 외에도 시스템 SSD 활용도가 낮습니다. 그런데 왜 데이터 전송에 전혀 관여해서는 안 되는 드라이브를 사용하는지 이해가 되지 않습니다.

편집 3: BTRFS를 사용하여 DP1에서 다른 HHD로 데이터를 복사하는 두 번째 측정에서 전송이 시작되고, rpool(RAID 1 ZFS SSD) 사용률이 100%에 도달하지만 실제 대역폭으로 인한 것으로 보이지는 않습니다.

 zpool iostat 2
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G     16     80  1.22M  1.31M
rpool       6.69G  23.1G      0     21  17.0K   286K
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G    616    195  76.7M  4.85M
rpool       6.69G  23.1G      9     38   216K  3.87M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G  1.05K    131   133M  1.41M
rpool       6.69G  23.1G      0     29      0  3.03M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  4.00K      0
rpool       6.69G  23.1G      0     25      0  3.25M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      1      0  8.00K      0
rpool       6.69G  23.1G      0     25  2.00K  3.14M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  4.00K      0
rpool       6.69G  23.1G      3     26   114K  3.10M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  2.00K      0
rpool       6.69G  23.1G      0     20      0  2.56M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  2.00K      0
rpool       6.69G  23.1G      0     15  4.00K  1.94M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0      0      0
rpool       6.69G  23.1G      0     25      0  3.19M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G     21      0   130K      0
rpool       6.69G  23.1G      0     14      0  1.81M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  8.00K      0
rpool       6.69G  23.1G      0      1  2.00K   256K
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  2.00K      0
rpool       6.69G  23.1G      0     12      0  1.62M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0      0      0
rpool       6.69G  23.1G      1     18  8.00K  2.37M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0      0      0
rpool       6.69G  23.1G      8     15  84.0K  2.00M

이것은 물론 일부 IO 문제와 관련이 있습니다. 전송을 중지하더라도 호스트(Proxmox GUI)가 멈추고 5~15분 동안 응답하지 않고 cli의 df와 같은 명령이 도중에 전혀 응답하지 않기 때문입니다. 같은 기간 . 컴퓨터에서 실행 중인 모든 가상 머신은 속도 저하 없이 예상대로 작동합니다.

실제로 시스템 SSD에 기록되는 데이터의 양은 너무 작아서 사용된 공간(21%)과 스왑 사용량(3.6GB 중 360MB - 스왑 수준을 10으로 설정)은 거의 변하지 않습니다.

그리고 디스크 스케줄러를 여러번 변경해 보았는데 이제 막다른 골목에 이르렀습니다.

IO가 상단을 볼 때 z_wr_iss가 여러 번 더 오래 실행되는 것을 확인했습니다.

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1967 root       1 -19       0      0      0 S   0.3  0.0   5:15.03 z_wr_iss
1969 root       1 -19       0      0      0 S   0.3  0.0   5:14.76 z_wr_iss
1974 root       1 -19       0      0      0 S   0.3  0.0   5:14.56 z_wr_iss
1975 root       1 -19       0      0      0 S   0.3  0.0   5:14.71 z_wr_iss
1981 root       0 -20       0      0      0 S   0.3  0.0   4:02.77 z_wr_int_1
1984 root       0 -20       0      0      0 S   0.3  0.0   4:02.33 z_wr_int_4
1986 root       0 -20       0      0      0 S   0.3  0.0   4:02.29 z_wr_int_6

이제 iotop을 실행하자마자 이전 테스트보다 여전히 느리기 때문에 시스템이 정지되기 때문에 실행할 수 없습니다.

죄송합니다. 이전에 iotop을 실행할 때 본 것처럼 @Mark의 답변에 게시된 ZFS 문제로 인해 발생할 수 있습니다.

3268 be/0 root        0.00 B/s    0.00 B/s  0.00 % 99.99 % [z_null_int]

일부가 있어야합니다.

답변1

지난 8개월 동안 여러 사람들이 설명한 비슷한 문제를 겪고 있는 것 같습니다. Proxmox 5.1과 함께 제공되는 ZFS 버전에는 기본적으로 높은 IO가 어떤 경우에 심각한 문제를 일으키는 버그가 있는 것으로 보고되었습니다. (z_null_int 높은 디스크 I/O #6171 검색)

현재 두 가지 옵션은 Proxmox 4.1(ZFS 0.6)을 실행하거나 proxmox 5.1 호스트에서 대체 파일 시스템을 사용하는 것입니다.

답변2

내가 이해한 바로는 사용된 32Gb SATA Dom은 미러링된 VDEV 1개의 별도 풀입니다. RSync, 백업 또는 기타 작업 중 이 풀의 용량은 얼마나 됩니까? 시스템이 얼마나 많은 스왑 공간을 사용합니까? 아직 수행하지 않았다면 진행 상황에 대한 추가 정보를 제공할 수 있는 일부 ZFS 도구(zpool iostat) 사용을 고려해 보십시오. (https://docs.oracle.com/cd/E19253-01/819-5461/6n7ht6r01/index.html)

관련 정보