debian 5.19.11 Linux: cat, 5.14 이하 버전이 제대로 작동하는 동안 NFSv3 입력/출력 오류

debian 5.19.11 Linux: cat, 5.14 이하 버전이 제대로 작동하는 동안 NFSv3 입력/출력 오류

이 상황의 원인은 무엇입니까?

커널 5.19로 업그레이드하고 NFS 서버의 디렉터리에서 작은 파일 읽기를 시도했습니다. 

당신이 한(또는 하지 않은) 정확히 어떤 일이 효과적(또는 비효과적)이었습니까?

섬기는 사람: 

WinNFSd.exe -log on "F/Kernel5.19/NFS"

고객:

mount -t nfs 192.168.0.21:/F/Kernel5.19/NFS /mnt/img -o noatime,nfsvers=3
cd /mnt/img/GPCImageV4.0
cat parts

이 행동의 결과는 무엇이었나요?

Input/output error.

터미널 인터페이스가 멈췄습니다.

어떤 결과를 기대하시나요?

파일을 정상적으로 읽을 수 있습니다(이 좋은 결과는 커널 5.14 이하에서 나타납니다).

문제 세부정보WinNFSd.exe 도구를 서버로 사용하고, Windows 10에서 디렉터리를 공유하고, Debian 11(커널 버전 5.19)을 클라이언트로 사용하여 NFSv3 프로토콜을 사용하여 설치하는 데 문제가 있습니다. 마운트 프로세스는 오류 없이 완료되며 또는 를 ls 사용하여 디렉토리 정보에 성공적으로 액세스할 수 있습니다  ls -l. 그러나 명령을 사용하여 디렉토리 내용에 액세스하려고 하면 이라는  cat 오류 메시지가 나타납니다  Input/output error.

touch를 사용하여 클라이언트 측에서 새 파일을 생성할 때 cat을 사용하여 새로 생성된 파일의 내용을 읽을 수도 있습니다. 그러나 서버 측에서 파일이 생성된 경우 클라이언트는 ls를 사용하여 새로 생성된 파일을 보고 파일 정보를 가져올 수 있지만 cat을 사용하여 해당 내용을 읽으려고 하면 "입력/출력 오류"가 발생합니다. 이것은 나를 혼란스럽게 하는 이상한 부분입니다. 액세스 제어 문제인 것 같습니다.

또한 잠시 후 마운트된 디렉터리에 액세스하려고 하면 터미널 인터페이스가 응답하지 않게 됩니다. 타이밍이 무작위인 것 같기 때문에 이 문제를 일으키는 원인이 무엇인지 정확히 모르겠습니다. 응답하지 않는 현상이 나타나는 데 몇 분이 걸리는 경우도 있지만 문제 없이 최대 30분 동안 작업할 수 있는 경우도 있습니다.

흥미롭게도 커널 버전을 5.14 이하로 다운그레이드하면 이 문제가 해결됩니다. 실제로 동일한 네트워크 환경, 마운트 디렉터리 및 마운트 매개변수를 사용하여 커널 버전 6.1, 5.18, 5.15, 5.14, 5.10 및 4.19를 테스트했습니다. 이들 버전 중 처음 3개 버전에서만 이 문제가 발생한 반면, 마지막 3개 하위 버전에서는 아무런 문제 없이 NFS 공유 디렉터리의 파일 내용을 읽을 수 있었습니다.

새로운 시험 정보 업데이트 Wireshark 출력

실제 길이가 15인 파일의 내용을 읽고 Wireshark를 사용하여 패킷을 캡처하려고 합니다. Linux 커널의 하위 버전(버전 4.19)에서 NFS 클라이언트가 15(실제 길이)의 길이를 요청한 것을 발견했습니다.

No.  Source        Destination    Protocol  Length  Info

212  192.168.0.100  192.168.0.21   NFS       206     V3 READ Call(Reply In 213), FH:0x6ee4af5f Offset: 0 Len:15
213  192.168.0.21   192.168.0.100  NFS       202     V3 READ Reply(Call In 212) Len:15

그러나 이후 버전의 Linux 커널(버전 5.19)에서는 요청 길이가 4096입니다.

No.  Source        Destination    Protocol  Length  Info

443  192.168.0.100  192.168.0.21  NFS       206     V3 READ Call(Reply In 446), FH:0x6ee4af5f Offset: 0 Len:4096
444  192.168.0.21   192.168.0.100 TCP       1514    2049->714 [ACK] Seq=44717 Ack=4613 Win=8210 Len=1460 [TCP segment of a reassembled PDU]
445  192.168.0.21   192.168.0.100 TCP       1514    2049->714 [ACK] Seq=46177 Ack=4613 Win=8210 Len=1460 [TCP segment of a reassembled PDU]
446  192.168.0.21   192.168.0.100 NFS       1362    V3 READ Reply(Call In 443) Len:15

