Ваша производительность звучит о праве. P812 является картой на 6 ГБ, и Вы получаете последовательную производительность на 4 ГБ в конфигурации RAID10. Довольно сильный, особенно только с одним корпусом и одной парой используемых каналов SAS. Это показывает, что оба канала на самом деле используются, иначе Ваша производительность была бы ближе к 375MB/s.
Для получения большего количества производительности Вы испытываете необходимость больше чем в одном корпусе D2700 и выполняете их прочь второй пары портов на карте P812. Настройте каждый корпус как RAID0 LUN и затем зеркально отразите их. Тем путем Ваше зеркальное отражение, ввод-вывод не будет спорить друг с другом и Вашей пропускной способностью, должно значительно увеличиться. Вы не можете закончить много 1GB/s хотя
Больший вопрос состоит в том, какой ввод-вывод Вы ожидаете, что эта система обработает? Вы говорите "большую производительность ввода-вывода", но существует несколько способов определить это. Вы, кажется, фокусируетесь на простой пропускной способности, но Ваш выбор дисков предполагает, что задержка является на самом деле главным беспокойством.
Я предложил бы характеризовать Вашу производительность хранилища через множество размеров доступа для получения лучшего ощущения его общей производительности. Если Вы знаете, какие виды диска передает Ваши высокие потребности приложения ввода-вывода, внимание особенно на те диапазоны. Также обратите внимание для чередования размера на наборах RAID и где повреждения раздела падают. Это - более обычно беспокойство SSD, но Вы, кажется, хотите макс. возможную производительность так дополнительные процентные пункты, которые Вы получаете для обеспечения Ваших блоков файловой системы, выравниваются с дорожками RAID, стоит заглянуть к.
Простой копии файла недостаточно для охарактеризования производительности системы хранения. Для этого Вам нужны реальные сравнительные тесты. Я особенно люблю IOZone (ссылка), но IOMeter (ссылка) имеет лучшее проникновение на рынок. Сфокусируйте свое тестирование на размерах данных, Вы, вероятно, будете работать с и размеры передачи ввода-вывода, которые Вы, вероятно, будете использовать. Может быть очень удивительно, как другое устройство хранения данных работает при работе с блоками 4 КБ и блоками 32 КБ.
В зависимости от того, сколько файлов действительно затронуто, я не думаю, что 2 часа - это столько времени для проверки на вирусы. Тем не мение, вы можете попытаться повысить скорость следующим образом:
Выведите результат find
в файл вместо того, чтобы передавать его в xargs
, а затем использовать clamscan
с с опцией - file-list = FILE
. Это, возможно, улучшит время выполнения, потому что clamav
нужно будет запускать и инициализировать только один раз, а не несколько раз. Пожалуйста, оставьте комментарий и скажите, насколько это ускорило процесс, если вообще это ускорило.
Другой вариант (или дополнительный) - ограничить сканирование определенными уязвимыми типами файлов, но лично мне такой подход не нравится.
Это, возможно, улучшит время выполнения, потому что clamav
нужно будет запускать и инициализировать только один раз, а не несколько раз. Пожалуйста, оставьте комментарий и скажите, насколько это ускорило процесс, если вообще это ускорило.
Другой вариант (или дополнительный) - ограничить сканирование определенными уязвимыми типами файлов, но лично мне такой подход не нравится.
Это, возможно, улучшит время выполнения, потому что clamav
нужно будет запускать и инициализировать только один раз, а не несколько раз. Пожалуйста, оставьте комментарий и скажите, насколько это ускорило процесс, если вообще это ускорило.
Другой вариант (или дополнительный) - ограничить сканирование определенными уязвимыми типами файлов, но лично мне такой подход не нравится.
Я наткнулся на эту страницу, когда искал сценарий сканирования моллюсков. Я последовал приведенному выше совету и заставил его работать с:
#!/usr/bin/bash
# Create Hourly Cron Job With Clamscan
# Directories to scan
scan_dir="/home"
# Temporary file
list_file=$(mktemp -t clamscan.XXXXXX) || exit 1
# Location of log file
log_file="/var/log/clamav/hourly_clamscan.log"
# Make list of new files
if [ -f "$log_file" ]
then
# use newer files then logfile
find "$scan_dir" -type f -cnewer "$log_file" -fprint "$list_file"
else
# scan last 60 minutes
find "$scan_dir" -type f -cmin -60 -fprint "$list_file"
fi
if [ -s "$list_file" ]
then
# Scan files and remove (--remove) infected
clamscan -i -f "$list_file" --remove=yes > "$log_file"
# If there were infected files detected, send email alert
if [ `cat $log_file | grep Infected | grep -v 0 | wc -l` != 0 ]
then
HOSTNAME=`hostname`
echo "$(egrep "FOUND" $log_file)" | mail -s "VIRUS PROBLEM on $HOSTNAME" -r clam@nas.local you@yourhost.com
fi
else
# remove the empty file, contains no info
rm -f "$list_file"
fi
exit
В моем случае это был почасовой сценарий, но он должен работать ежедневно (измените второе открытие).
Я еще не тестировал это, но я планирую интегрировать мой запуск clamscan с моим резервным запуском. Моя утилита резервного копирования создает список файлов, измененных для выполнения инкрементного бэкапа, так зачем же перекомпилировать один и тот же список файлов дважды?
Я использую dirvish для создания моих бэкапов, в котором используется rsync внизу. В конце концов, я получаю log.bz2
, который дает мне отчет обо всех файлах, сохраненных в резервной копии, включая список файлов, которые были сохранены.
Этот genclamfilelist.sh
скрипт извлечет список файлов из log.bz2
последней резервной копии и распечатает его:
#!/bin/sh
AWK=/usr/bin/awk
BUNZIP2=/bin/bunzip2
HEAD=/usr/bin/head
HOSTNAME=/bin/hostname
LS=/bin/ls
SED=/bin/sed
SNAPSHOT_HOME=/path/to/dirvish/snapshots
for vaultHome in ${SNAPSHOT_HOME}/*; do
# vault naming convention: <hostname>-<sharename>
vaultName="`echo ${vaultHome} | ${SED} -e 's/^.*\/\([^\/]\+\)$/\1/'`"
vaultHost="`echo ${vaultName} | ${SED} -e 's/\([^\-]\+\)\-.*$/\1/'`"
# only proceed if vault being considered is for the same host
if [ "${vaultHost}" = "`${HOSTNAME}`" ]; then
logfile="`${LS} -1t ${vaultHome}/20??????-???? \
| ${HEAD} -1 \
| ${SED} -e 's/^\(.*\)\:$/\1/'`/log.bz2"
if [ -f ${logfile} ]; then
${BUNZIP2} -c ${logfile} | ${AWK} '
/^$/ {
if (start) {
start=0
}
}
{
if (start) {
print $0
}
}
/^receiving\ file\ list\ \.\.\.\ done$/ {
start=1
}' | ${SED} -e "s/^\(.*\)$/\/\1/"
fi
# else skip - no log file found, probably backup didn't run or failed
fi
# else skip - another vault
done
exit 0
This /etc/cron. Скрипт cron d/clamav
будет использовать список файлов:
# /etc/cron.d/clamav: crontab fragment for clamav
CLAMAV_FILELIST=/tmp/clamav_filelist_`/bin/hostname`.txt
# run every night
0 19 * * * root /usr/bin/test -f ${CLAMAV_FILELIST} && /usr/bin/clamscan --any-desired-options --file-list=${CLAMAV_FILELIST} && /bin/rm ${CLAMAV_FILELIST}
Так как я использую dirvish, я изменил его /etc/dirvish/dirvish-cronjob
, чтобы вызвать первый скрипт для создания списка файлов для использования последним скриптом:
# ...
/usr/sbin/dirvish-expire --quiet && /usr/sbin/dirvish-runall --quiet rc=$?
# v--- BEGIN ADDING NEW LINES
touch /tmp/clamav_filelist_`hostname`.txt
chmod 400 /tmp/clamav_filelist_`hostname`.txt
/usr/local/bin/genclamfilelist.sh >> /tmp/clamav_filelist_`hostname`.txt
# ^--- END ADDING NEW LINES
umount /mnt/backup0 || rc=$?
# ...