LINUX.ORG.RU

Наиболее адекватный способ подключить 4 HDD к ноутбуку

 , , , ,


1

2

Привет.

Уже достаточно долгое время я использую в качестве домашнего сервера/HTPC/файлопомойки свой предыдущий ноутбук (он за это время успел дважды смениться), к которому подключена коробка Mediasonic HF2-SU3S2 с 4 жёсткими дисками. Вся эта конструкция нещадно упирается в I/O, и поскольку давние планы собрать полноценный сервер в очередной раз пришлось отложить, я задумался, как можно сравнительно малыми силами ситуацию улучшить.

У этой коробки есть два режима подключения: eSATA (не очень понятно, какой) со встроенным port multiplier-ом и USB 3.0 (без UASP). Сначала я попробовал воткнуть eSATA в ExpressCard’ный PCIe SATA-контроллер (на Marvell по-моему 88SE9130) из соображений «ну прямое SATA до PCIe наверняка будет лучше, чем левый USB-SATA мост», но оказалось, что при одновременном доступе к дискам конструкция люто тормозит, а «левый USB-SATA мост» работает ощутимо быстрее (но всё равно хреново). На практике последовательное чтение с RAID-5 массива на этих дисках не достигает даже 50 MB/s в обоих случаях, а случайное (btrfs scrub) — даже 10 MB/s.

Как можно сделать лучше? Купить другую коробку (какую)? Стоит ли запариваться с ExpressCard, или его PCIe x1 линк абсолютно бесполезен?

★★★★★

Может всё таки продть говнобук, купить нормальную железку, а не костылить по принципам софтваре девелопмента?

anonymous
()
Ответ на: комментарий от anonymous

Может.

Но костылить интереснее.

intelfx ★★★★★
() автор топика

Это вполне ожидаемые, нормальные цифры. Выжать больше через один SATA канал невозможно.

Каждый диск вешать на отдельный контроллер, но это трудно. В ноуте должно быть, как минимум, 2 SATA канала (в старых ThinkPad было по три канала), еще два канала — контроллер через ExpressCard.

anonymous
()
Ответ на: комментарий от anonymous

Это вполне ожидаемые, нормальные цифры. Выжать больше через один SATA канал невозможно.

А USB3? Стоит ли менять коробку на что-то другое с UASP?

Каждый диск вешать на отдельный контроллер, но это трудно.

На отдельный контроллер? Или всё-таки на отдельные каналы одного контроллера тоже пойдёт?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)

Ноут все же не для того создан, у него экономия энергии на первом месте и везде экономия по весу, так что никаких тебе быстрых контроллеров и независимых каналов бай дезайн.

anonymous
()
Ответ на: комментарий от anonymous

А ещё вода мокрая. Я в курсе. Вопрос о том, как оптимизировать сетап в рамках того, что есть.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Иногда использую внешний бокс на один диск с USB 3 и вроде UASP — скорости по ощущениям не отличаются от SATA.

anonymous
()
Ответ на: комментарий от intelfx

Ну как. Вот, например, два диска запихать внутрь, они будут сидеть на самых быстрых сата-каналах, которые у него вообще есть. Еще два посадить на usb3. Быстрее ничего не сделаешь, даже всякие внешние mSATA и прочая ересь будут медленнее.

anonymous
()
Ответ на: комментарий от intelfx

Проблемы оттого, что вы повесили 4 винта на один канал. Это нехорошая идея.

А USB3?

Зависит от реализации «левого USB-SATA моста». Может быть чуть лучше, может быть чуть хуже. Но именно «чуть».

Стоит ли менять коробку на что-то другое с UASP?

Это нетехнический вопрос.

На отдельный контроллер? Или всё-таки на отдельные каналы одного контроллера тоже пойдёт?

Каналы, разумеется. 2 чипсетных+2 канала 88SE9130. Если надо добавлять еще диски, то лучше вешать каждый следующий на отдельный копеечный usb3-sata мост. Это лушшее возможное решение, если ограничиваться имеющимся оборудованием.

Коробку выкинуть, она мешает. Вы же не ожидали, в самом деле, что в поделке за сто баксов будет полноценный RAID контроллер?

anonymous
()
Ответ на: комментарий от anonymous

Это нетехнический вопрос.

Ну почему же? Ответ на этот вопрос следует из строчки выше (если верить словам про «… но именно „чуть“»).

2 чипсетных

А грузиться я с чего буду? :)

2 чипсетных канала уже заняты двумя SSD, на одном из которых система + кэши, на другом БД. Даже если предположить, что второго SSD не существует, как я туда подключу внешний 3.5" HDD?

