Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет dibr ([info]dibr)
@ 2012-03-11 00:39:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
AHCI! - будьте здоровы!
     Фантазия "погромистов" меня иногда впечатляет. Причём, что обидно - не индусов с быдлокодом, а нормальных, но именно что "с развитой фантазией".
     Вот, скажем, много лет назад понадобилось мне регулярно перекодировать из KOI-8 в 866 "в батничке" (не спрашивайте зачем - тогда вообще динозавры бегали по ещё не остывшей поверхности планеты, а KOI-8 кое-кем считалась даже "довольно удачной" кодировкой). Задача-то тривиальная, "программа на три строчки", но самому писать лениво, поэтому скачал и заюзал какую-то утилиту "перекодировки изо всего во всё" - она ж по определению тривиальная, глючить там просто негде. А потом до-олго искал, почему иногда (редко-редко, этак раз в месяц) перекодируется только часть текста. Нашёл - оказывается, это документированная но неотключаемая фича: встретив в тексте значок "тильда" (~) перекодировка отключается, на второй тильде - включается обратно. В документации так и было написано, мол "а если вам нужно, чтобы часть текста не перекодировалась - обнесите её тильдами". Пришлось сносить "перекодировщик" нафиг, и то-ли писать свой (точно без таких вот фич), то-ли искать нормальный - давно дело было, не помню уже.

     А сегодня делал "батничек", в котором по ходу дела требовалось впечатывать текст в jpeg-файл. Нашёл командлайновую утилитку - хорошую, в меру развесистую, в меру простую, даже lossless (в тех местах, где текст не впечатывается), погонял на тестовых картинках (они, собственно, реальные, просто не в реальном времени получались) - на них всё блестяще работало, запустил на реальном потоке. Получил тотальную забастовку программы и пачку уведомлений вида "Ignoring Input File: %s since it looks like it was created by this program itself", прифигел. До-олго разбирался в чём дело (если отложить "ошибочный" файлик в сторону - всё работает, а вот "с пылу с жару" - нифига), грешил на то, что свежий файл какое-то время остаётся залочен программой, его создавшей, но после того, как получил аналогичную ошибку даже скопировав файл на новое место (копия-то точно не залочена) - задумался уже сильно.
     Оказалось, что авторы программы считают, что файл "создан ей же" в том случае, если файл... моложе 15 секунд от роду! Через 15 секунд - можно, а прямо вот так - нельзя, естественно "на консервах" всё прогоняется отлично, а на свежих данных - опаньки. ЧСХ - фича, разумеется, неотключаемая:

            if(!stat(inpFile, &fileInfo) && g_startTime-15 <= fileInfo.st_mtime &&
               fileInfo.st_mtime <= 15+time(NULL))
            {
                cp = g_errorPrefix;
                g_errorPrefix = "";
                JDSTMP_ERROR("--- Ignoring Input File: %s since it looks like 
                                  it was created by this program itself\n", inpFile);
                g_errorPrefix = cp;
                retVal = 1;
            }

     Разбираться и "пересобирать", конечно, не стал, вставил в батник  touch -d "1 day ago" %%i  (авторы touch тоже, кстати, жгут - документации по формату ключа -d в манах нет, хотя как можно видеть - он зело хитёр и нетривиален), хожу впечатлённый от логики: ну ведь правда же, логично, что всё то, что ты успел увидеть первым (в течении 15 секунд от рождения) - твоё по праву первого увидевшего, а то, что ты упустил из рук более чем на 15 секунд - больше не твоё?

     И куча скучного железячно-софтовогого лытдыбра:

     1. Современные материнки по дефолту часто имеют SATA контроллер в режиме эмуляции IDE (это точно со всеми работает), AHCI нужно включать. Если поставить XP на контроллер в режиме IDE - после переключения в AHCI XP не грузится: драйверов нет. Если взять драйвера, и, как советуют в интернете, привязать их силком к контроллеру - то... как повезёт: у кого-то грузится, у меня "не берёт", мол "куда ты это пихаешь, тут такого железа вообще нету".
     А если ставить XP с "фирменного" дистрибутива при включённом AHCI - то драйвера надо подсунуть при установке, нажав F6. Подсунуть - на 3.5" дискетке, ага! Без вариантов: никаких вам флэшек и сидюков, или давай дискету, или "у вас тут вообще дисковых устройств нету". А у меня даже контроллера-то дискетного в чипсете нет (и не вспоминайте про USB-дисководы!) :-)
     Поскольку AHCI хотелось (NCQ там, "и вообще"), проблема решилась процедурой "интеграции драйверов в дистрибутив", но просьба вставить дискету - порадовала (я до последнего момента верил, что всё-таки можно будет подсунуть флэшку) :-)

     2. Также держу в руках артефакт. USB3.0 PCI-e 1x контроллер. Спокойно работающий под win7 (внешний USB 3.0 HDD через него увидел и прочитал), а под XP (на другой машине, правда) - не обнаруживающийся вообще, даже как "неизвестное устройство", как будто и нет в слоте ничего. Может, конечно, слот битый, но странно как-то. На неделе продолжу эксперименты...

     3. Также за эти праздники "поставлена на боевое дежурство" в новый компьютер PCI платка (четырёхканальный захват видео). Два дня из трёх понадобилось на то, чтобы "сделать чтобы не висло". А чтобы не висло - оказалось нужным заменить один блок питания на другой почти такой же (450Вт Noname Vento на 450Вт FSP), навесить на шины +5В и +12В пучок кондёров, и переставить плату из второго PCI слота в третий. Откат любого действия (отцепляем пучок кондёров, или возвращаем оригинальный БП, или переставляем плату взад) - зависание (без "синьки", просто всё замерзает) за время от 15 минут до 2-3 часов, если вынуть плату совсем - ничего не виснет. При этом первые два пункта (БП и кондёры) - чётко "нехватка питания", но блин - это ж сопливая PCI платка с четырьмя небольшими чуть тёплыми микросхемами без радиаторов, какое нафиг "питание", особенно в таких масштабах?!

     4. В процессе "переливания файлов из пустого в порожнее" обнаружил 2.5 гигабайта несвежих логов прокси (логи компактные, один запрос - одна строка). "Они там от основания мира что-ли" - подумал я, и посмотрел повнимательнее. Оказалось, всего за три месяца.
     А всего-то - я когда-то по причинам историко-политического характера завернул торрент, чтобы он ходил через прокси, и он при относительно небольшом суммарном трафике, поназапрашивал такое количество HTTP CONNECT (около 150000 в сутки), что логи как-то резко стали большими... :-)

     5. А вот перевод квартирной локалки на гигабит эзернет - порадовал. Всех делов - снять со стены 100Мб свитч, повесить гигабитный (контроллеры в компьютерах уже интегрированные, старая cat5e проводка вполне подошла) - и вуаля: скорость сетевого диска теперь слабо отличается от локального (а ещё характерный "треск" раздаётся теперь в другом месте, где меня нет) :-) Есть небольшие радости в этой современной компьютерной технике :-)