이 동작이 "입력/출력 오류"와 관련이 있는지 확실하지 않습니다.

누구든지 이것에 대해 어떤 생각을 가지고 있습니까?

문제의 테스트 환경에 대한 구체적인 세부정보는 다음과 같습니다.

섬기는 사람:

  • 운영 체제: 윈도우 10
  • NFS 서버 도구: WinNFSd.exe 2.4.0

고객:

  • 운영 체제: 데비안 11.0
  • 커널 버전:  Linux gpc 5.19.0-0.deb11.2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 5.19.11-1~bpo11+1 (2022-10-03) x86_64 GNU/Linux

규약:

  • NFS 버전: NFSv3
  • nfs-common/oldstable, 이제 1:1.3.4-6 amd64 [설치됨]
  • rpcbind/oldstable, 현재 1.2.5-9 amd64 [설치됨, 자동]

CMD 마운트

root@gpc:mount -t nfs 192.168.0.21:/F/Kernel5.19/NFS /mnt/img -o noatime,nfsvers=3

관찰 결과:

root@gpc:/mnt/img# ls -l 
total 4 
drwxrwxrwx 1 root root 4096 Jul 28 2023 GPCImageV4.0

root@gpc:/mnt/img/GPCImageV4.0# ls -l 
total 2400393 
-rwxrwxrwx 1 root root 1529 Jul 26 18:54 blkdev.list 
-rwxrwxrwx 1 root root 1424 Jul 26 18:54 blkid.list 
-rwxrwxrwx 1 root root 13562 Jul 26 18:54 clonezilla-img 
-rwxrwxrwx 1 root root 300 Jul 26 18:54 dev-fs.list 
-rwxrwxrwx 1 root root 4 Jul 26 18:54 disk 
-rwxrwxrwx 1 root root 1207 Jul 26 18:54 efi-nvram.dat 
-rwxrwxrwx 1 root root 201 Nov 2 2022 GantryConfiguration.xml 
-rwxrwxrwx 1 root root 22373 Jul 26 18:54 Info-dmi.txt 
-rwxrwxrwx 1 root root 236 Jul 26 18:54 Info-img-id.txt 
-rwxrwxrwx 1 root root 61 Jul 26 18:54 Info-img-size.txt
-rwxrwxrwx 1 root root 27602 Jul 26 18:54 Info-lshw.txt
-rwxrwxrwx 1 root root 1592 Jul 26 18:54 Info-lspci.txt 
-rwxrwxrwx 1 root root 1539 Jul 26 18:54 Info-OS-prober.txt 
-rwxrwxrwx 1 root root 200 Jul 26 18:54 Info-packages.txt 
-rwxrwxrwx 1 root root 96 Jul 26 18:54 Info-saved-by-cmd.txt 
-rwxrwxrwx 1 root root 4724 Jul 26 18:54 Info-smart.txt 
-rwxrwxrwx 1 root root 35 Jul 26 18:54 parts 
-rwxrwxrwx 1 root root 2158265 Jul 26 18:54 sda1.vfat-ptcl-img.gz 
-rwxrwxrwx 1 root root 2210653199 Jul 26 18:54 sda2.ext4-ptcl-img.gz 
-rwxrwxrwx 1 root root 225310835 Jul 26 18:53 sda3.ext4-ptcl-img.gz 
-rwxrwxrwx 1 root root 4227536 Jul 26 18:52 sda4.ext4-ptcl-img.gz 
-rwxrwxrwx 1 root root 7246389 Jul 26 18:52 sda5.ext4-ptcl-img.gz
-rwxrwxrwx 1 root root 2314988 Jul 26 18:52 sda6.ext4-ptcl-img.gz 
-rwxrwxrwx 1 root root 5948542 Jul 26 18:52 sda7.ext4-ptcl-img.gz 
-rwxrwxrwx 1 root root 37 Jul 26 18:54 sda-chs.sf 
-rwxrwxrwx 1 root root 17408 Jul 26 18:54 sda-gpt-1st 
-rwxrwxrwx 1 root root 16384 Jul 26 18:54 sda-gpt-2nd 
-rwxrwxrwx 1 root root 17920 Jul 26 18:54 sda-gpt.gdisk 
-rwxrwxrwx 1 root root 967 Jul 26 18:54 sda-gpt.sgdisk 
-rwxrwxrwx 1 root root 512 Jul 26 18:54 sda-mbr 
-rwxrwxrwx 1 root root 644 Jul 26 18:54 sda-pt.parted 
-rwxrwxrwx 1 root root 540 Jul 26 18:54 sda-pt.parted.compact 
-rwxrwxrwx 1 root root 1229 Jul 26 18:54 sda-pt.sf 
-rwxrwxrwx 1 root root 53 Jul 26 18:52 swappt-sda8.info