2 канала 88SE9130

В том модуле, который у меня есть, только один eSATA. Модулей с двумя мне вообще не известно.

лучше вешать каждый следующий на отдельный копеечный usb3-sata мост

А на это мне не хватит USB3-портов, их всего два :)

Вы же не ожидали, в самом деле, что в поделке за сто баксов будет полноценный RAID контроллер?

RAID-контроллера там вообще нет, да и мне он даром не сдался — рейд у меня разумеется софтовый.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Зависит от реализации «левого USB-SATA моста». Может быть чуть лучше, может быть чуть хуже. Но именно «чуть».

Правильно ли я понимаю, что любой многопортовый USB3-SATA — это фигня по определению (плюс-минус немного), и 5 Gbps USB3-порта он не утилизирует? А если несколько независимых USB3-SATA через USB3-хаб?

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Ну почему же? Ответ на этот вопрос следует из строчки выше (если верить словам про «… но именно „чуть“»).

«Стоит ли» — это экономический вопрос. UASP дела почти не меняет.

Модулей с двумя мне вообще не известно.

Чипы контроллеров почти все двухканальные. Видимо, на вашей карточке разведен только один канал. Карточек с двумя разведенными каналами сколько угодно. Я не мог знать, какая у вас есть.

Вот и считайте: сколько у вас есть электрически разведенных портов SATA и USB3 — столько дисков и можно повесить. 1 чипсетный+1 внешний eSATA+2 USB3 = 4 штуки.

RAID-контроллера там вообще нет, да и мне он даром не сдался — рейд у меня разумеется софтовый.

Это таки троллинг? RAID либо в коробке, либо на CPU. Если в коробке, то это NAS c жирным ценником, если на CPU, то на каждом канале должно висеть ровно одно устройство. Промежуточного варианта нет. То, что одним шнурком можно присоединить 4 диска не означает, что 4 очереди волшебным образом превратятся в одну. UASP — вообще не о том.

anonymous
()
Ответ на: комментарий от intelfx

Правильно ли я понимаю, что любой многопортовый USB3-SATA — это фигня по определению

Для файлопомойки за $100 и на 10-20MBps — самое то, для btrfs raid — безусловно да, фигня по определению.

А если несколько независимых USB3-SATA через USB3-хаб?

Не знаю. Не разбираюсь как следует в устройстве протокола USB3.

anonymous
()
Ответ на: комментарий от anonymous

Карточек с двумя разведенными каналами сколько угодно.

Можно ссылку хотя бы на одну?

Это таки троллинг?

Тот же встречный вопрос.

RAID либо в коробке, либо на CPU.

Уже третий раз пишу, рейд софтовый.

если на CPU, то на каждом канале должно висеть ровно одно устройство.

То, что одним шнурком можно присоединить 4 диска не означает, что 4 очереди волшебным образом превратятся в одну.

Можно с этого места подробнее? Из здравого смысла кажется, что если 1) пропускная способность порта сравнима с суммарной пропускной способностью всех дисков, 2) хаб или многопортовый контроллер умеет диспатчить запросы и ответы в разном порядке, при этом имея достаточную длину очереди и 3) софт умеет отправлять сразу несколько запросов для всего страйпа и потом скопом ждать ответов — то несколько независимых очередей как бы и не нужны… Где ошибка в рассуждениях?

UASP — вообще не о том.

А о чём?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Ясно, троллинг.

Ответы на все вопросы уже даны.

ЗЫ Ошибка в рассуждениях в том, что многопортовый контроллер не знает, в каком порядке диспатчить запросы. Это умеют знать только рейд контроллеры с жирным кэшем.

anonymous
()
Ответ на: комментарий от intelfx

А грузиться я с чего буду? :)

С флэшки? Если у тебя там только +/- NAS, то почему бы и нет.

//мимокрокодил

anonymous
()
Ответ на: комментарий от anonymous

Выжать больше через один SATA канал невозможно.

Чаво? У меня полудохлый 2.5" хдд в юсб-кейсе за 700р выдает от 80. А засунутый туда же ссд давал 430+ в обе стороны.

Я конечно не ахти какой спец, и может тут какая-то старая версия сата/юсб имеется ввиду, тогда пардоньте.

anonymous
()
Ответ на: комментарий от anonymous

Это потому, что у вас один накопитель подключен.

anonymous
()

Извращение какое-то. Всё уже правильно сказали, продай ноут, купить мать десктопную.

Бредятина это всё. Но если тебя интересует чисто теоретическое решение, снимай хаб, выводи с пятаков под ним недостающие сата-каналы, разведи платы под разъемы и их обвязку, дополнительно подкинь с внешнего источника питания 12в для 3.5 дисков. Ну и хаб на место.