(Читать комментарии) - (Добавить комментарий)


[info]dibr@lj
2012-03-11 15:58 (ссылка)
> когда потом придется двадцать раз внести "мелкое" изменение, то, возможно, подумать, скомпоновать их в один блок и волевым усилием сменить платформу на более удобную

В таком виде это нужно было делать пятнадцать лет назад, когда там кроме фидошки ничего по сути и не было (собственно, я тогда поразглядывал какое-то husky... и забросил, ввиду лени). Сейчас - уже "наслоилось", и мотивации ОДНАЖДЫ вместо вкручивания мелкого винтика, разрушить всё до фундамента и выстроить заново из других кирпичей - взяться вроде бы неоткуда.

Единственный реальный вариант - когда понадобится прикрутить очередной винтик, поставить для него отдельную машинку рядом, и завести там ту же FreeBSD. Тогда, глядишь, лет через N-дцать постепенно всё и мигрирует туда - по мере отмирания старого софта.

> У меня, например, дома локалка на примерно 7 компов. [...]
> я не говорю, что всем и всегда надо так поступать, я говорю что иногда лучше потратить 8 часов сегодня, а не 10+ раз по часу в случайные моменты в будущем.

Отличный аргумент! Будет - когда мне расскажут, каким боком хоть что-то из вышеперечисленного касается того чёрного ящика без клавиатуры и дисплея, который сейчас тихо гудит вентиляторами в коридоре. Я вот правда не понимаю - "пользователь" на нём один, это я (и больше никого я туда не пущу, да и не надо это никому - "сервер не должен быть виден"), вирусов не было вообще ни разу (это как-то вообще за пределами моего понимания: у меня на рабстанции за всё время было два или три вируса, и те сажались "по недосмотру" или "из авторана" и по свежим следам вычищались, а откуда вдруг "вирус на сервере", в который флэшки не суют, левый софт не запускают, в интернет почти не ходят, да и вообще заходят раз в месяц и то не каждый месяц - я вообще не понимаю), антивирус на сервере я считаю вредоносной программой (объяснить, или не надо?), а то, чего нет - не может "интерферировать"... что там ещё? Всё? Так вот - у меня этого нет и так :-)

> иногда лучше потратить 8 часов сегодня, а не 10+ раз по часу в случайные моменты в будущем.

