Удалённая миграция с UFS на ZFS
07.01.2010 21:18
Администратор
Удалённая миграция с UFS на ZFS
Автор: lissyara. Оригинал: http://www.lissyara.su/articles/freebsd/file_system/remote_migration_from_ufs_to_zfs/
Итак, решил что пора мигрировать на ZFS - много всего хорошего рассказывают, да и в рассылке народ активировался - уже с raidZ можно грузиться, плюс в ожидаемом релизе 8-ки оно будет "реди фор продакшен". Значит - пора ставить на свой любимый тестовый тазик =) Ожидаемые проблемы - тазик капризный до памяти - да и мало на нём её - всего 128Mb. Для ZFS рекомендовано минимум 512. Поэтому, проблемы обязательно будут =). До кучи, хочеться всё сделать через ssh - т.е. без однопользовательского режима, всяких IP-КВМ и т.п. Итак, обновляемся до 8-ки (у меня там 7.2 стояла пустая), получаем следующее:2xPIII-500MHz$ uname -a FreeBSD 2xPIII-500MHz 8.0-PRERELEASE FreeBSD 8.0-PRERELEASE #0: Thu Nov 12 18:25:58 UTC 2009 root@2xPIII-500MHz:/usr/obj/usr/src/sys/GENERIC i386 2xPIII-500MHz$
Система стоит на небольшом сказёвом диске, на отдельном контроллере. Переносить буду с использованием дополнительного диска:2xPIII-500MHz$ dmesg | grep -E "amrd[0-9]|ad[0-9]" ad0: 176700MB <IC35L180AVV207 1 V26OA63A> at ata0-master UDMA33 amrd0: <LSILogic MegaRAID logical drive> on amr0 amrd0: 8700MB (17817600 sectors) RAID 0 (optimal) Trying to mount root from ufs:/dev/amrd0s1a 2xPIII-500MHz$
Разбит одним шматком, смонтирован асинхронно (да, я извращенец =) Но - машинка тестовая - чё хочу то и делаю):2xPIII-500MHz$ df -h Filesystem Size Used Avail Capacity Mounted on /dev/amrd0s1a 7.7G 3.5G 3.7G 48% / devfs 1.0K 1.0K 0B 100% /dev 2xPIII-500MHz$ 2xPIII-500MHz$ mount /dev/amrd0s1a on / (ufs, asynchronous, local) devfs on /dev (devfs, local, multilabel) 2xPIII-500MHz$
Загрузчик (loader), в 8-ке, по-умолчанию собран без поддержки загрузки с ZFS. Вернее, даже не так. Для ZFS используется отдельный загрузчик, и изначально его нет. Поэтому, вносим такую строку в make.conf:2xPIII-500MHz$ grep -i zfs /etc/make.conf # for zfs boot LOADER_ZFS_SUPPORT=yes 2xPIII-500MHz$
и пересобираем всё что касается загрузки системы:2xPIII-500MHz$ cd /usr/src/sys/boot && make obj depend all install
Прописываем загрузку модуля ZFS:2xPIII-500MHz$ grep zfs /boot/loader.conf zfs_load="YES" 2xPIII-500MHz$
и монтирование файловых систем при загрузке:2xPIII-500MHz$ grep zfs /etc/rc.conf zfs_enable="YES" 2xPIII-500MHz$
Создаём пул (о том что такое пул, и с чем его едят можно почитать в доке по утилите zpool, ну а вкратце - это набор девайсов, предоставляющих физическое хранилищще для ZFS):2xPIII-500MHz$ zpool create rootFS /dev/ad0
Смотрим, чё получилось:2xPIII-500MHz$ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rootFS 172G 73,5K 172G 0% ONLINE - 2xPIII-500MHz$ 2xPIII-500MHz$ zpool status pool: rootFS state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM rootFS ONLINE 0 0 0 ad0 ONLINE 0 0 0
errors: No known data errors 2xPIII-500MHz$
Экспортируем пул - чтобы ZFS, при дальнейших наших действиях, точно не трогала диск на котором он живёт:2xPIII-500MHz$ zpool export rootFS 2xPIII-500MHz$ zpool list no pools available
Записываем загрузчики - для первой и второй стадии загрузки:2xPIII-500MHz$ dd if=/boot/zfsboot of=/dev/ad0 bs=512 count=1 1+0 records in 1+0 records out 512 bytes transferred in 0.000513 secs (997901 bytes/sec) 2xPIII-500MHz$ 2xPIII-500MHz$ 2xPIII-500MHz$ dd if=/boot/zfsboot of=/dev/ad0 bs=512 skip=1 seek=1024 64+0 records in 64+0 records out 32768 bytes transferred in 0.020961 secs (1563299 bytes/sec) 2xPIII-500MHz$
Цепляем пул обратно:2xPIII-500MHz$ zpool import rootFS 2xPIII-500MHz$ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rootFS 172G 73,5K 172G 0% ONLINE - 2xPIII-500MHz$
В установках пула, выставляем отсутствие точки монтирования (корень ("/"), выставить сразу не можем - потому как пустой пул тут же будет примонтирован в качестве корневой системы, и повествование свернёт в другую сторону - на рассказ по теме "чё же делать если всё пошло не так")):2xPIII-500MHz$ zfs set mountpoint=none rootFS 2xPIII-500MHz$ zfs get mountpoint rootFS NAME PROPERTY VALUE SOURCE rootFS mountpoint none local 2xPIII-500MHz$
Монтируем файловую систему куда вам удобно - мне - в /mnt:2xPIII-500MHz$ mount rootFS /mnt/ mount: rootFS : No such file or directory 2xPIII-500MHz$ mount -t zfs rootFS /mnt/
Смотрим:2xPIII-500MHz$ df -h Filesystem Size Used Avail Capacity Mounted on /dev/amrd0s1a 7.7G 3.5G 3.7G 48% / devfs 1.0K 1.0K 0B 100% /dev rootFS 169G 0B 169G 0% /mnt 2xPIII-500MHz$ mount /dev/amrd0s1a on / (ufs, asynchronous, local) devfs on /dev (devfs, local, multilabel) rootFS on /mnt (zfs, local) 2xPIII-500MHz$
Переносим систему:2xPIII-500MHz$ dump -0Lf - / | (cd /mnt/; restore -rf -)
Вот тут начались грабли. Через несколько минут словил панику - ругалось что мало рамы ядру. Добавил рамы до 320Mb. После ребута, и монтирования раздела с ZFS сделал:2xPIII-500MHz$ rm -rf /mnt/*
Снова паника с теми же симптомами. Грустно... Обычной SDRAM у меня больше не было. Пришлось дёрнуть с ближайшего старенького сервера 2 планки SDRAM ECC по 2Gb - на этой машине они увиделись как 2x256. Снова запустил dump/restore - снова паника. Нашёл в заначке ещё одну на гиг - тоже увиделась как 256 - всего получилось 700 с чем-то мегов - процесс прошёл нормально. Прописываем в loader.conf откуда монтировать корневой раздел:2xPIII-500MHz$ grep zfs /boot/loader.conf zfs_load="YES" vfs.root.mountfrom="zfs:rootFS" 2xPIII-500MHz$
Убираем из fstab, что на разделе с ZFS все записи:2xPIII-500MHz$ more /mnt/etc/fstab # Device Mountpoint FStype Options Dump Pass# #/dev/amrd0s1b none swap sw 0 0 #/dev/amrd0s1a / ufs rw,async 1 1 #/dev/acd0 /cdrom cd9660 ro,noauto 0 0 2xPIII-500MHz$
Перезагружаемся, видим такую картинку:2xPIII-500MHz$ df -h Filesystem Size Used Avail Capacity Mounted on rootFS 169G 3.5G 166G 2% / devfs 1.0K 1.0K 0B 100% /dev 2xPIII-500MHz$ mount rootFS on / (zfs, local) devfs on /dev (devfs, local, multilabel) 2xPIII-500MHz$
Итак, что имеем - загрузка ядра, всё ещё, произошла по старому - с первого SCSI диска, с UFS. А вот файловая система уже монтируется с другого - на котором ZFS. Дальше, стрёмный момент - убиваем всё содержимое первого диска - именно ради него, чуть раньше, я прописывал загрузчики на второй диск - если после убиения, но до конца переноса машина будет перезагружена - можно будет загрузиться со второго диска. Если же на него не прописать загрузчик - грузиться будет не с чего. Итак, убиваем всё на загрузочном диске:2xPIII-500MHz$ ll /dev/amrd0* crw-r----- 1 root operator 0, 83 13 ноя 14:15 /dev/amrd0 crw-r----- 1 root operator 0, 83 13 ноя 14:15 amrd0s1 crw-r----- 1 root operator 0, 83 13 ноя 14:15 amrd0s1a crw-r----- 1 root operator 0, 83 13 ноя 14:15 amrd0s1b 2xPIII-500MHz$ 2xPIII-500MHz$ dd if=/dev/zero of=/dev/amrd0 bs=1m count=1 1+0 records in 1+0 records out 1048576 bytes transferred in 0.079149 secs (13248126 bytes/sec) 2xPIII-500MHz$
Проверяем, что все разделы пропали:2xPIII-500MHz$ ll /dev/amrd0* crw-r----- 1 root operator 0, 83 13 ноя 14:15 /dev/amrd0 2xPIII-500MHz$
Прописываем загрузчики:2xPIII-500MHz$ dd if=/boot/zfsboot of=/dev/amrd0 bs=512 count=1 1+0 records in 1+0 records out 512 bytes transferred in 0.017034 secs (30058 bytes/sec) 2xPIII-500MHz$ dd if=/boot/zfsboot of=/dev/amrd0 bs=512 skip=1 seek=1024 64+0 records in 64+0 records out 32768 bytes transferred in 0.030083 secs (1089247 bytes/sec) 2xPIII-500MHz$
А теперь, финт ушами - говорим zpool, что надо поменять один диск на другой:2xPIII-500MHz$ zpool replace rootFS /dev/ad0 /dev/amrd0 cannot replace /dev/ad0 with /dev/amrd0: device is too small
Обломалося земноводное зелёного цвета... (© "Красная Плесень", какой-то из рассказов про Гену и Чебурашку). Вначале надо до конца читать ман, а потом делать. Девайс нельзя заменить девайсом меньшего размера (непонятно лишь почему - данных там меньше чем размер самого маленького диска. Видимо, для замены используется зеркалирование, и отключение второго диска от зеркала), тока такого же или большего размера. Тут пришлось начать думать и плотно раскуривать доку (а с первого диска я уже всё снёс =))). Ключ "force" не помог:2xPIII-500MHz$ zpool replace -f rootFS /dev/ad0 /dev/amrd0 cannot replace /dev/ad0 with /dev/amrd0: device is too small 2xPIII-500MHz$
Ладно. Тогда попробуем реплицировать - в мане есть пример удалённого, должно и локально прокатить. Создаём новый пул, на SCSI диске:2xPIII-500MHz$ zpool create rootVG /dev/amrd0
(VG - виртуальная группа, такое именование в AIX принято. Куда удобней чем tank'и из доки по ZFS) Посмотрим, срослось ли:2xPIII-500MHz$ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rootFS 172G 3,50G 169G 2% ONLINE - rootVG 8,44G 72K 8,44G 0% ONLINE - 2xPIII-500MHz$
Делаем снимок файловой системы:2xPIII-500MHz$ zfs snapshot rootFS@now 2xPIII-500MHz$ zfs get all | grep @now rootFS@now type snapshot - rootFS@now creation пт ноя 13 14:46 2009 - rootFS@now used 538K - rootFS@now referenced 3,50G - rootFS@now compressratio 1.00x - rootFS@now devices on default rootFS@now exec on default rootFS@now setuid on default rootFS@now shareiscsi off default rootFS@now xattr on default rootFS@now version 3 - rootFS@now utf8only off - rootFS@now normalization none - rootFS@now casesensitivity sensitive - rootFS@now nbmand off default rootFS@now primarycache all default rootFS@now secondarycache all default 2xPIII-500MHz$
Передаём снимок с одной файловой системы на другую:2xPIII-500MHz$ zfs send rootFS@now | zfs receive rootVG cannot receive new filesystem stream: destination 'rootVG' exists must specify -F to overwrite it warning: cannot send 'rootFS@now': Канал разрушен 2xPIII-500MHz$ zfs send rootFS@now | zfs receive -F rootVG 2xPIII-500MHz$
Процесс, заметим, весьма ресурсоёмкий. Но, происходит быстрей чем dump/restore - в разы (но сильно медленней чем зеркалирование через zfs - там вообще всё очень шустро). Посмотрим, что получилось:2xPIII-500MHz$ zfs list NAME USED AVAIL REFER MOUNTPOINT rootFS 3,50G 166G 3,50G none rootVG 3,50G 4,81G 3,49G /rootVG 2xPIII-500MHz$
Цепляю в другую точку монтирования - для своего удобства, вначале выставляю отстуствие её для этого пула (заметим, в /rootVG оно автоматом примонтировалось, видимо, во время предыдущей операции, также, замечу, что убрать эту точку монтирования надо обязательно - иначе на загрузке вместо "/" пул смонтируется в "/rootVG" - это не совсем то, что нам надо =)):2xPIII-500MHz$ zfs set mountpoint=none rootVG 2xPIII-500MHz$
Раздел при этом, автоматически отмонтируется - если не было открытых файлов:2xPIII-500MHz$ zfs list NAME USED AVAIL REFER MOUNTPOINT rootFS 3,50G 166G 3,50G none rootVG 3,50G 4,81G 3,49G none 2xPIII-500MHz$
Монтирую:2xPIII-500MHz$ mount -t zfs rootVG /mnt/ 2xPIII-500MHz$ df -h Filesystem Size Used Avail Capacity Mounted on rootFS 169G 3.5G 166G 2% / devfs 1.0K 1.0K 0B 100% /dev rootVG 8.3G 3.5G 4.8G 42% /mnt 2xPIII-500MHz$
Подправляем loader.conf - это надо сделать в любом случае, неважно, были и проблемы с меньшим диском, как у меня, или у вас первый диск был больше/равен второму - ибо предыдущий раз этот файл трогали после зеркалирования, на диске который уже убили:2xPIII-500MHz$ grep zfs /mnt/boot/loader.conf zfs_load="YES" vfs.root.mountfrom="zfs:rootVG" 2xPIII-500MHz$
Товарисчи с большими/равными дисками должны прописать "rootFS" а не "rootVG". Теперь можно перезагрузиться, и посмотреть чё вышло:2xPIII-500MHz$ df -h Filesystem Size Used Avail Capacity Mounted on rootVG 8.3G 3.5G 4.8G 42% / devfs 1.0K 1.0K 0B 100% /dev 2xPIII-500MHz$ mount rootVG on / (zfs, local) devfs on /dev (devfs, local, multilabel) 2xPIII-500MHz$ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rootFS 172G 3,50G 169G 2% ONLINE - rootVG 8,44G 3,50G 4,94G 41% ONLINE - 2xPIII-500MHz$
Экспотрируем "rootFS" - чтоб не мешалось:2xPIII-500MHz$ zpool export rootFS 2xPIII-500MHz$ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rootVG 8,44G 3,50G 4,94G 41% ONLINE -
Создаём раздел в полгига размером - под свап. Тут тоже моё упущение - свап рекомендуют размещщать в начале диска, у меня он получился в середине. Надо было эти действия сделать сразу после создания пула, до переноса данных:2xPIII-500MHz$ zfs create -V 512Mb rootVG/swap 2xPIII-500MHz$ zfs list NAME USED AVAIL REFER MOUNTPOINT rootVG 4,00G 4,31G 3,49G none rootVG/swap 512M 4,81G 16K -
Выставляем переменные для раздела - тип файловой системы, и отключаем подсчёт контрольных сумм:2xPIII-500MHz$ zfs set org.freebsd:swap=on rootVG/swap 2xPIII-500MHz$ zfs set checksum=off rootVG/swap 2xPIII-500MHz$
Дальше, я попытался этот свап подцепить:2xPIII-500MHz$ zfs mount -a 2xPIII-500MHz$ swapinfo Device 1K-blocks Used Avail Capacity 2xPIII-500MHz$
Неподцепился. Логично - это не файловая система же. Тогда, пойдём обычным путём:2xPIII-500MHz$ swapon /dev/zvol/rootVG/swap 2xPIII-500MHz$ swapinfo Device 1K-blocks Used Avail Capacity /dev/zvol/rootVG/swap 524288 0 524288 0% 2xPIII-500MHz$
Дальше по желанию. Диск я буду отцеплять, поэтому на втором убиваю файловую систему:2xPIII-500MHz$ dd if=/dev/zero of=/dev/ad0 bs=1m count=1 1+0 records in 1+0 records out 1048576 bytes transferred in 0.091236 secs (11493023 bytes/sec) 2xPIII-500MHz$ zpool import rootFS cannot import 'rootFS': no such pool available 2xPIII-500MHz$
Теперь потестим то, что получилось. Накатил MySQL, apache2, php5, раскатал архив своего форума. Словил жёсткий зависон на попытке получить страницу через fetch. Мда. Ладно. За прошедшие выходные нашёл ещё рамы - 512Mb ECC, которая увиделась как 128. До гига так и не дотянул - получилось 917Mb. Краш-тест, в виде параллельного скачивания форума в 200 потоков система пережила. LA был 160, свап заюзан на 10%. Нарисовал в loader.conf такие переменные (получено приблизительной экстраполяцией, и дальнейшей подгонкой значений из стабильно работающей системы с 768Mb рамы), и уменьшил количество ОЗУ до 256Mb:vm.kmem_size="200M" vm.kmem_size_max="180M" vfs.zfs.arc_max="16M" vfs.zfs.vdev.cache.size="5M"
не упало - тестил переносом всего с однойго пула на другой, через:cd / && pax -p eme -X -rw . /mnt
Правда, перед тем как вышел на эти значения оно у меня три раза падало. Значит направление мысли было верное. Оттестил ещё раз, запустив в параллель к pax скачиваться форум в 200 потоков, и индексировать базу самого форума. Полёт нормальный.
Выводы. Работоспособно. Даже на небольшом количестве рамы, и архитектуре x32 можно допилить чтоб работало стабильно. Под amd64 всё и само будет стабильно работать. Тем не менее - рамы рекомендуется 1Gb и более и архитектуру amd64 - там работа с памятью грамотней организована.
Обновлено 28.05.2010 13:39
FreeBSD: Мониторинг RAID из командной строки (CLI)
07.01.2010 21:16
Администратор
FreeBSD: Мониторинг RAID из командной строки (CLI)
Автор: mvalery. Оригинал: http://www.lissyara.su/articles/freebsd/file_system/raid_monitoring/
0. Введение
Выложили деньги, поставили RAID. Теперь избыточность надежно защищает ваши данные. И успокоились. Зря. Рано или поздно выйдет из строя какой-то жесткий диск, но на поведении системы это никак не отразится. Просто избыточность исчезнет и как результат, отказ очередного HDD внезапно обвалит систему. Систему, которая возможно находится очень и очень далеко от вас. По этому, необходимо постоянно наблюдать за состоянием RAID, чтобы вовремя заметить вышедшие из строя накопители.
Задача статьи - помочь вам установить необходимую утилиту и убедиться, что утилита работоспособна и что ваш RAID так же работоспособен. Далее вы сможете по дополнительной документации найти какие-то необходимые вам команды. Драйверы для всех упомянутых ниже типов RAID уже включены в систему. Ставим только соответствующие утилиты мониторинга. Поразительно, что для такой важной компоненты сервера отсутствует стандартизованный интерфейс командной строки. Для каждого типа RAID приходится искать собственную программу мониторинга и если повезет найти, то ломать голову как они ставятся и как управляется. Данная статья отличная иллюстрация того, с каким "зверинцем" приходится иметь дело.
1. Как определить тип используемого RAID
Для нашего случая оказалось достаточно просмотреть директорию /dev. Это связано с тем, что в системе FreeBSD одинаковые имена получают устройства, идентичные с точки зрения управляемости. Чаще всего единое имя получает группа устройств построенная на базе общего набора чипов.
Для простоты изложения, в большинстве случаев я полагаю, что в системе установлен один RAID - контроллер. Наличие нескольких контроллеров потребует вспомогательных ключей. Будет необходимо разбирательство - каких именно.
И так, далее мы поговорим о следующих типах RAID: /dev/mirror/gm0 - программный RAID gmirror /dev/twa0 или /dev/twe0 - RAID контроллер компании AMCC 3ware (напр. 9650SE) /dev/hptrr - RAID контроллер компании HighPoint (напр. RocketRAID 2310) /dev/mfi0 - либо Dell Perc 5/i (чип LSI MegaRAID SAS 8408E) либо Dell PERC 6/i (чип LSI SAS1078)
Существует несколько других способов, позволяющие определить характеристики вашего железа.
В частности вы можете: (1) просмотреть файл /var/run/dmesg.boot:# less /var/run/dmesg.boot
(2) воспользоваться утилитой dmidecode : # dmidecode
(3) или утилитой pciconf:# pciconf -l -cv
Попробуйте. Узнаете много интересного.
2. Программный RAID gmirror (/dev/mirror/gm0)
Программный RAID не нуждается в установке специальной утилиты. Чтобы убедиться, что RAID исправен даем команду:# gmirror status
Этот тип RAID отлично документирован. В многочисленной литературе вы найдете дополнительные команды управления.
Программный RAID использует компоненты сервера как аппаратную часть, а компоненты операционной системы как программную часть. В связи с большим количеством компонент, вовлеченных в функционирование программного RAID, его наработка на отказ заметно ниже, чем у RAID выполненного в виде в виде специализированного контроллера. У меня были случаи, когда на нагруженных серверах программный RAID рассыпался через 2-3 месяца круглосуточной работы. Деньги, которые я сэкономил на покупке железного RAID, были потрачены на первой же поездке к провайдеру, где установлены сервера и на работах по восстановлению файловой системы.
3. AMCC 3ware (/dev/twa0 или /dev/twe0)
Ставим утилиту мониторинга из портов:# cd /usr/ports/sysutils/tw_cli/ && make install clean
Доступны следующие команды:
(1) Статус RAID и отдельных дисков массива узнаем так:# tw_cli /c0 show
(2) Общие сведения о контроллере RAID# tw_cli show
(3) Лог аварийных сообщений# tw_cli show alarms
(4) Лог диагностических сообщений.# tw_cli show diag
(5) Развернутая информация о типах контроллеров, поддерживаемых утилитой и сведения о некоторых дополнительных командах.# man tw_cli
4. HighPoint (/dev/hptrr)
В портах подходящая утилита отсутствует. Но можно скачать с сайта производителя и установить готовый пакет.
(1) Создаем временную директорию# mkdir RocketRAID && cd RocketRAID
(2) Скачиваем архив# wget \ http://www.highpoint-tech.com/BIOS_Driver/HRM/FreeBSD/CLI-FreeBSD-3.2-081224.tar.gz
(3) Распаковываем# tar xf CLI-FreeBSD-3.2-081224.tar.gz && cd CLI-FreeBSD-3.2-081224
В текущую директорию распаковываются 4 файла: hptsvr-3.13-4.tbz ; hptraidconf-3.2-1.tbz ; HPT_CLI_Guide.pdf ; README.txt
(4) Устанавливаем серверную часть (демона) # pkg_add hptsvr-3.13-4.tbz
(5) Устанавливаем клиентскую часть.# pkg_add hptraidconf-3.2-1.tbz
(6) Переносим на рабочую станцию файл HPT_CLI_Guide.pdf. Документ содержит подробный перечень команд, в котором на первых порах тяжеловато разобраться.
После установки, демон запускается автоматически. Далее его можно останавливать и снова запускать как всякий обычный демон командами:# /usr/local/etc/rc.d/hptdaemon.sh stop # /usr/local/etc/rc.d/hptdaemon.sh start
Увы, нет даже намека как сделать, чтобы этот демон запускался автоматически при старте системы.
Командная строка для всех команд будет начинаться одинаково:# hptraidconf -u RAID -p hpt <команда>
здесь ключи "-u RAID -p hpt" это username и password соответственно. Вы не можете их менять.
(7) А теперь подробнее поговорим о командах:
(7.1) Получить список RAID - контроллеров :# hptraidconf -u RAID -p hpt query controllers
Первая колонка - номера контроллера. Нумерация начинается с единицы.
(7.2) Получить статус всех RAID, построенных на этих контроллерах:# hptraidconf -u RAID -p hpt query arrays
Номер RAID совпадает с номером контроллера, однако некоторые RAID - составные. Например RAID10, состоящий из четырех дисков на первом контроллере, имеет номер 1, а входящие в него зеркала, каждый из двух дисков имеют номера 1-1 и 1-2 соответственно.
(7.3) Получить информацию о RAID по его номеру:# hptraidconf -u RAID -p hpt query arrays 1
(Получаем статус 1-го RAID) Если же вас интересует дополнительная информация, о входящих в него RAID, тогда делаем так:# hptraidconf -u RAID -p hpt query arrays 1-2
(Получаем статус 2-го RAID, вложенного в 1-й RAID)
(7.4) Получить статус всех дисков:# hptraidconf -u RAID -p hpt query devices
Диски нумеруются через дробь в формате номер_контроллера/номер_диска. Например 1/3 - это 3-й диск на 1-м контроллере. Соответственно, указав этот ID, вы можете получить еще более детальную информацию об этом диске:# hptraidconf -u RAID -p hpt query devices 1/3
(7.5) Контроллер ведет свой лог событий, который вам доступен по команде:# hptraidconf -u RAID -p hpt events
(7.6) Если вы заменили испорченный диск на новый, его необходимо инициировать:# hptraidconf -u RAID -p hpt init 1/3
(7.7) Добавить инициированный диск в RAID # hptraidconf -u RAID -p hpt rebuild 1 1/3
(добавить в 1-й RAID 3-й диск)
Далее читайте HPT_CLI_Guide.pdf. Документ довольно подробный и корректный.
5. Dell Perc 5/i (LSI MegaRAID SAS 8408E) и Dell PERC 6/i (LSI SAS1078) (/dev/mfi0)
Для этого типа RAID, в портах имеется утилита (ура!), но только под Linux (ну как же).
Примечание: (1)Читатель weec утверждает, что по его сведениям ожидается коммит порта sysutils/megacli, который не будет требовать linux-окружения. На сегодняшний день такого порта еще нет. (2) Читатель av советует воспользоваться фирменной утилитой от LSI: Mega CLI FreeBSD (MegaRAID Release 3.6) ver 4.0.11. Качается с сайта lsi.com.)
Ничего не могу сказать по поводу замечаний наших коллег. Поэтому, продолжаю рассказывать о том что я опробовал и что точно работает. Для начала, разбираемся - установлена ли у нас поддержка Linux. Если модуль linux.ko загружен, поддержка уже присутствует. Проверяем.
(1) Даем команду:# kldstat | grep linux
Правильный ответ - что-то вроде:5 1 0xc6c88000 16000 linux.ko
(2) Если модуль linux.ko не подгружен, попытаемся его подгрузить:# kldload linux
а затем опять идем в п.1 и проверяем
(Вдумчивый читатель может возразить, что достаточно запросить информацию о наличии установленного пакета, который называется linux_base-fc:# pkg_version -v -s"linux_base-fc"
и будет почти прав. Если бы не одно НО: Эта команда ничего не покажет, если поддержка Linux была включена в процессе инсталляции системы.)
Выполнение п.3 и 4 длится довольно долго. Убедитесь, что у вас достаточно времени, чтобы дождаться завершения.
(3) Если поддержка Linux уже установлена, переходите к п.4. Иначе ставим поддержку Linux:# cd /usr/ports/emulators/linux_base-fc4/ && make install clean
(4) Затем собственно утилиту мониторинга:# cd /usr/ports/sysutils/linux-megacli2/ && make install clean
(5) Готовимся к первому запуску.
(5.1) Загружаем модуль совместимости с Linux:# kldload linux
(5.2) Выставляем системную переменную:# sysctl compat.linux.osrelease=2.6.12
(по умолчанию 2.4.2 )
(5.3) Монтируем соответствующие элементы файловой системы:# mount -t linprocfs linproc /compat/linux/proc # mount -t linsysfs linsys /compat/linux/sys
(5.4) Запускаем утилиту, чтобы убедиться, что все сделели правильно:# megacli -AdpAllInfo -aALL
В этот момент вы должны увидеть подробную осмысленную информацию об имеющихся в наличии контроллерах данного типа.
Тогда продолжаем.
(6) Вносим изменения в конфигурационные файлы.
(6.1) Файл /etc/rc.conf. Добавитьlinux_enable="YES"
(6.2) Файл /etc/sysctl.conf. Добавить# For MegaCLi compat.linux.osrelease=2.6.12
(6.3) Файл /etc/fstab. Добавить# For MegaCLi linproc /compat/linux/proc linprocfs rw 0 0 linsys /compat/linux/sys linsysfs rw 0 0
(7) А теперь перечень самых необходимых команд.
(7.1) Информация обо всех RAID контроллерах данного типа, присутствующих в системе:# megacli -AdpAllInfo -aALL
(7.2) Статус всех логических дисков, присутствующих в системе. Все они должны быть в состоянии "optimal":# megacli -LDInfo -LALL -aALL | grep "State"
(7.3) Статус всех физических жестких дисков для всех адаптеров. Все они должны быть в состоянии "Online":# megacli -PDList -aALL | grep "Firmware state"
(7.4) Получить внутренний лог всех адаптеров:# megacli -AdpEventLog -GetEvents -f events.log -aALL && cat events.log
(8) список важнейших команд (только на английском) вы можете найти здесь. http://tools.rapidsoft.de/perc/perc-cheat-sheet.html
6. Общий скрипт для контроля за состоянием всех типов RAID.
Создайте скрипт типа того, что приведен ниже. Я свой назвал raid-status.sh и раскопировал по всем серверам. Теперь на любом из моих серверов, команда# ~/raid-status.sh
сообщает мне о состоянии моих RAID. #!/bin/sh
# -- for gmirror if [ -r /dev/mirror/gm0 ] ; then echo gmirror gmirror status
# -- for HighPoint RocketRAID 2310 elif [ -r /dev/hptrr ] ; then echo "HighPoint RocketRAID 2310" hptraidconf -u RAID -p hpt query arrays
# -- for AMCC 3ware 9650SE-4LP elif [ -r /dev/twa0 ] ; then echo "AMCC 3ware 9650SE" tw_cli /c0 show
# -- For Dell PowerAge 1950 (Perc 5/i, Perc 6/i) elif [ -r /dev/mfi0 ] ; then echo "Dell PowerAge 1950 (Perc 5/i, Perc 6/i)" echo RAID status: megacli -LDInfo -LALL -aALL | grep "State" echo DISKS status: megacli -PDList -aALL | grep "Firmware state" rm MegaSAS.log else echo "unnown RAID or doesn't present anyone" fi
Примечание: В процессе обсуждения на форуме всплыли описания утилит для еще двух типов RAID. Вы можете прочитать о них, если перейдете по ссылке, приведенной в нижней части статьи, после слов "Ссылка на обсуждение". (1) /dev/amr - утилита для RAID типа Dell Perc и LSI MegaRAID. Предыдущие модели. Полный список можно получить в справке: # man 4 amr (2) /dev/??? - утилита для RAID комании Areca(Tekram)
Обновлено 28.05.2010 13:40
|
Самба как контроллер домена без использования LDAP
07.10.2006 00:27
Администратор
Самба как контроллер домена без использования LDAP
Автор: lissyara. Оригинал: http://www.lissyara.su/articles/freebsd/programms/samba_as_pdc_without_ldap/
Это - обновление старой одноимённой статьи. Как и старая - эта полностью копи-пастная - всё работает "из коробки" =) Причина обновления - недоработки старой статьи, кривости в некоторых местах (дополнительные параметры пользователя не редактировались). Ну и столкнулся с практической реализаций решения - попросили сделать в одной конторе. Задача - поднять домен с целью централизованного хранения учётных записей пользователей, выполнения каких-то скриптов при логине и т.п. Больше оно и не может - ибо уровень домена - NT4.
Система - FreeBSD 7.2-STABLE. Ставим самбу:server$ cd /usr/ports/net/samba3 server$ make install clean
В вылезшем окошке выбираем следующие опции:[X] WINBIND With WinBIND support [X] ACL_SUPPORT With ACL support [X] SYSLOG With Syslog support [X] QUOTAS With Disk quota support [X] UTMP With UTMP accounting support [X] POPT With system-wide POPT library [X] PCH With precompiled headers optimization
Рисуем конфиг /usr/local/etc/smb.conf:# [global] workgroup = SRO netbios name = SERVER server string = SAMBA Domain Controller For SRO
# Скрипт добавления пользователя add user script = /usr/local/etc/samba/add_user_script.sh "%u" # Скрипт удаления пользователя delete user script = /usr/sbin/pw userdel "%u" -r # Скрипт переименованя пользователя # (следующие две строки - на самом деле одна. невлезает ..) rename user script = /usr/local/etc/samba/rename_user_script.sh "%uold" "%unew" # Скрипт перезапуска самбы (Вообще, в man smb.conf, предлагается # ребутить или класть всю машину. Перебор, по моему... Хотя - # у меня это не работает. Такчто - пофиг.) shutdown script = /usr/local/etc/samba/shutdown_script.sh # Скрипт добавления новой группы add group script = /usr/sbin/pw groupadd "%g" # Скрипт удаления группы delete group script = /usr/sbin/pw groupdel "%g" # Скрипт добавления пользователя в группу # (следующие две строки - это одна, в ширину сайта на вписывается) add user to group script = /usr/local/etc/samba/add_user_to_group_script.sh "%g" "%u" # Скрипт установки первичной группы для пользователя set primary group script = /usr/sbin/pw usermod "%u" -g "%g" # Скрипт удаления пользователя из группы # (следующие две строки - это одна, в ширину сайта на вписывается) delete user from group script = /usr/local/etc/samba/delete_user_from_group_script.sh "%g" "%u" # Скрпит для добавления аккаунта компьютера add machine script = /usr/local/etc/samba/add_machine_script.sh "%u" # Скрипт проверки пароля (чтобы не пихали 12345 и прочее. Должен вернуть 0 # если пароль нормальный, и что-то другое - если нет. Пароль передаётся # на стандартный ввод скрпита) check password script = /path/to/password/check/script.sh # Скрпит - чё елать при получении сообщений по winpopup (из man`a) message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s
# added by lissyara 2009-09-04 in 08:50 passdb backend = tdbsam:/usr/local/etc/samba/passdb.tdb # added by lissyara 2009-09-04 in 09:36 display charset = koi8-r unix charset = koi8-r dos charset = koi8-r
# Где лежат скрпиты, выполняемые доменными компами при загрузке #logon script = scripts\logon.bat logon script = net_map.bat domain logons = Yes os level = 85 preferred master = Yes domain master = Yes idmap uid = 5000-9999 idmap gid = 5000-9999
# Кого не пускать # в итоге она у меня раскомментирована, но настройку # я делал с закомменченой. # настоятельно рекомендую расккомментить, после настройки и введения # самой машины в домен #invalid users = root
#interfaces = 192.168.120.253/24 security = user # Включаем поддержку WINS wins support = yes # Указываем виндовый WINS из другого домена - на время, пока он ещё жив # wins server = 192.168.0.251 dns proxy = yes time server = True
# Перемещаемые профили (если не указать эти пункты пустыми - # профили у пользователей будут перемещаемые) # logon path = \\lissyara\profiles\%U logon path = logon home = template homedir =
# логгинг # log level = 10 passdb:10 auth:10 winbind:10 # log level = 6 log file = /var/log/samba/log.%m
# added by lissyara 2009-09-04 in 16:22 MSK admin users = "@SRO\Domain Admins"
[IPC$] path = /tmp
[print$] comment = Printer Drivers Share path = /usr/home/samba/drivers
[netlogon] path = /nethome/samba/netlogon read only = no browseable = yes
[profiles] path = /nethome/samba/profiles browseable = yes create mask = 0600 directory mask = 0700 read only = no guest ok = yes
Набор шар - опционален, обязательны лишь первые три. Далее - рисуем описанные в конфиге скрипты по управлению пользователями и группами, но, не забываем добавить в /etc/rc.conf такую строку:samba_enable="YES"
Скрипт добавления пользователя для компьютера добавляемого в домен - add_machine_script.sh:#!/bin/sh
# скрипт добавления машины /usr/sbin/pw useradd "$1" -d /dev/null \ -s /sbin/nologin -L "russian" -m \ -g computers -c "computer_account"
# отладка echo "added komp '$@' in `date +%Y-%m-%d` `date +%H:%M:%S`" \ >> /tmp/`basename $0`.log
Скрипт добавления пользователя - add_user_script.sh:#!/bin/sh
# скрипт добавления пользователей #/usr/sbin/pw useradd "$1" -d /usr/home/samba/profiles/"$1" \ # -s /sbin/nologin -L "russian" -m -g ntusers -c "$1" /usr/sbin/pw useradd "$1" -d /dev/null \ -s /sbin/nologin -L "russian" -m -g ntusers -c "$1" # отладка echo "added user '$@' in `date +%Y-%m-%d` `date +%H:%M:%S`" \ >> /tmp/`basename $0`.log
Добавление пользователя в группу - add_user_to_group_script.sh:#!/bin/sh
/usr/sbin/pw groupmod "$1" -m "$2"
# отладка echo "added user '$2' to group '$1' ($@) in `date +%Y-%m-%d` \ `date +%H:%M:%S`" >> /tmp/`basename $0`.log
Скрипт для удаления пользователя из группы - delete_user_from_group_script.sh:#!/bin/sh
/usr/sbin/pw groupmod $1 -d $2
echo "deleted user '$2' from group '$1' ($@) in `date +%Y-%m-%d` \ `date +%H:%M:%S`" >> /tmp/`basename $0`.log
Скрипт переименовывания пользователя - rename_user_script.sh:#!/bin/sh
/usr/sbin/pw usermod $1 -l $2
echo "renamed user '$1' --> '$2' ($@) in `date +%Y-%m-%d` \ `date +%H:%M:%S`" >> /tmp/`basename $0`.log
Скрипт перезапуска сервиса - shutdown_script.sh:#!/bin/sh
# Перезапукаем самбу (в бакгроунде - обязательно!) /usr/local/etc/rc.d/samba restart &
В принципе, все эти скрипты не обязательны. Все они состоят из одной строки, и прекрасно вставляются в конфиг самбы. Вот тока логгировать так проще, при отладке и т.п. Ну и потом по-быстрому глянуть - чё происходило на машине - тоже можно. Так что - ваш выбор - что хотите логгировать - через скрипты, что не хотите - пямо в конфиг команду вписывайте. На мой взгляд - как мимнимум - добавление/удаления пользователей, тоже самое для модификации групп пользователя.
Написанные скрипты делаем исполняемыми и запускаем самбу:server$ chmod +x /usr/local/etc/samba/*.sh server$ /usr/local/etc/rc.d/samba restart
Заводим пользователя root в самбе (в принципе, опять же, не обязательно - можно дальше действовать от административного пользователя, котрый и будет позднее постоянно использоваться. Но - на этом этапе так будет прощще):server$ smbpasswd -a root New SMB password: Retype new SMB password: Added user root.
Рисуем скрипт добавления нужных системных групп, и маппинга виндовых групп на системные:#!/bin/sh #!/bin/bash #### Keep this as a shell script for future re-use
pw groupadd ntadmins pw groupadd ntusers pw groupadd computers
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=d net groupmap add ntgroup="Domain Users" unixgroup=ntusers rid=513 type=d net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d net groupmap add ntgroup="Domain Computers" unixgroup=computers type=d
Как вы его обзовёте и куда положите - ваше дело. Использоваться он будет лишь один раз. Запускаем:server$ sh samba_group.sh Successfully added group Domain Admins to the mapping db as a domain group Successfully added group Domain Users to the mapping db as a domain group Successfully added group Domain Guests to the mapping db as a domain group No rid or sid specified, choosing a RID Got RID 3007 Successfully added group Domain Computers to the mapping db as a domain group
Добавляем в администраторов будущего домена нужных пользователей (они, разуммется должны уже быть в системе. Я добавляю рута и nik - человек который будет на том конце провода заниматься машинками с виндой):pw groupmod ntadmins -m root pw groupmod ntadmins -m nik server$ id nik uid=1001(nik) gid=0(wheel) groups=0(wheel),1982(ntadmins) server$
Зачем рута? Просто все кому делал первым делом пытались залезть на виндовые машины и порулить доменом именно им. (с учётом что я не описываю как заводил того же nik в самбе - так же как и рута - вполне наверно логично...) Вводим контроллер домена в домен:server$ net join server Password: Joined domain SRO. server$
Всё. Для верности можно рестартануть самбу и пытаться ввести в домен машины/залогиниться на них юзерами (опять же - если дословно по статье сделано - то только root получиться. ибо в самбе пока больше нет других пользователей).
Оговорки и примечания. В общем - повторяюсь то же что и к предыдущей статье - при удалении пользователя из самбы - грохается системная учётка. Делайте проверку, или юзайте отдельную учётку. При наличии в системе учётки совпадающей по логину с создаваемой - новйо не создаётся - используется существующая. Сразу отвечаю на впорос - почему не самба 3.3 а 3.0. В 3.3 скрипты, по какой-то причине, выполняются от обычного пользователя, который в винде галки ставит - nik в данном случае. Естессно они не работают. Либо sudo мутить, и ловить остальные глюки, либо - использовать проверенное решение. Я предпочёл последнее. Для администрирования качаем утилиты http://support.microsoft.com/kb/173673/sr-cs/
Обновлено 28.05.2010 13:52
SAMBA и ClamAV - антивирусная защита.
06.10.2006 22:28
Администратор
SAMBA и ClamAV - антивирусная защита.
Автор: lissyara. Оригинал: http://www.lissyara.su/articles/freebsd/programms/samba_+_clamav/
На фрёвой машине, хранились кое какие доки пользователей, также она же использовалась для обмена документами. Решил привернуть проверку на вирусы к самбе. Порыскав по портам, по ключевому слову `samba`, нашёл антивирь - samba-vscan. Почитал - сойдёть. Будем ставить. В качестве антивируса поставим ClamAV:/usr/home/lissyara/>cd /usr/ports/security/clamav /usr/ports/security/clamav/>make && make install && make clean
Вылезет окно - где ничё не надо выбирать.[ ] MILTER Compile the milter interface [ ] CURL Support URL downloading [ ] LIBUNRAR Support for external Unrar library
После сборки обновляем антивирусные базы:/usr/ports/security/clamav/>cd /usr/local/etc/ /usr/local/etc/>freshclam ClamAV update process started at Tue Jan 24 16:30:46 2006 main.cvd is up to date (version: 35, sigs: 41649, f-level: 6, builder: tkojm) Downloading daily.cvd [*] daily.cvd updated (version: 1248, sigs: 852, f-level: 7, builder: diego) Database updated (42501 signatures) from database.clamav.net (IP: 62.181.41.8) ERROR: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd connect(): No such file or directory /usr/local/etc/>
Добаляем строку в /etc/rc.conf, запускаем clamd и проверяем, запустился ли: /usr/local/etc/>echo '' >> /etc/rc.conf /usr/local/etc/>echo 'clamav_clamd_enable="YES"' >> /etc/rc.conf /usr/local/etc/> /usr/local/etc/>/usr/local/etc/rc.d/clamav-clamd.sh start Starting clamav_clamd. /usr/local/etc/>ps -ax | grep clam 63829 ?? Ss 0:00.00 /usr/local/sbin/clamd 63831 p0 S+ 0:00.01 grep clam /usr/local/etc/>
После чего можно переходить к самбе. Для начала, неплохо бы, эту самую самбу обновить, какая-то старая версия у меня стоит:/usr/ports/>pkg_info | grep samba samba-3.0.14a,1 A free SMB and CIFS client and server for UNIX /usr/ports/>portupgrade samba-3.0.14a,1 [Updating the portsdb <format:bdb1_btree> in /usr/ports ... - 14052 port entries found .........1000......14000 ..... done] ** Port marked as IGNORE: net/samba3: broken dependency between OpenSSL, OpenLDAP and Heimdal for FreeBSD 4.x. Disable ADS support /usr/ports/> /usr/ports/>cat /var/db/ports/samba3/options # This file is auto-generated by 'make config'. # No user-servicable parts inside! # Options for samba-3.0.14a,1 _OPTIONS_READ=samba-3.0.14a,1 WITH_LDAP=true WITH_ADS=true WITH_CUPS=true WITH_WINBIND=true WITHOUT_ACL_SUPPORT=true WITH_SYSLOG=true WITHOUT_QUOTAS=true WITH_UTMP=true WITHOUT_MSDFS=true WITHOUT_SAM_XML=true WITHOUT_SAM_MYSQL=true WITHOUT_SAM_PGSQL=true WITHOUT_SAM_OLD_LDAP=true WITHOUT_PAM_SMBPASS=true WITHOUT_EXP_MODULES=true WITH_POPT=true /usr/ports/>
Обновляться не захотела - пришлось отрихтовать файл /var/db/ports/samba3/option - заменить строчку: WITH_ADS=true на: WITHOUT_ADS=true После чего она прекрасно обновилась. Затем собираем антвирусный модуль:/usr/ports/>cd /usr/ports/security/samba-vscan /usr/ports/security/samba-vscan/>make && make install && make clean
После инсталляции вылазиет инструкция по применению: You have installed the samba-vscan package.
The vfs object's is in /usr/local/lib/samba.
The configuration files is in /usr/local/etc/samba-vscan.
Edit /usr/local/etc/smb.conf and add the following entry if you are using samba 2.X (that's only an example):
[vscan] comment = virus-protected /tmp directory path = /tmp vfs object = /usr/local/lib/samba/vscan-oav.so vfs options = config-file = /usr/local/etc/samba-vscan/vscan-oav.conf writeable = yes browseable = yes guest ok = yes
If you are using samba 3.X:
Edit /etc/smb.conf and add the following entry (that's only an example): [vscan] comment = virus-protected /tmp directory path = /tmp vfs object = vscan-oav vscan-oav: config-file = /usr/local/etc/samba-vscan/vscan-oav.conf writeable = yes browseable = yes guest ok = yes
Basically you have to add a vfs object line to your shares which should be virus-protected by this module. If you'd like to use the run-time configuration file, simply add the vfs options = config-file = /path/config-file (different settings for several shares can be achieved by using a different name of the configuration file for each share). If you want to protect _all_ shares your Samba server offers, simply add the vfs object line (and the vfs options line, if you like) to the [global] section.
Then restart samba.
По ней всё и делаем - рихтуем /usr/local/etc/smb.conf[global] workgroup = main_workgroup_name netbios name = FREEBSD server string = BSD_4-11 interfaces = sis0 bind interfaces only = Yes security = SHARE encrypt passwords = No lanman auth = No ntlm auth = No client lanman auth = No client plaintext auth = No announce version = 4.11 wins support = Yes ldap ssl = no create mask = 0666 security mask = 0666 directory mask = 0777
[main_bsd_share] comment = примечание к шаре path = /usr/local/smb_fs # добавлены следующие две строки: vfs object = vscan-clamav vscan-clamav: config-file = /usr/local/etc/samba-vscan/vscan-clamav.conf read only = No guest ok = Yes
После чего приводим конфиг vscan к такому виду: /usr/local/etc/samba-vscan/vscan-clamav.conf [samba-vscan]
max file size = 0 ; не забудте, после отладки, поставить ; следующую строчку в `no` verbose file logging = yes scan on open = yes scan on close = yes deny access on error = no deny access on minor error = no send warning message = yes ; в карантин у мя не перемещает - ; порылся в инете - не я один такой. Так и оставил. ; а хотел уже новую коллекцию вирей собирать... infected file action = delete quarantine directory = /tmp/smb_infected quarantine prefix = vir- max lru files entries = 100 lru file entry lifetime = 5 exclude file types = clamd socket name = /var/run/clamav/clamd libclamav max files in archive = 1000 libclamav max archived file size = 10485760 libclamav max recursion level = 5
Ну и всё. Перезапускаем самбу (у меня она остановилась в результате обновления :)) /usr/local/etc/>/usr/local/etc/rc.d/samba.sh restart Stopping /usr/local/sbin/nmbd. Waiting for PIDS: 56778. Stopping /usr/local/sbin/smbd. Starting SAMBA: removing stale tdbs : /var/db/samba/connections.tdb /var/db/samba/messages.tdb /var/db/samba/sessionid.tdb /var/db/samba/unexpected.tdb /var/db/samba/brlock.tdb /var/db/samba/locking.tdb Starting nmbd. Starting smbd. /usr/local/etc/>
и наблюдаем следующую активность в /var/log/messages: Jan 24 14:17:50 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-2a.jpg is clean Jan 24 14:17:50 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/A4-1ob.jpg' Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-1ob.jpg is clean Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vnytr1.jpg' Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnytr1.jpg is clean Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vnutr.jpg' Jan 24 14:17:52 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnutr.jpg is clean Jan 24 14:17:52 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vkatalog1.tif' Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog1.tif is clean Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vkatalog.tif' Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog.tif is clean Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/RazvRod.tif' Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/RazvRod.tif is clean Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A5Kolle.tif was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A5.jpg was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-2a.jpg was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-2.jpg was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-1ob.jpg was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnytr1.jpg was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnutr.jpg was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/RazvRod.jpg' Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/RazvRod.jpg is clean Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog1.tif was not modified - not scanned Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog.tif was not modified - not scanned Jan 24 14:18:06 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Razvorot2.jpg' Jan 24 14:18:06 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Razvorot2.jpg is clean Jan 24 14:18:06 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Razvorot1.jpg' Jan 24 14:18:07 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Razvorot1.jpg is clean Jan 24 14:18:07 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Razvorot.tif'
Всё пучком. :) Меняем `verbose file logging` на `no` и перезапускаем самбу ещё раз. Конечно же, стало медленней - но не так уж и сильно. Работать можно.
P.S. У меня почему-то на заражённые файлы ругается так: ERROR: string overflow by 1 (24 - 23) in safe_strcpy [main_bsd_share]
Пока не разобрался, но - ещё не вечер...
Обновлено 28.05.2010 13:46
|