Marvell 88SE9128(9123?) SATA 카드의 이상한 동작 - OpenSUSE

Marvell 88SE9128(9123?) SATA 카드의 이상한 동작 - OpenSUSE

OpenSUSE 포럼(여기:https://forums.opensuse.org/showthread.php/511116-Sata-card-erratic-behaviour-amp-failure-Marvell-88SE9128-(9123-)-칩셋) 저는 더 넓은 영향을 미치기를 바라며 이 쿼리를 Unix Stackexchange에 올렸습니다.

그래서:

OpenSUSE 64비트에서 홈 서버로 실행되는 Dell T20이 있습니다. OS용 1x 500GB 드라이브와 스토리지용 4x 3TB 하드 드라이브(RAID6 포함)입니다. Dell에는 온보드 SATA 포트가 4개만 있으므로 확장해야 했습니다. 제 경우에는 Marvell 88SE9128 칩셋을 사용하는 StarTech(PEXSAT32) 2x SATA3 카드를 사용했습니다. (이상하게도 OpenSUSE는 이를 88SE9123으로 보고합니다.)

내가 직면하고 있는 문제는 카드가 비정상적으로 작동하여 어레이에서 드라이브를 제거한다는 것입니다...(과거에는 올바르게 추가했지만 좋은 한 해 동안 켜고 끄는 문제였습니다...) 어레이 외부의 기술 지원 조언 테스트 - 드라이브를 0으로 채우면 여러 번(1.5GB에서 10GB 이상) 오류가 발생했지만 드라이브는 폐기되었으며 이는 원래 3TB 드라이브와 2TB 드라이브 모두에 ​​해당됩니다. (두 드라이브 모두 괜찮습니다.) 제로 채우기는 약 54MB/s에서 시작한 다음 감소하기 시작하며 일반적으로 10-20MB/s에서 사라지지만 500KB/s만큼 낮은 경우도 있습니다. 또 다른 제안은 다른 컴퓨터를 사용해 보는 것입니다. 불행하게도 내 데스크탑은 Windows만 실행하지만 순차 쓰기에서 2TB 및 3TB 드라이브를 사용하는 8/16GB CrystalDiskMark 테스트를 사용하면 실패하지 않았으며 읽기 속도는 약 190MB/s, 쓰기 속도는 약 150MB/s였습니다. , 이러한 드라이브에서 예상한 대로(그리고 내부 Intel SATA 포트에서 재구축하는 동안 어레이가 얻는 속도)

불행하게도 기술 지원에서는 더 이상의 조언을 제공할 수 없었지만 Windows 테스트에서는 카드 자체에는 아무런 문제가 없는 것으로 나타났습니다. Dell의 PCI 슬롯을 교체해도 아무런 차이가 없었습니다. SATA 케이블 교체를 테스트해 봤지만 동일한 케이블이 내 데스크탑에서 잘 작동하므로 이것이 문제가 아닐까 의심됩니다.

내가 이해한 바로는 카드가 제대로 작동해야 합니다. 컨트롤러가 Linux를 지원하기 때문에 제대로 작동해야 하지만 안타깝게도 그렇지 않습니다. 어떤 생각이나 제안이 있으십니까? 이 문제를 어떻게 더 자세히 조사할 수 있나요? (여기가 포럼이 더 좋을 것 같아요 ...)

많은 사람들이 Marvell 칩이 나쁘다고 생각한다는 것을 알고 있지만 불행히도 저는 수백 파운드의 비용이 드는 RAID 카드를 구입할 여력이 없습니다(소프트웨어 RAID를 사용하고 있기 때문에 필요하지도 않습니다). 3123 SiI 칩이 탑재된 다른 SATA 카드가 Dell이나 데스크탑에서 인식되지 않습니다... (호환성 문제이거나 죽은 카드일 수도 있습니다...)

chanik의 제안에 따라 업데이트됨: (2015년 11월 25일)

권장 명령을 사용하여 echo 1 > /sys/block/sde/device/queue_depth대기열 깊이를 1로 설정하고 이를 사용하여 cat /sys/block/sde/device/queue_depth1로 설정되었는지 확인했습니다(해당 설정을 준수하는지 여부는 또 다른 질문입니다).

두 경우 모두 dd를 사용하여 드라이브를 0으로 만들거나 실제로 드라이브의 파티션이 실패하게 됩니다. 추가 의견을 낸 후 테스트를 다시 실행했습니다. dd를 사용하는 컨트롤러에 이상한 일이 발생한 경우를 대비하여 전체 드라이브에 걸쳐 있는 새로운 ext4 파티션을 사용하여 드라이브에 새 GPT 테이블을 만든 다음 큰 디렉터리를 드라이브에 복사했습니다. (두 경우 모두 실패했는데 이상하게 이번에는 NCQ가 있으면 48GB도 되고, NCQ가 없어도 180GB가 나오는군요...)

문제 해결을 위해 오류 후 /var/log/messages에 출력을 복사/수집했으며, NCQ를 1로 설정하고 오류 후 dmesg 출력도 로그 파일에 덤프했습니다.

(Pastebin의 텍스트)

-> dmesg 로그를 올바르게 읽으면 NCQ=1이 존중되지 않음을 나타낼 수 있습니다.

재부팅하고 수동으로 ncq를 1로 설정한 후 dmesg를 실행하면 존중되지 않는 것처럼 보입니다...

편집 2 - 2015년 11월 25일:

커널 매개변수를 통해 libata.force=noncq를 사용하기로 결정했지만 여전히 실패합니다... dmesg 출력http://pastebin.com/EQt5z5F3

2015년 11월 26일에 수정됨:

이전 커널과 Windows를 사용해 보라는 몇 가지 제안에 따라 새로 설치하고 업데이트된 OpenSUSE 13.2를 테스트했으며 Marvell 드라이버(32비트, Linux는 64비트)가 포함된 Windows 7을 새로 설치했습니다.

Linux에서 복사 또는 쓰기 실패 - 드라이브 자체이든 Windows의 NTFS 파티션이든 관계없이 Windows에서 드라이브 벤치마크가 정상적으로 이루어집니다.

OpenSUSE 13.2의 새로운 기능:http://pastebin.com/ucmiVqKL OpenSUSE 13.2 업데이트:http://pastebin.com/uA1e1rc2 OpenSUSE 13.2 업데이트, NCQ 없음:http://pastebin.com/QFLeUC8r

Leap 42.1 Kernel 4.1 아래의 Windows NTFS 파티션에 복사합니다.http://pastebin.com/4iZ​tkBjZ

Windows 7 CrystalDiskMark 벤치마크:http://pastebin.com/FJASyDpt

또한 이 칩이 Windows와 Linux 모두에서 왜 9123으로 표시되는지 이해할 수 없습니다. 칩에는 분명히 9128이 표시되어 있습니다.

9128이라는 라벨이 명확하게 표시된 Marvell 칩 사진

편집 2 - 2015년 11월 26일 USB 드라이브에서 커널 3.13(ncq 사용)으로 Ubuntu 실행 - 다시 실패함

2015년 11월 27일에 수정됨

커널 13.3과 함께 Ubuntu LiveUSB를 사용하여 다시 시도했습니다. 명령줄을 통해 ncq를 설정했지만 다시 실패했습니다.

2015년 12월 2일 업데이트됨

댓글이 거의 추가되지 않았습니다. Asmedia 칩이 탑재된 새 카드를 구입했는데 훌륭하게 작동합니다.

새 카드를 교체하기 전에, RAID가 아닌 작업을 위해 서버에 추가할 수 있는 기존 하드 드라이브에 대해 몇 가지 테스트를 더 수행했습니다. 이전 드라이브는 SATA2, 2.5" HDD, 명목상 120GB, 음, 변경 사항이 없습니다... - 또한 약간 검색하고 쓰기 캐시를 비활성화했습니다... 여전히 실패했습니다...

평소와 같이 실패 전, 관심 있는 사람이 있을 경우를 대비해 실행하는 동안, 그렇지 않으면 실패 후에 dmesg 출력을 수집했습니다. 언제나 그렇듯이 파일은 Pastebin에서 호스팅됩니다.

레거시 모드를 지원하기 위해 Dell T20에서 BIOS를 전환하면 아래와 같이 카드 메뉴로 들어갈 수도 있습니다. 적극적으로 제공하는 유일한 옵션은 그 안에 RAID 0/1 어레이를 생성하거나 그대로 두는 것입니다.

PEXSAT32 BIOS 옵션/화면

2017년 5월 편집: 이 문제는 실제로 해결되지 않았으며 커널 메일링 리스트에서는 실제 답변을 제공하지 않았습니다. 결과적으로 SATA 카드는 다른 모델로 교체되었고 모든 것이 잘 작동하는 것 같았습니다. 2016년으로 돌아가서 두 개의 드라이브가 고장났습니다. 분명히 두 드라이브 모두 실제로 작동하지 않았습니다. 내 홈 서버의 모든 드라이브가 전환되었으며 그 과정에서 SATA 케이블 중 하나 이상(이 경우 OS 드라이브 케이블)에 결함이 있음을 발견했습니다. 또한 카드의 SATA 케이블을 교체했는데 모든 것이 잘 작동하는 것 같습니다. 이것은 모든 문제가 Linux에서 케이블 결함과 더 나쁜 오류 수정으로 인한 것인지 궁금하게 만듭니다. 아마도? 이것이 문제가 해결되는지 테스트할 좋은 방법이 없기 때문에 잘 모르겠습니다.

그러나 가능한 경우: 비합리적인 동작이 발생하면 새 케이블을 구입해 보십시오. 그렇게 하면 문제가 해결될 수도 있습니다.

답변1

88SE9123 온보드 컨트롤러가 포함된 Asus P7P55D-E EVO 보드가 있는데 컨트롤러에 연결된 HDD가 비정상적인 동작을 보입니다.

간단한 수정 방법은 파일에 다음과 같은 내용을 추가하여 포트 88SE9123에서 NCQ를 비활성화하는 것입니다 /etc/default/grub.

GRUB_CMDLINE_LINUX="libata.force=7.00:noncq,8.00:noncq"

이를 추가하고 다음 명령을 실행하면 grub.confUbuntu Linux에서 커널 매개변수를 수정할 수 있습니다.

$ sudo update-grub
$ sudo grub-install /dev/sda

저는 OpenSuse에 대한 경험이 없으므로 배포판에서 부팅 시간에 대한 커널 매개변수를 변경하는 방법을 알아내야 합니다.

즉각적인 해결 방법으로 다음과 같이 특정 HDD에 대해 NCQ를 비활성화할 수 있습니다.

$ sudo -i
# echo 1 > /sys/block/sde/device/queue_depth
# echo 1 > /sys/block/sdf/device/queue_depth

명령은 즉시 적용되지만 재부팅 후에도 지속되지 않으므로 결국 시작 매개변수를 변경해야 합니다.

인용하다

나는 아직도 이 문제에 대한 실질적인 해결책을 찾고 있지만 아직 성공하지 못했습니다. 이 솔루션이 귀하에게 도움이 되기를 바랍니다.

관련 정보