Вот ты лично - уверен, что за 8 часов проинсталлируешь новую ОС, развернёшь новый, никогда ранее тобой не виденный, софт, настроишь его, и перенесёшь конфигурацию со старого софта? Тогда ты крут... но в таком случае - откуда у такого крутого админа - вирусы на сервере??

Я уверен, что я за это время... ну, поставлю софт. И зароюсь в маны и конфиги. Через пару дней может быть что-то зашевелится. Вот вирусы - увы, не практикую :-)

> а вместо бзди на ПЦ советую аппаратный асусовский роутер с линуксом внутри

/facepalm.jpg
Не, ну правда. У меня четвёртый пень с трудом справлялся со всем тем, что я на него навешал, а мне предлагают роутер - только потому что он "проще в администрировании"?

> у меня, например, стоит старый асусовский wl500gP. Из обслуживания - один раз заменил в его блоке питания высохшую емкость на пару (электролит плюс керамика) нормальных.

В этом случае идеален тупой свитч. Администрировать не надо, вирусы не ловит, "вычищать" ничего не надо, ну и так далее по списку. А что не умеет нифига - так это, судя по всему, настоящему линуксоиду и не требуется, главное что "не имеет винчестера и не греется" :-)

Ну, и - картина "вычищание вирусов с сервера" (ибо вирусы на рабстанциях - сервер не волнуют, а речь чётко шла о "вирусах") меня очень, очень сильно впечатлила, даже больше чем совет заменить двухъядерный тазик с двухтерабайтным винтом на роутер-мыльницу. Можно, я это даже комментировать не буду, и вернусь в свой уютный мирок? В котором вирус на сервере - ЧП, которое я не допускал ни разу за все эти 15 лет, а создание системы DVR на пять камер (с motion detection, архивацией в h.264, и ещё по мелочи) на роутере-мыльнице - страшный сон, который проходит, как только открываются глаза?...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nicka_startcev@lj
2012-03-11 16:28 (ссылка)
вирус на сервере - элементарно. Как и на флешке/фотоаппарате, на сетевом сторадже может лежать зараженный файл, если к этой шаре имеют доступ на запись малоквалифицированные пользователи. Или если в сети есть свежий червь, а на той машине не стоят свежие апдейты от производителя ос.

>А что не умеет нифига

ланы/ваны умеет, авторизацию умеет, _аппаратный_ на уровне чипа (а не на пуллинге центральным процесором) роутинг пакетов - умеет.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2012-03-11 16:50 (ссылка)
"На сетевом сторидже" может лежать что угодно, хоть подборка несвежего нигретянского гей-порно. Серверу-то до этого какое дело - он ведь сам содержимое шары не запускает?
То есть _формально_ - да, это "вирус на сервере" (на жёстком диске, подключенном к серверу). Фактически - я не вижу в этом проблемы, то есть вообще. "Не раздавать в шару чего не нужно" (чтобы юзер или активный вирус на рабстанции не записался в какой-нибудь автозапуск на сервере) - вполне достаточно для спокойного сна.

И ещё - что-то тривиальные мысли сразу в голову не приходят. А что, замена винды на линукс на сервере каким-то волшебным образом спасёт от "вируса на сетевом сторидже"? Если неопытный пользователь может записать вирус на виндовую шару - что помешает ему записать его же на линуксовую шару? Самому-то серверу, как я уже говорил - пофиг что у него на шарах лежит, он их не запускает...

Червь - да, есть такая угроза. Один раз даже видел в действии (не у себя), впечатлился :-) Вот только сервер всё-таки апдейтится, пусть и не очень регулярно, но достаточно часто, а червей, которые реально способны "пробить" винду сами, без помощи пользователя, я что-то уже несколько лет не вижу...

> ланы/ваны умеет, авторизацию умеет, _аппаратный_ на уровне чипа (а не на пуллинге центральным процесором) роутинг пакетов - умеет.

"Не на чём", простите? Я такого термина не знаю, гугль какую-то лабуду выдаёт. Если речь о "поллинге" - то добро пожаловать в XX век: именно в конце прошлого века все устройства, сколь либо массово подающие данные в компьютер, наконец-то обзавелись прерываниями :-)
Ну, и я всё равно не понимаю: чем так плох программный роутинг пакетов "большим чёрным пентиумом", что предлагается снизить его нагрузку на 1%, прикрепив к нему скотчем коробочку с "аппаратным" (а не пофиг ли, как она там роутит, если внутренности снаружи всё равно не видны) роутингом? И кстати - а что, NAT он тоже "аппаратно" делает? В квартирной сети это поболее востребовано, чем роутинг (чего там роутить-то, засунуть всех в один сегмент, и пусть свитч их свитчует - а вот внешний IP один, без NAT плохо).

(Ответить) (Уровень выше)


(Читать комментарии) -