Если Fibre Channel заставляет Вас съежиться от расхода, можно получить большую часть той же производительности на части стоимости (компонента) при помощи SAS. На 7.2K диски I об/мин смогли вытащить 275 МБ/с из моего для в основном последовательных загрузок, и полагая, что Gigabit Ethernet составляет 125 МБ/с, которых это довольно чинило хороший. Даже случайные записи (те 10 потоков HD, поражающих диск одновременно), были довольно респектабельными на уровне приблизительно 60 МБ/с. Используя более высокие высокопроизводительные диски как 10K или даже 15K об/мин получит Вас более случайная производительность. Если можно предоставить Raid1, Вы не будете иметь дело с издержками четности-calc, которые должны накачать пропускную способность еще больше.
Если Вы использовали внешние диски для этого, я предполагаю, что Вы используете или USB (25MB/s) или возможно ESATA (275MB/s). Если Вы выносили производительность USB, то DroboElite/DroboPro или возможно FS Drobo на GigE должны дать Вам много производительности. Просто обязательно используйте быстрые диски, поскольку случайный ввод-вывод будет вещью, которая принесет все к ее коленям.
Если Вы использовали внешние диски ESATA, то у Вас уже есть ожидание производительности, это довольно высоко. В этом случае серия Drobo не может поддерживать на высоком уровне, просто из-за конкуренции ресурса сетевого уровня если ничто иное. GigE составляет 125 МБ/с, и не требуются многих быстрых устройств записи для насыщения его. В этом случае это могут быть лучшие инвестиции, чтобы взять два или три из них и распределить студентов к единицам по мере необходимости как способ сбалансировать загрузку.
Ваша конфигурация заставляет ssh запускать любую команду из $ SHELL
всякий раз, когда вы подключаетесь с совпадающим закрытым ключом. Это нормально, если вам нужна интерактивная оболочка, но это нарушит любую попытку запустить команду напрямую. Это нарушает `scp, как вы видели, но также может нарушить такие вещи, как:
ssh myhost uptime
Решение состоит в том, чтобы либо (а) установить переменные среды в другом месте ( .ssh / rc
, либо просто использовать свой стандартные файлы инициализации оболочки) или (б) используйте специальный ключ, если вы хотите принудительно выполнить команду через файл authorized_keys
.
Итак, я понимаю, что на данный момент этот вопрос древний, но сегодня я нашел ответ на него. Это альтернатива установке переменных окружения и может быть лучшим решением в зависимости от вашей ситуации. Моя ситуация такова:
У меня есть экземпляр Splunk, который инициирует SCP и SSH сеанс на удаленный хост. Список писем отправляется через SCP, а затем SSH используется для запуска скрипта на удаленной системе для выполнения действий над этим списком писем. Вот верхняя часть моего файла authorized_keys:
command="/home/username/wrapper.sh",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3 etc...
Это мой скрипт wrapper.sh:
#!/bin/bash
vars=( $SSH_ORIGINAL_COMMAND )
case "${vars[0]}" in
"/home/username/scripts/myscript.py")
/home/username/scripts/myscript.py ${vars[1]}
exit 0
;;
"scp")
scp -t ${vars[2]}
chmod 644 ${vars[2]}
exit 0
;;
*)
exit 1
;;
esac
В первом случае разрешается /home/username/scripts/myscript.py с любыми параметрами командной строки, которые ему были переданы. Во втором случае, запись в сценарий scp, позволяет записать входящий файл на диск в нужном месте.
Этот метод позволяет мне ограничить использование публичного ключа командой 1 и все равно разрешить scp. Если у кого-то есть лучшая опция, пожалуйста, поделитесь. :)
.