K39
()
Ответ на: комментарий от iliyap

Не пробовал. Этот встроен в коробку.

Или у тебя не port multiplier тормозит, а expresscard sata?

Я плохо понимаю, где боттлнек. ExpressCard (сам интерфейс) вообще говоря тоже не шибко быстрый.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от anonymous

А можно без снобизма? Я верю в твой многокилометровый хер опыт, которым ты так нещадно размахиваешь, но мне например хотелось бы понимать, почему конкретно

многопортовый контроллер не знает, в каком порядке диспатчить запросы

Речь-то по сути не о том, чтобы он что-то там переупорядочивал, а чтобы он не дожидался ответа от диска #1 перед тем, как отправить следующий запрос из очереди диску #2. Ведь, казалось бы, UASЗ для того и придумали, чтобы контроллер мог асинхронно обрабатывать запросы.

Современные многопортовые USB-SATA контроллеры так не умеют? Тогда, может, оверхед от USB-хаба будет меньше?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от K39

Но если тебя интересует чисто теоретическое решение

снимай хаб

Не, не настолько.

Меня всё же интересует не самый теоретически быстрый способ, а самый адекватный.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Ну, если надумаешь, обращайся, сделаю баксов за 300 за всё.

А если по сути, то систему на флешку, 2 сата на матери свободны, ещё 2 харда по usb (разным). Плюс 12в питание к ним.

K39
()
Ответ на: комментарий от K39

систему на флешку

А флешку куда? Всего 2 USB3 в системе.

А если учесть, что это не просто NAS и нужен как минимум один SSD под БД и кэши, и ещё один USB3 под внешние диски (которые туда регулярно втыкаются для бэкапов и ещё хер знает чего) — то не сработает такая идея.

Ну, если надумаешь, обращайся, сделаю баксов за 300 за всё.

Мне просто любопытно, а как ты выведешь каналы SATA из-под хаба?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Мне просто любопытно, а как ты выведешь каналы SATA из-под хаба?

На проводках толщиной с комариный писюн. Дальше залить паяльной маской и садить хаб обратно. Это вообще довольно обычная операция. Хотя, весьма вероятно, придётся также задуматься об экранировании линий данных. Распиновка хаба есть, ИК-станция есть, можно и поэкспериментировать (если заказчик платит).

то не сработает такая идея

Да она и не сработает, я сразу сказал. Купи настольную мать.

K39
()
Ответ на: комментарий от intelfx

Собрался с силами и сравнил.

  • Чипсет Intel 8 Series
  • PCIe 2.0 x1 контроллер Marvell 9128 на два порта SATA 6Gbps
  • SATA 3 Gbps port multiplier JMicron JMB321
  • WDC Green WD20EARS-00J99B0 2TB
  • Seagate Barracuda LP ST32000542AS 2TB

Результаты тестирования с помощью fio (по джобу на диск):

  • rw=read bs=256K direct=1 ioengine=libaio iodepth=16
  • rw=randread bs=8K direct=1 ioengine=libaio iodepth=16
Конфигseq-read 256KBrand-read 8KB
Intel 8 Series309+184 IOPS, 77+46=124 MiB/s93+90 IOPS, 748+722=1470 KiB/s
Marvell 9128491+448 IOPS, 123+112=235 MiB/s108+121 IOPS, 867+972=1838 KiB/s
Marvell 9128 + JMicron JMB321438+436 IOPS, 110+109=219 MiB/s98+98 IOPS, 785+788=1572 KiB/s
Marvell 9128 + JMicron JMB321 (3 disks)267+267+267 IOPS, 66.8+66.8+66.8=200 MiB/s60+60+60 IOPS, 481+481+481=1443 KiB/s

В последнем конфиге добавлен диск WDC Blue WD10EZEX-75M2NA0 1TB. Даже последний конфиг производительнее интеловского. Но видно, что при добавлении диска показатели снижаются.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

Собрался с силами и сравнил.

Спасибо :)

Intel 8 Series 309+184 IOPS, 77+46=124 MiB/s

Офигеть. Это десктопный интеловский чипсет? Он действительно такое дно?

Я думал, когда руки дойдут до сборки полноценного NAS+HTPC, взять интеловскую материнку с кучей набортного SATA (серверную) и подключить все диски к нему. Так делать не стоит? Или с серверными чипсетами всё будет по-другому?

А теперь про железо. ExpressCard’ных контроллеров у меня два разных, и ни один из них на самом деле ни фига не Marvell. Один ASMedia ASM1062, второй JMicron JMB360. А port multiplier в коробке как раз JMB321, причём используется он в обоих режимах (USB-SATA там однопортовый JMS539).

