Первая часть хороших новостей для Вас - то, что существует теперь больше информации в etherspace, чем имел Вас, спросил тот же вопрос ранее, чем год назад. Я знаю это на основе горького опыта.
Официальный курс NetApp - то, что MySQL поддерживается через все три протокола.
ONTAP MySQL Enterprise NFS iSCSI FCP
7G 5.X Supported Supported Supported
7G 4.X Supported Supported Supported
MySQL Enterprise versions 4.X and 5.X are supported on all NetApp fabric
attached storage models running any release of Data ONTAP 7G for any server
platform supported by MySQL that is listed in the NetApp host compatibility
matrix for each protocol.
Часть секунд хороших новостей - то, что Вы не сказали MyISAM. Иначе это было бы много другой и более темной истории, состоя из паршивой производительности и никакой информации о поддержке. Нет большого выбора там, но использовать основанный на блоке iSCSI или FCP. Не то, чтобы они не работают очень хорошо, но они - немного отличающийся чайник рыбы к основанному на файле.
Вместо этого NetApp опубликовали некоторые сравнительные тесты OLTP MySQL 5.0 через все три протокола хранения. Результаты указывают что механизмы InnoDB, выполненные хорошо и в соответствии с различиями в протоколе, замеченными в Oracle. FCP вышел впереди с точки зрения пропускной способности. Пока iSCSI составлял 9% и NFS 16% позади FCP. Который не является такой большой значительной разницей, как мы ожидали.
Еще более услужливо то, что тот же документ детализирует NFS и InnoDB определенные шаги, которые они сделали для достижения того числа сравнительного теста. Они включают изменение innodb_buffer_pool_size
, innodb_flush_method
, Тайм-аут кэширования атрибута NFS, no_atime_update
на исходном объеме и (поскольку Richard говорит выше), определение различных точек монтирования для журналов.
Лично я не рекомендовал бы хранить журналы на другое устройство хранения данных в целом, такие как локальный диск. Журналы тесно связаны с любыми данными, которые уже снизились до диска. При разделении их полностью затем, Вы могли бы собираться для падения. Еще больше, если Вы хотите выполнить снимки, изменить машину, рабочий MySQL или Ваши локальные диски оказываются менее надежными, чем файловый сервер.
Со всем, что сказало, следующая лучшая вещь, что можно сделать, высосите ее и посмотрите. Установите среду на основе лучших практик в документе и выполните некоторые сравнительные тесты с Вашими собственными данными. Оцените, как это работает по сравнению с Вашими локальными дисками сегодня.
--
NB: первая ссылка ТЕПЕРЬ ограничивается. Вы не говорите, являетесь ли Вы уже клиентом NetApp. Необходимо смочь просмотреть вторую ссылку независимо все же.
NFS4 был бы лучшим, если можно использовать его. Я, по крайней мере, смонтировался бы с noatime. Необходимо также рассмотреть местоположения файла журнала определения на локальных дисках. Если у Вас нет локального устройства хранения данных (как распространено с VM), Вы могли бы попытаться сохранить вход в систему точка монтирования, которая направляет через другой сетевой интерфейс, чем Ваша основная память.
Лично, я использовал бы iSCSI вместо этого NFS при монтировании диска от NetApp для MySQL. Невероятно эффективный и Вы получаете прямой доступ к файловой системе к LUN.
Производительность фиксации MySQL InnoDB зависит в основном от того, как быстро базовый IO может синхронизировать данные к диску; на это чрезвычайно влияет сетевая задержка, таким образом, рабочий MySQL по NFS будет иметь крупный хит, каков сервер. Даже если Ваша сеть будет максимально быстро, то это, все еще, вероятно, будет намного медленнее, чем локальный диск (я предполагаю, что Ваш локальный диск был бы RAID-контроллером с аварийным батарейным питанием здесь).
С другой стороны, производительность чтения главным образом на основе того, сколько из базы данных помещается в поршень. Если можно приспособить целую базу данных в RAM (или большая часть из него, в зависимости от шаблонов использования), то производительность будет очень хороша, поскольку Вы просто установите свой innodb_buffer_pool, чтобы быть больше, чем данные, и в теории никакие чтения никогда не должны будут делаться на NFS.
Пока Вы не используете berkleydb, MySQL/InnoDB хорошо работает к NFS. Я не уверен, что это говорит в документации NFS NetApp, но если Вы смонтируете объем NFS с 'асинхронной' опцией, то затем приложение не будет заблокировано, ожидая записей для удара диска.