root@gpc:/mnt/img/GPCImageV4.0# cat parts 
cat: parts: Input/output error 

root@gpc:/mnt/img/GPCImageV4.0# cat disk 
cat: disk: Input/output error

일반적인 테스트 환경의 구체적인 세부 사항은 다음과 같습니다.

섬기는 사람:

  • 운영 체제: 윈도우 10
  • NFS 서버 도구: WinNFSd.exe 2.4.0

고객:

  • 운영 체제: 데비안 9.1
  • 커널 버전:  Linux gpc 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux

규약:

  • NFS 버전: NFSv3
  • nfs-common/now 1:1.3.4-2.1ubuntu5.5 amd64 [설치됨, 로컬]
  • rpcbind/now 0.2.3-0.6ubuntu0.18.04.4 amd64 [설치됨, 로컬]

CMD 마운트

root@gpc:mount -t nfs 192.168.0.21:/F/Kernel5.19/NFS /mnt/img -o noatime,nfsvers=3

관찰 결과:

root@gpc:/mnt/img# ls -l 
total 4 
drwxrwxrwx 1 root root 4096 Jul 28  2023 GPCImageV4.0

root@gpc:/mnt/img/GPCImageV4.0# ls -l 
total 2400393
-rwxrwxrwx 1 root root 1529 Jul 26  2023 blkdev.list
-rwxrwxrwx 1 root root 1424 Jul 26  2023 blkid.list
-rwxrwxrwx 1 root root 13562 Jul 26  2023 clonezilla-img
-rwxrwxrwx 1 root root 300 Jul 26  2023 dev-fs.list
-rwxrwxrwx 1 root root 4 Jul 26  2023 disk
-rwxrwxrwx 1 root root 1207 Jul 26  2023 efi-nvram.dat
-rwxrwxrwx 1 root root 201 Nov  2  2022 GantryConfiguration.xml
-rwxrwxrwx 1 root root 22373 Jul 26  2023 Info-dmi.txt
-rwxrwxrwx 1 root root 236 Jul 26  2023 Info-img-id.txt
-rwxrwxrwx 1 root root 61 Jul 26  2023 Info-img-size.txt
-rwxrwxrwx 1 root root 27602 Jul 26  2023 Info-lshw.txt
-rwxrwxrwx 1 root root 1592 Jul 26  2023 Info-lspci.txt
-rwxrwxrwx 1 root root 1539 Jul 26  2023 Info-OS-prober.txt
-rwxrwxrwx 1 root root 200 Jul 26  2023 Info-packages.txt
-rwxrwxrwx 1 root root 96 Jul 26  2023 Info-saved-by-cmd.txt
-rwxrwxrwx 1 root root 4724 Jul 26  2023 Info-smart.txt
-rwxrwxrwx 1 root root 35 Jul 26  2023 parts
-rwxrwxrwx 1 root root 2158265 Jul 26  2023 sda1.vfat-ptcl-img.gz
-rwxrwxrwx 1 root root 2210653199 Jul 26  2023 sda2.ext4-ptcl-img.gz
-rwxrwxrwx 1 root root 225310835 Jul 26  2023 sda3.ext4-ptcl-img.gz
-rwxrwxrwx 1 root root 4227536 Jul 26  2023 sda4.ext4-ptcl-img.gz
-rwxrwxrwx 1 root root 7246389 Jul 26  2023 sda5.ext4-ptcl-img.gz
-rwxrwxrwx 1 root root 2314988 Jul 26  2023 sda6.ext4-ptcl-img.gz
-rwxrwxrwx 1 root root 5948542 Jul 26  2023 sda7.ext4-ptcl-img.gz
-rwxrwxrwx 1 root root 37 Jul 26  2023 sda-chs.sf
-rwxrwxrwx 1 root root 17408 Jul 26  2023 sda-gpt-1st
-rwxrwxrwx 1 root root 16384 Jul 26  2023 sda-gpt-2nd
-rwxrwxrwx 1 root root 17920 Jul 26  2023 sda-gpt.gdisk
-rwxrwxrwx 1 root root 967 Jul 26  2023 sda-gpt.sgdisk
-rwxrwxrwx 1 root root 512 Jul 26  2023 sda-mbr
-rwxrwxrwx 1 root root 644 Jul 26  2023 sda-pt.parted
-rwxrwxrwx 1 root root 540 Jul 26  2023 sda-pt.parted.compact
-rwxrwxrwx 1 root root 1229 Jul 26  2023 sda-pt.sf
-rwxrwxrwx 1 root root 53 Jul 26  2023 swappt-sda8.info

root@gpc:/mnt/img/GPCImageV4.0# cat parts
sda1 sda2 sda3 sda4 sda5 sda6 sda7

root@gpc:/mnt/img/GPCImageV4.0# cat disk
sda

관련 정보