К слову, ExpressCard — это PCIe 1.0 x1 (2.5 GT/s / 250 MB/s), так что не очень понятно, чем я думал, когда вообще решил заюзать его.

Воспроизвёл твой тест (с дополнениями) на всём этом великолепии:

  • Чипсет Intel QM87 с набортным USB3 и ExpressCard (PCIe 1.0 x1)
  • ExpressCard PCIe-SATA на ASMedia ASM1062
  • ExpressCard PCIe-SATA на JMicron JMB360
  • Mediasonic HF2-SU3S2 на JMicron JMS539 (USB3-SATA2 без UASP) и JMicron JMB321
  • 4 диска:
    • 1x HGST Ultrastar 7K4000 HUS724020ALA640 2TB
    • 3x Hitachi Deskstar 7K3000 HDS723020BLA642 2TB

64K — потому что у меня там btrfs RAID5 с шириной страйпа 64K.

Конфигread 256Krandread 8Kread 64Krandread 64K
Intel QM87 USB3 / JMS539 / JMB321590 IOPS, 148 MiB/s64 IOPS, 530 KiB/s2234 IOPS, 140 MiB/s62 IOPS, 3967 KiB/s
ASM1062 / JMB321497 IOPS, 124 MiB/s93 IOPS, 750 KiB/s1495 IOPS, 93 MiB/s89 IOPS, 5731 KiB/s
JMB360 / JMB321479 IOPS, 120 MiB/s98 IOPS, 791 KiB/s1424 IOPS, 89 MiB/s102 IOPS, 6607 KiB/s

Что скажешь?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Тяжёлых iops-ов (full stroke seek, который при randread-е) больше по sata, чем по usb3. Тем не менее iops-ов мало и по sata, скорее всего из-за того, что контроллеры не поддерживают fis-based switching, а поддерживают только command-based switching(для ASM1062 и JMB360 это действительно так). Марвеловские поддерживают FBS. Я бы попробовал expresscard на марвеле, вот например цена вопроса 200 руб: http://www.5x86.ru/i_shop/laptop/accessories_notebook/other_accessories/Z569845

Но чуда судя по всему не будет. Будет 150 iops вместо 100 iops.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

Блин, очень много новых слов %)

Так а где боттлнек-то? В PCIe-линке, в контроллере или в port multiplier?

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Я думаю дело в command-based switching.

https://en.m.wikipedia.org/wiki/Port_multiplier

Он не даёт посылать запросы к дискам параллельно. Из за этого пропускная способность линка мультипликатор-контроллер не утилизируется полностью. В моем тесте утилизация 219/300, у тебя 124/300.

AHCI over PCIe x1 здесь узким местом быть не может. Во-первых, 250 MB/s, во-вторых, латентность ниже sata, в третьих в AHCI нет препятствий параллельной посылке запросов на линке хост-контроллер.

Кстати lspci -vv показывает speed и width pcie линков. Expresscard 2.0 вполне может быть 5 GT/s.

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от iliyap

Я думаю дело в command-based switching.

https://en.m.wikipedia.org/wiki/Port_multiplier

Он не даёт посылать запросы к дискам параллельно.

Падажжи. Так это зависит от port multiplier’а или от хост-контроллера? Port multiplier я менять не могу, он встроен в коробку.

Кстати lspci -vv показывает speed и width pcie линков. Expresscard 2.0 вполне может быть 5 GT/s.

2.5 GT/s x1, я проверил.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Чтобы fbs работал, его должны поддерживать и контроллер, и мультипликатор. Мультипликатор JMB321 поддерживает fbs, контроллеры ASM1062 и JMB360 не поддерживают.

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от iliyap

Понял. Попробую купить этот контроллер.

Спасибо!

intelfx ★★★★★
() автор топика
Ответ на: комментарий от iliyap

А что ты можешь сказать про USB? Технически, у USB3 пропускная способность выше в два раза, т. е. в неё могут влезть сразу все четыре диска на полной скорости. На практике это хоть как-нибудь достижимо?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)

Интересные тесты.

Хотя, другой анон сразу правильно написал, что +-немного в зависимости от реализации.

anonymous
()
Ответ на: комментарий от intelfx

Чтобы с usb достичь высокой утилизации надо чтобы команды к разным дискам параллелились, команды к одному диску вставали в очередь. Для этого надо чтобы usb-sata мост поддерживал и fbs на sata линке, и uas на usb линке. JMS539 не поддерживает ни того, ни другого.

iliyap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.