Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
34.86 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

Хакер

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.ProBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис.1. Диспетчер задач, вкладка Processes

мощностипроцессора,быстродействиядисковойподсистемыит.д.Вслепую нетак-топростоопределить,гдепроисходитзатыкикакойименнокомпонент внаибольшейстепениответственензапроизводительность.Авотсобравданныесосчетчиковпроизводительностизанекотороевремя(например,задень илинеделю),мысможемточновыяснить,чтопроисходитвнутрисервера.

ГоворитьмыбудемобанглийскойверсииWin2k3(другойвраспоряжении мыщъх’апростонет),приводя«родные»названиясчетчиков.Пользователямрусскойверсиипредлагаетсясыгратьвувлекательнуюигру«Как этоназывалосьворигинале?!»,ночитателиунассосмекалкой,иктаким передрягамимнепривыкать,темболеечтобольшинствоназванийпереведеноправильноиобратныйпереводбольшойпроблемынесоставит.

СчеТчики ПРОиЗВОДиТельНОСТи В ДиСПеТчеРе ЗАДАч

Диспетчерзадач,вызываемыйпо<Alt-Ctrl-Del>или<Ctrl-Shift-Esc>,

позволяетотображатьпарудесятковважнейшихсчетчиковпроизводительностидлякаждогоизпроцессов(вкладкаProcesses,смотририс.1). Добавление/удалениесчетчиковосуществляетсячерез«ViewSelect Columns».КнаиболееполезнымсчетчикамотносятсязагрузкаЦП(CPU Usage)иобъемвиртуальнойпамяти,потребляемойпроцессом(Memory Usage),чтопозволяетбыстронаходитьпроцессы,жрущиеЦПипамять. ВкладкаPerformance(смотририс.2)рисуеткрасивыеграфикизагрузки ЦПиобщегоколичествавыделеннойпамяти,чтовместесдругойважной информациейпозволяетоценитьсреднюю/мгновеннуюнагрузкунасервер.Соответственно,вовкладкеNetworkingможнонайтиграфикобщей загруженностисетиповсеминтерфейсам(смотририс.3).

СчеТчики ПРОиЗВОДиТельНОСТи В кОНСОли УПРАВлеНиЯ

«Мониторпроизводительности»,вызываемыйчерез«StartAdministrativeToolsPerformance»(perfmon.msc),представляетсобой основноесредстводляработысосчетчикамипроизводительности,отображаяихзначенияввидеграфика(смотририс.4),диаграммы(смотри рис.5)илитаблицы(смотририс.6).Такжеимеетсявозможностьзаписи историизначенийвлог-файл,созданияисториисобытийилиопределен- нойреакциинадостижениесчетчикомнекоторогопорога(например, запускапрограммыилиотправкиуведомленияадминистратору).Всеэти действияосуществляютсячерезветвьPerformanceLogs-n-Alerts,располо- женнуювлевомокне.Интуитивнопонятныйинтерфейснесоздаетникакихпроблем,и«Мониторпроизводительности»осваиваетсязанесколько минутдажебезчтениядокументации.

ОБЗОР ВАжНейшиХ СчеТчикОВ ПРОиЗВОДиТельНОСТи

Счетчиковпроизводительности—тысячи,ирассказатьокаждомизних нетникакойвозможности.Некоторуюинформациюможнонарытьв

Рис.4. «Монитор производительности», отображение счетчиков в виде графика

базезнанийиMSDN,однакоMicrosoftдаетлишьформальноеописание, невдаваясьвподробности.Междутеминтерпретацияпоказаний—дело непростое,итутестьмножествотонкостей,незнаниекоторыхможетпривестикгрубымошибкам.Мыщъхотобралсдесятокважнейшихсчетчиков ирастерзалихвпухипрах.

Processor: % Processor Time

Отображаетзагрузкупроцессоравпроцентах,номалоктоизадминистраторовзадумывается,впроцентахотчего.Каждомупотокуотпускается определенныйквантвремени,поистечениикоторогопланировщикпринудительноотберетунегоуправление,передаваяегопотоку,ближевсех стоящемувочереди(планировкаочередипотоков—отдельнаяпесня,ив различныхсистемахонареализованапо-разному).Однакопотокможет вернутьнеизрасходованныйостатоккванта,обратившиськпланировщи- ку,например,черезAPI-функциюSleep(0).

СчетчикProcessorTimeнасамомделеизмеряетнезагрузкупроцессоракак таковую,аготовностьпланировщикапредоставитьуправлениепотокупо первомутребованию.Правильноспроектированнаяпрограммапрактическинезагружаетпроцессор,дажееслизанимаетсятакими«тяжелыми» операциями,каксжатие,криптографияит.д.Акриваяпрограммадает 100%-нуюзагрузкунезависимоотмощностипроцессора(дляэтогоей достаточнопростовойтивдлинныйцикл—ибаста).

Таким образом, 100%-ная загрузка ЦП указывает на наличие одной или нескольких кривых программ. Переход на более мощный ЦП не решает проблемы, и тормоза остаются. В таком случае необходимо найти процесс, который грузит ЦП (удобнее всего это делать через диспетчер задач или систему Alert «Монитора производительности»), и убить его, после чего деинсталлировать соответствующее ему приложение и воспользоваться более корректно написанным программным пакетом. Если же это невозможно, остается либо мириться с тормозами, либо приобрести многопроцессорную машину, тогда загрузка со 100% сразу упадет до 50%. Кстати говоря, на HT-процессо- рах 50%-ная загрузка равносильна 100%, поскольку загрузка одного виртуального процессора парализует работу другого со всеми вытекающими отсюда последствиями.

Внормальныхжеусловияхсредняязагрузкапроцессоранедолжнапревышать85%.Впротивномслучаенеобходимонаращиватьчастотупроцессора/системнойшины/оперативнойпамятиилижеувеличиватьколичествокамней,естественно,убедившись,чтомыимеемделосреальной,ане липовойзагрузкойЦП,вызваннойкривымПО.Аубедитьсявэтомочень просто:слегкатормозимпроцессор(большинствосовременныхматерей позволяетэтоделать«налету»)исмотрим:еслизагрузканеизменилась, значитвиноватоПОиЦПтутсовсемнепричем.

xàêåð 11 /107/ 07

149

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКЕР.PRO

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.2. Диспетчер задач, вкладка Performance

System: Processor Queue Length

Длинаочередипотоков,простаивающихвожиданиипроцессора.Естественно,чемдлиннееочередь,темнижепроизводительность.Еслисреднестатистическаядлинаочередипревышает10потоков,имеетсмыслзадуматьсяодобавлениивсистемуновыхпроцессоров,чтобыповыситьпроизводительность. Болеедешевоерешение—увеличитьтаковуючастоту,чтобыочередьпотоков продвигаласьбыстрее,аеедлина,соответственно,сокращалась.Однакооно работаеттольковтехслучаях,когдавсепрограммыделятсянеиспользованнымиквантамивремени,впротивномслучаедлинаочередиостанетсяпрежней, посколькудлительностьквантанезависитоттактовойчастоты.

Server Work Queues: Queue Length

Рабочаяочередьсервера.Чемкороче,темлучше.Еслидлинаочереди меньшечетырехзапросов,серверначинаетреальнотормозить,время откликаувеличиваетсяиклиентычувствуютсебякрайненекомфортно. Узкимместомможетбытьипроизводительностьдисковойподсистемы,и недостаточнаячастота(иликоличество)процессоров,инехваткаоперативнойпамяти,поэтомуоднозначныхрекомендацийпоустранениюэтой проблемы,увы,несуществует.

Memory: Page Faults/Sec

Количествоотказовстраницвсекунду.«Отказомстраницы»называется ситуация,когдапроцессуказываетнастраницувиртуальнойпамяти, отсутствующуюврабочемнаборе.Внекоторыхруководствахвстречается утверждение,чтоприизбыткеоперативнойпамятиотказовстраницвообщеневозникает,ноэтонеболеечемрасхожеезаблуждение.

Призапускеисполняемогофайла(подключениидинамическойбиблиотеки)системагрузитеговпамятьнесразу,апонеобходимости,частями. Припервомобращениикстранице(длинакоторойвбольшинствеслучаев равна4Кб)возникаетfaultисистемасчитываеткусочекфайлавпамять. Памятьподстектакжевыделяетсянесразу.Навершинестекарасполагаетсяспециальная«сторожевая»страница,приобращенииккоторой генерируетсяотказ,указывающийнанеобходимостьвыделениядополнительногостековогопространства.

Такимобразом,наличиеотказовстраниц—этонетольконормальное,но ивообщенеизбежноеявление,котороеможетбытьнесвязаносфайлом подкачки.Однакоесливсекундунаблюдаетсяпятьилиболееотказов,то, скореевсего,мыимеемделосхроническимнедостаткомоперативной памяти,увеличениеобъемакоторойпозволитсущественноповыситьпро-

Рис.3. Диспетчер задач, вкладка Networking

изводительность.Каквариант—можнооптимизироватьфайлподкачки, нообэтомниже.

Memory: Pages/Sec

Интенсивностьобменасфайломподкачки(страницвсекунду).Сюдаже входятфайлы,проецируемыевпамять(скоторымиработаютнекоторые программы),исамиисполняемыефайлыидинамическиебиблиотеки, трактуемыекакфайлыподкачки,доступныетольконачтение.Следовательно,дажееслиотключитьподкачку,установивегоразмервноль,этот счетчиквсеравнопродолжитупорноработать.Такчтотрактоватьего показаниянужносумом.Еслиинтенсивностьобменасфайломподкачки превышает10страницвсекунду,дляувеличенияпроизводительности необходимолибодобавитьоперативнойпамяти,либоперенестифайл подкачкинаотдельныйдиск,желательноподключенныйкдругомуIDEконтроллеру(поумолчаниюфайлподкачкирасполагаетсянасистемном диске,чтонеестьхорошо).Приинтенсивностиобменав60иболеестраницвсекундурекомендуетсяиспользоватьпрограммныйилиаппаратный RAIDуровня0.Чембольшедисковмызадействуем,тембыстреебудет происходитьобменданными.Какминимумнеобходимовыделитьодин дискдлякаждых60страниц.Тоестьприинтенсивностиобменав180 страницвсекундунамнеобходимопокрайнеймеретридиска,накоторых будетразмещентолькофайлподкачкиибольшеничего.Однакопроизводительностьвсеравнобудетоставатьсянизкойдотехпор,покамыне установимдополнительнуюоперативнуюпамять,такчтоRAID-массив можнорассматриватьлишькаквременноерешениепроблемы.Исключениесоставляютслучаи,когдатребуемоеколичествооперативнойпамяти простонеподдерживаетсяжелезом(точнее,ееподдержкаобходится чересчурдорого)илучшемиритьсяснизкойпроизводительностью,чем вкладыватьогромныесредствавбыстродействие.

Memory: Available Bytes

Количестводоступнойфизическойпамятивбайтах.Вомногихруководствахутверждается,чтоеслифизическойпамятинет,значитвсеуходитв свопимыимеемтормоза,аеслиналичествуетхотябынесколькодесятков мегабайт,значитфизическаяпамятьещенеисчерпана,подкачкане используетсяисервершуруетскрейсерскойскоростью.Насамомделеэто оченьбольшоеупрощение.Допустим,мыимеем1ГбRAM,апотребности серверасоставляют10Гб.Вопрос:какоеколичествофизическойпамяти покажетсчетчик?Ответ:возможно,инольбайт,нокрайнемаловероят-

150

xàêåð 11 /107/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>>

ХАКЕР

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.PROBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис.5. «Монитор производительности», отображение счетчиков в виде диаграммы

но.Предположим,чтопроцессосвободил10Мб(например,потомучтоот сервераотключилсяклиент).ЕсливсяэтапамятьразмещаласьвRAM,то количествосвободнойфизическойпамятиувеличитсяна10Мб,притом что~9Гббудутболтатьсявфайлеподкачки.Еслисистемаинтенсивно выделяет/освобождаетбольшоеколичествопамяти,топоказанияэтого счетчикамогутдостигать25%иболееотобщегообъемафизической памяти,ноэтоещенезначит,чтопамятидостаточно,инужносмотреть наколичествообращенийкфайлуподкачки,чтоописановыше.

Memory: Committed Bytes

Общееколичествовыделеннойпамятивбайтах.Еслионопревышаетобъемфизическойпамяти,частьстраницвытесняетсявфайлподкачки,что, какправило,приводиткснижениюпроизводительности.Есликоличество выделеннойпамятинепревышаетразмерфизической,тосерверлетает нафорсаже,иникакихособыхкомментариевтутнетребуется.Ноэто идеализированнаяситуация,ивреальнойжизнипамятисплошьирядом оказываетсянедостаточно.Сампосебеобъемвыделеннойпамятиниочем неговорит!Вытеснениередкоиспользуемогокода/данныхвсвоппракти- ческинеснижаетпроизводительности,итутопять-такинужносмотретьна интенсивностьобменасфайломподкачки.

PhysicalDisk: Current Disk Queue Length

Длинаочередизапросовначтение/записькфизическомудиску.Чемкороче,темлучше.Есливочередипостояннонаходитсядваиболеезапросов, тоэтонеестьхорошоидляувеличенияпроизводительностирекомендуетсяобзавестисьпрограммнымилиаппаратнымRAID’омилииспользовать болеебыстрыедиски.Каквариант—можнореорганизоватьразмещение программиданных,распределивихпоразнымразделам,илипросто запуститьдефрагментатор.

PhysicalDisk: % Disk Time

Времязанятостидиска,втечениекоторогоонобрабатывалзапросына чтение/запись,впроцентах.Еслизагруженностьдискадостигает100%, тообразуетсяконкретныйзатор,требующийпереходанаRAID-массивы, использованияболеебыстродействующихвинчестеровилидефрагментации.Загрузкаменее80%считаетсявполнедопустимой.

LogicalDisk: % Free Space

Объемсвободногодисковогопространствавпроцентах.Еслидискзапол-

Рис.6. «Монитор производительности», отображение счетчиков в виде таблицы

няетсяна80%иболее,файловаясистемаNTFSвсилусвоихконструктивныхособенностейначинаетконкретнотормозить,аеслисвободногопространстваостаетсяменее10%,происходитнеобратимаяфрагментация $MTF-файла,хранящегоданныеобовсехостальныхфайлахнадиске.То естьеслидискхотябыоднаждыокажетсязаполненнымболеечемна90%, рекомендуетсяскопироватьданныенадругойноситель,отформатировать егоивернутьданныеобратно.Или,каквариант,установитьв«Мониторе производительности»Alertнаэтотсчетчикипризаполнениидискана80% начатьудалятьвременныефайлы,кэшилиоправлятьsmsсуведомлением.

Network Interface: Bytes Total/sec

Загруженностьсетевогоинтерфейсавбайтахвсекунду.Чемближеона подбираетсякегопропускнойспособности,темхужедляпользователей. Ксожалению,втакойситуацииоченьмалочтоможнопредпринять(переходсо100 мегабитногоEthernet’aнагигабитныйнепредлагать).Разве чтопересмотретьполитикудокументооборота,напримерперенестичасть файловссерверанарабочиестанцииилиустановитьещеодинсервер,но этоужетребуетсерьезныхвложений.

Network Interface: Output Queue Length

Длинаочередизапросовксетевомуинтерфейсу.Видеале,никакойочере- дибытьнедолжно,но1-2запросасчитаютсявполнеприемлемыми,авот дальнейшийросточередивызываетощутимоепадениепроизводительности.Причинойможетбытьинедостаточнаяпропускнаяспособность сетевыхканалов,имедленнаяобработказапросовнасервере,обусловленнаятормознутостьюпроцессора,нехваткойпамятиит.д.Такчтоуниверсальныхрешенийтутнет,инужносмотретьнаостальныесчетчики производительности,описанныевыше.

Заключение

Работа со счетчиками производительности требует глубоких знаний в области устройства операционной системы, и слепое следование рекомендациям обычно приводит к неоправданному наращиванию аппаратных мощностей, а сервер все равно продолжает тормозить.

Обидно? Обидно! Но что поделаешь. Интерпретация показаний счетчиков производительности редко бывает однозначна, и, прежде чем принимать какое-то решение, рекомендуется проштудировать «Внутреннее устройство Windows» Руссиновича и «Современные операционные системы» Таненбаума.z

xàêåð 11 /107/ 07

151

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Хакер.Pro

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

телефоннуюсеть

asterisk: самый попУлярный сервер ip телефонии

Несмотря на развитие различных систем обмена информацией, таких как электронная почта и службы мгновенного обмена сообщениями, обычный телефон еще долго будет оставаться самым популярным средством связи. Ключевым событием в истории телекоммуникаций и интернета стало появление технологии передачи голоса поверх IP-сетей, поэтому за последние годы изменилось само понятие телефона. Использование VoIP современно, удобно, дешево, так как можно объединить удаленные офисы, даже не прибегая к услугам операторов телефонной связи. Какие еще доводы нужны для того, чтобы поднять свой сервер IP-телефонии?

ПРОекТ ASTeriSk

Поадресуen.wikipedia.org/wiki/List_of_SIP_softwareнаходитсяодиниз самыхбольшихсписковсерверовиклиентовSIP(протоколустановления сессиидляработыпользовательскихсеансов,включающихпередачу видеоданныхиголоса).Вэтомсписке10серверов,распространяемых подсвободнойлицензией,ноадминистраторычащевсегопредпочитают AsteriskIP-PBX(www.asterisk.org).Этотпроектвозник,можносказать, случайно—егосоздательМаркСпенсер(MarkSpencer;кстати,Gaim/ Pidginтожеегорукдело)неимелдостаточноденег,чтобыкупитьдлясвоей компанииобычнуюАТС,ипотомувынужденбылсоздаватьегософтовую реализацию.Открытостькодаспособствовалабыстромуроступопулярностиновогопродуктакаксредиразработчиков,такисредипотребителей.ВыпускаетсяAsteriskподдвойнойлицензией.КромеGNUGPLвозможносозданиезакрытыхмодулей,содержащихпроприетарныйкод.Такой подходпозволяетвключитьподдержкузакрытыхкодековиоборудования. Несмотрянасвоюсофтовость,AsteriskобладаетвсемифункциямиклассическойАТСидажебольше.Воттольконекоторыеизних:центробработки вызовов,голосоваяпочта,возможностьпроведенияконференций,чтов

итогеделаетегомощнойилегкорасширяемойплатформойдлясоздания телекоммуникационногосервисалюбогомасштаба.Поддерживаются практическивсепопулярныепротоколыIP-телефонии(SIP,H.323,MGCP, Skinny/SCCP,GoogleTalk,Skype),собственныйIAXинекоторыедругиедля работывидеоифакса.КромеобслуживаниялокальныхклиентовAsterisk умеетпередаватьголосовойтрафикмеждусерверами.Естьмодулидля сопряжениясаналоговыми(FXO/FXS)ицифровыми(Т1/E1)линиями. Еслифункциональностинедостаточно,длянаписаниядиалпланаможно воспользоватьсясобственнымязыкомAsterisk,создатьмодульнаCи либоиспользоватьуниверсальныйинтерфейсинтеграциисвнешними системамиобработкиданныхAGI.Чтобыупроститьразработкумодулей, предназначенныхдлярешенияразличныхзадач,предложенонесколь-

коуровнейAPI(channel,application,codec,fileformat).Поэтомуновые возможности(например,кодеки)появляютсявAsteriskоченьбыстрои ихвнедрениепроходитбезболезненно.Кромеэтого,модульностьAsterisk позволяетадминистраторамподключатьтольконеобходимыефункции, модифицируясистемуподсвоинужды.СерверAsteriskможноустановить накомпьютерах,работающихподуправлениемGNU/Linux,Free/Net/

152

xàêåð 11 /107/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

Хакер

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.ProBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Пакеты Ubuntu

OpenBSD,MacOSX/Darwin,Open/Solaris.Клиентыдоступныпракти-

ческидлявсехсистем,втомчислеиWindows.Исключениесоставляют драйверыZaptelиISDN-устройств,реализациикоторыхпокаестьнедля всехплатформ.

УСТАНОВкА ASTeriSk

Ксожалению,четкихуказанийнасчетаппаратныхсредствдатьневоз- можно—слишкоммноготонкостейинюансов,поэтомузапримерными конфигурациямикомпьютеровотсылаюнастраницусайтаvoip.rus.net «ПроизводительностьAsterisk-систем»(voip.rus.net/tiki-index.php?page =Asterisk+dimensioning).Еслитвояцель—знакомствосAsterisk,можно использоватьодиниздистрибутивов,вкоторыхужеимеетсянастроенный иполностьюготовыйкработесервер:AsteriskNow(www.asterisknow.org), Trixbox(www.trixbox.org),VoIPonCD(www.voiponcd.com).

Asterisk присутствует в репозитариях пакетов большинства дистри-

бутивов. Так, в Ubuntu команда sudo apt-cache search asterisk выдает приличный список пакетов, после установки которых сразу же можно приступать к настройке. Но установка из репозитария имеет один минус — как правило, в нем версия Asterisk прилично отстает от текущей, которую можно скачать с официального сайта. Поэтому рассмотрим универсальный способ установки на примере того же Ubuntu, хотя все сказанное (за редким исключением) относится и к остальным дистрибутивам.

Устанавливаемпакеты,необходимыедлякомпиляции:

$ sudo apt-get install build-essential automake autoconf bison flex libtool libncurses5-dev libssl-dev

Крометого,настоятельнорекомендуетсяустановитьбиблиотекуlibpri, дажееслиненужнаподдержкаPrimaryRateISDN(первичныйтипцифровойсетисинтеграциейуслуг).Этоможносделатьлибочерезрепозитарий: sudoapt-getinstalllibpri1.2,либоиспользуяисходныетексты:

$ wget -c downloads.digium.com/pub/libpri/libpri- 1.4-current.tar.gz

Компиляциябиблиотекистандартна,поэтомунебудемнаэтомостанавливаться.

ТеперьскачиваемссайтаисходныетекстыAsteriskиконфигурируем:

$ wget -c downloads.digium.com/pub/asterisk/asterisk- 1.4.11.tar.gz

$ tar xzvf asterisk-1.4.11.tar.gz $ cd asterisk-1.4.11

$ ./configure --prefix=/usr

Сборка zaptel

Поокончанииработыскриптавконсолимыувидимэмблемупроектаи некоторуюинформациюонастройках.

$ make

$ sudo make install

Примечание:еслипроизводитсяустановкаверсии1.2,тодляподдержки форматаmp3передкомандойmakeследуетввести«makempg123»,версия 1.4уженикакнереагируетнаэтукоманду.

Послекомпиляции,помимовсегопрочего,будутустановленыследующие исполняемыефайлы:

1./usr/sbin/asterisk—демонсервераAsterisk,которыйиобеспечивает всюработу;

2./usr/sbin/safe_asterisk—скриптдлязапуска,перезапускаипроверки работысервераAsterisk;

3./usr/sbin/astgenkey—скриптдлясозданиязакрытогоипубличногоRSA ключейвформатеPEM,которыенеобходимыдляработыAsterisk.

Чтобыустановитьшаблоныконфигурационныхфайловидокументацию, набираем:

$ sudo make samples

Примерыконфигурационныхфайловбудутскопированыв/etc/asterisk. Есливэтомкаталогеуженаходятсяфайлыконфигурации,онибудутпереименованыспрефиксом«.old».Длясборкидокументациипотребуется пакетdoxygen;еслиегонет,устанавливаем:

$ sudo apt-get install doxygen $ sudo make progdocs

Аналогичноставимипакетсрасширениямиasterisk-addons(этотшагне обязательный,егоможносмелопропустить).Многиемодули,входящиев составэтогонабора,являютсяэкспериментальными.Ихстоитустанавли- вать,толькоеслитребуетсязаписьинформациивБД,поддержкаmp3-фай-

ловипротоколаooh323c(ObjectiveSystemsOpenH.323forC):

$ wget -c downloads.digium.com/pub/asterisk/asterisk- addons-1.4.2.tar.gz

$ tar xzvf asterisk-addons-1.4.2.tar.gz $ cd asterisk-addons-1.4.2

$ ./configure; make; sudo make install; sudo make samples

УстановкаAsteriskзакончена.Сначаларекомендуетсязапуститьсерверв отладочномрежимеипросмотретьвыводнаналичиеошибок:

xàêåð 11 /107/ 07

153

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКЕР.PRO

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конфигурируем Asterisk

$ sudo /usr/sbin/asterisk -vvvgc

Еслиполучаемсообщение«AsteriskReady»иприглашениеконсолиуправления,значитвсевпорядке.Выходим:

*CLI> stop now

Теперьможнопереходитькдальнейшейнастройке.

Настройка поддержки интерфейсных карт

Если планируется подключение сервера Asterisk с помощью специальных интерфейсных плат к обычным телефонным сетям, следует позаботиться о наличии соответствующих драйверов, реализованных в виде модуля ядра. Но даже если таких устройств в компьютере нет, эти драйверы все равно рекомендуется установить. Дело в том, что во всех Zaptel-устройствах есть таймер, и для полноценной работы сервера IP-телефонии он является необходимым. Но если Zaptel-устройства под рукой нет, для его эмуляции можно использовать специальный драйвер

— ztdummy.

Изрепозитарияустанавливаемпакетыzaptel,zaptel-sourceисобираем модулиподсвоюсистему:

$ sudo apt-get install zaptel zaptel-source $ sudo module-assistant prepare

$sudo m-a -t build zaptel

В/usr/srcпоявитсяпакетzaptel-modules-*_i386.deb,устанавливаемегос помощьюdpkg.Послеэтогопроверяемработумодулейядра:

$ sudo depmod -a

$sudo modprobe ztdummy

Иеслинужнаподдержкаустройств:

$ sudo modprobe zaptel $ sudo modprobe wcfxo

Чтобыобеспечитьихавтоматическуюзагрузку,выполняемследующую команду:

$ echo ‘ztdummy\nzaptel\nwcfxo’ >> /etc/modules

СоздаемправиладляUDEV:

Информация о коннекте клиента

$sudomcedit/etc/udev/rules.d/51 zaptel.rules

KERNEL="zapctl", NAME="zap/ctl"

KERNEL="zaptimer", NAME="zap/timer"

KERNEL="zapchannel", NAME="zap/channel"

KERNEL="zappseudo", NAME="zap/pseudo"

KERNEL="zap0-9*", NAME="zap/%n"

ТакжеможноиспользоватьисходныетекстыилиCVS-версиюдрайвера. Присамостоятельнойкомпиляциипонадобятсязаголовочныефайлыядра (илиисходныетексты):

$ sudo apt-get install linux-headers-`uname -r`

Создадимсимволическуюссылку,чтобыAsteriskнашелисходникиядра:

$ sudo ln -s /usr/src/linux-headers-2.6.20-15 generic /usr/src/linux-2.6

Теперьполучаемпоследнююверсиюдрайверов:

$ cd /usr/src

$ wget -c downloads.digium.com/pub/zaptel/zaptel- 1.4 current.tar.gz

Компилируемиустанавливаем:

$ tar xzvf zaptel-1.4 current.tar.gz $ cd /usr/src/zaptel-1.2.17.1

$ ./configure $ make

$sudo make install

Ичтобывручнуюнесоздаватьконфигурационныефайлы:

$sudo make config

Послеэтойкомандыбудетсозданскриптдляавтоматическогозапускамодулей,

входящихвсоставZaptel,иконфиг/etc/default/zaptel(или/etc/sysconfig/ zaptel),вкоторомбудетуказано,какиемодулинеобходимозагружать.Рекомендуювэтомфайлеоставитьтольконеобходимое.Пробуемзагрузитьмодуль:

$ sudo modprobe ztdummy $ lsmod | grep ztdummy

154

xàêåð 11 /107/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

ztdummy

6184 0

zaptel189860 1 ztdummy

Всенормально.Послеустановкивсистемепоявятсяещедвафайла:

1./etc/zaptel.conf—описываетконфигурациюаппаратногообеспечения;

2./etc/asterisk/zapata.conf—настройкисервераAsteriskдляработы драйвераZap-канала.

Подробныеуказаниядлявсевозможныхустройствданывдокументации. Нарусскомпоэтомуповодуможнопочитатьвдокументе«Конфигурация драйвераядраZaptel»(voip.rus.net/tiki-index.php?page=Asterisk+config +zaptel.conf).Нонаэтомнеостанавливаемся,впередиунасещемного работы.Посленастройкипроверяемработукомандойztcfg-vv.

Регистрация пользователей

Еслитеперьпосмотретьвкаталог/etc/asterisk,можнообнаружить большоеколичествофайлов.Норазмержурнальнойстатьипозволяетнам познакомитьсятолькоснекоторымиизних.Так,вasterisk.confуказаны каталоги,которыебудетзадействоватьAsteriskвовремяработы,расположениеивладелецсокета,используемогодляподключенияудаленной консолиуправления,атакжедефолтныепараметрызапускасервера.Некоторыекаталогивовремяустановкинесоздаются,этопридетсясделать вручную:

$ sudo mkdir -p /var/{run,log,spool}/asterisk

$ sudo adduser --system –-no-create-home asterisk $ sudo addgroup --system asterisk

Добавимпользователяasteriskвгруппуaudio:

$ sudo adduser asterisk audio

$ sudo chown asterisk:asterisk /var/run/asterisk

$ sudo chown -R asterisk:asterisk /var/{log,spool}/ asterisk

Дальшенасинтересуетфайлsip.conf,гдеопределяютсясерверыиклиенты SIP,скоторымибудетдружитьнашAsterisk.Каждыйизнихпредставленв файлеотдельнымблоком,которыйначинаетсясоглавления,заключенноговквадратныескобки.Параметроввsip.confдовольномного,ограни- чимсялишьдобавлениемSIP-аккаунта:

$sudomcedit/etc/asterisk/sip.conf

[grinder]

type=friend

host=dynamic

;defaultip=192.168.1.200

username=grinder

secret=password

language=ru

nat=no

canreinvite=no

context=office callerid=grinder <1234> mailbox=1234@office

;перед использованием параметра allow следует отключить все кодеки

disallow=all

;порядок следования кодеков не имеет значения allow=ulaw

allow=alaw

Полеtypeуказывает,чтоможетделатьэтотклиент.Призначенииuserему будетразрешенотолькоприниматьвходящиезвонки,приpeerонсможет толькозвонить,аfriendозначаетвседействиясразу,тоестьuser+peer.

ВполеhostуказываетсяIP-адрес,скоторогоразрешеноподключение этогоклиента.Еслионможетподключатьсяслюбогоадреса,указываем

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

>> ХАКЕР.PROto BUY

 

 

 

m

w Click

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

host=dynamic.Ачтобывэтомслучаевызватьклиента,когдаонещене зарегистрирован,вdefaultipследуетзаписатьIP-адрес,покоторомуего всегдаможнобудетнайти.Вusernameиsecretуказываемлогинипароль, используемыеклиентомприподключении.ПараметрLanguageзадает кодязыкаприветствийиспецифичныенастройкисигналовтелефонов, которыеопределенывфайлеindications.conf.Приработеклиентаза NAT’омвсоответствующемполенеобходимоустановитьзначениеyes. ОтключениеcanreinviteзаставляетвесьголосовойRTP-трафикпрохо- дитьчерезAsterisk.ЕсликлиентыподдерживаютSIPre-invites,имможно разрешитьсоединятьсянапрямую,указавcanreinvite=yes.Полесontext определяетпланнабора,вкоторыйпопадаютвызовы,поступающиеот этогоклиента,аcallerid—строку,котораябудетвыводитьсяпризвонкеот клиента.Поумолчаниюиспользуетсяконтекстdefault,которыйберетвсе настройкиизконтекстаdemo.Последнийпредназначенисключительно длядемонстрационныхцелей,врабочейсистеменеобходимосоздатьсвой контекст.Полеmailboxуказываетнаголосовойящик1234вконтексте office.Остальныеклиентынастраиваютсяаналогично.

ПослеопределенияSIP-аккаунтовнашиклиентымогутрегистрироваться насервереAsteriskисовершатьисходящиевызовы.Чтобыунихбылавозможностьприниматьзвонки,следуетобратитьсякфайлуextensions.conf, вкоторомописываетсяпланнабора(Dialplan),распределяющийзвонкив системе.Здесьжеуказываютсявсеразрешенныерасширения.

$sudomcedit/etc/asterisk/extensions.conf

[office]

include => default

exten => 1234,1,Dial(SIP/grinder,20) exten => 1234,2,Voicemail(grinder)

Здесьвсепросто.Запользователемgrinderзакрепляемномер1234,и,если оннеответитназвонок,емуможнобудетоставитьсообщениенаголосовойпочте.Цифрапосленомераозначаетприоритет,которыйопределяет последовательностьвыполнениязадач.Теперь,еслиAsteriskзапущен,сле- дуетподключитьсякегоконсоли,выполнивнатойжемашинеasterisk-r,и спомощьюкомандыreloadзаставитьегоперечитатьконфигурационные файлы.Естьикомандыдляперезагрузкиконкретногофайла.Например, планнабораперечитываетсякомандойextensionsreload.

Серверготовкприемуклиентов.Поадресуwww.asteriskguru.com/ tutorials/configuration_asterisk_softphone.htmlвыбираемсебесофт-

клиентипробуемсоединиться.Мне,например,нравитсябесплатная версияпростойипонятнойвиспользованиипрограммыZoIPer(ранее

Idefisk,www.zoiper.com/free.php).ЕстьверсиидляLinux,WindowsиMac OSX.Ещеодиннеплохойитакжемультиплатформенныйклиент—X-Lite (www.xten.com).Есливсенормально,вконсолидолжнопоявитьсясообще-

ниевроде«RegisteredSIP‘grinder’at192.168.0.1port5060»,набираемномер извоним.МынастроилиAsteriskвминимальнойконфигурации,ноэто далеконевсе,чтоонможет.Закадромосталосьподключениекдругому серверуIP-телефонии,парковкавызова,музыкавовремяожидания,бил- линг,использованиеGUIдляадминистрированиясервераипрочее,номы постараемсявосполнитьэтипробелывследующихстатьях.z

ПроектCallWeaver

Чтобыизбежатьпроблемсдвойнымлицензированием,былсоздан форкAsterisk,названныйCallWeaver(www.callweaver.org/blog).

Правда,онобладаетменьшейфункциональностью,ноподдерживает большоеколичествопротоколовиработупоаналоговымицифровым каналам.Разработчикиотказалисьотztdummy,однакотеперьядро должнобытьсобраносTimerFrequency1000HZ.ЧтобывUbuntuсамо- мунепересобиратьядро,достаточноустановитьпакетlinux-lowlatency (заподробностямиобращайсякстатье«Наперегонкисовременем»из рубрикиUnixoid—прим.редактора).

xàêåð 11 /107/ 07

155

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> Хакер.Pro

 

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

одинамических дисках

рассматриваем однУ из ключевых возможностей системы Управления дисками в WindoWs server 2003

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Динамические диски таят в себе множество загадок и скрытых подводных камней. Отношение администраторов к ним далеко не однозначно, и они уже успели подпортить себе репутацию, загубив немало данных, восстановление которых стоит денег и к тому же далеко не всегда возможно. Мыщъх, специализирующийся на подъеме файловых систем после падения, раскурил эту тему сразу же после того, как получил диск с Win2k, и нарыл немало полезной инфы, которой и делится с читателями.

кРАТкий иСТОРичеСкий ЭкСкУРС

Динамические диски появились еще в NT 4.0, только там они назывались мультидисками (multidisk) и представляли собой обыкновенные программные RAID’ы, широко распространенные в мире UNIX. Информация о конфигурации мультидисков хранилась в реестре, и крах системы приводил к потере всех данных. Потеря всех данных происходила и при полной переустановке системы или попытке перенести жесткий диск на систему с другой NT. Эти недостатки нивелировали все достоинства мультидисков, существенно ограничивая область их применения. Начиная с Win2k, Microsoft слегка усовершенствовала менеджер дисковой подсистемы, и теперь информация о конфигурации хранится непосредственно на самом диске, откуда считывается в реестр при первом монтировании мультидиска.

Помаркетинговымсоображенияммультидискибылипереименованыв динамическиедиски(dynamicdisk),иMicrosoftразвернулацелуюкомпаниюпоихпродвижениюнарынок.НоеслиприобновленииNT4.0до Win2kинформацияосуществующихмультидискахнормальносчитываласьизреестра,топопыткаобновленияNT4.0доXPилиServer2003/2008 ведеткнеобратимойпотереданных,которыенеобходимопредварительноскопироватьнадругойноситель.Востальномжединамическиедиски посравнениюсмультидискаминепретерпелиникакихсущественных изменений.Однакоотказотреестракакотосновногохранилищаин- формацииоконфигурацииRAID-массивасоздаетвсепредпосылкидля переходасобычныхдисковнадинамические.Но,преждечемпринимать окончательноерешение,необходимовзвеситьвсезаипротив,чеммы сейчас,собственно,изаймемся.

156

xàêåð 11 /107/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>>

ХАКЕР

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.PROBUY

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Дисковая подсистема после ручного преобразования simple-дис- ка в базовый

Мифы о динамических дисках

Динамическиедискиокруженыогромнымколичествомсплетен,мифов илегенд,кочующихизодногоизданиявдругоеиприписывающихим чудодейственныевозможности,которымионинеобладаютиобладатьне могутвпринципе(смотри,например,www.computerperformance.co.uk/ Litmus/disk_dynamic.htm).

Опросзнакомыхадминистраторовпоказал,чтобольшинствоизних уверены,чтодинамическиедиски(вотличиеотобычных)могутизменять свойразмер«налету».Однакомалоктоизнихпыталсяосуществитьэто напрактике,апопытавшись,убеждался,чтосэтимсправляютсятолько утилитыстороннихразработчиковтипазнаменитогоPQMagic. Заблуждениеэтопроисходитиз-заневернойтрактовкитерминаfree space,подкоторымтехническиеписателиизMicrosoftподразумевали unallocatedspace,тоестьсвободноепространство,непринадлежащее никакомудисковомутому.Допустим,унасестьдвараздела,накоторых свободнопо69и96Гбсоответственно.Можемлимыувеличитьразмер первогоразделахотябына10Гбзасчетвторого?Ответотрицательный!А вотеслимывоткнемещеодинвинчестер,накоторомнетникакихразделов(илижеимеютсянеразмеченныеразделы),товэтом(итолькоэтом!) случаединамическийдискдействительносможетувеличитьсвойразмер, поглотиввсенеразмеченноепространство(илиегочасть).

Врезультатеэтогоодинраздел(например,F:)окажетсярасположеннадвух (илиболее)физическихдисках,носточкизренияоперационнойсистемы будеттрактоватьсякакодинтом.ТакаязадачаникакомуPQMagic’уужене позубам,однакоследуетпомнить,чтоподобноеувеличениеразмерадина- мическогодискадостаетсядорогойценой.Во-первых,приотказеодного дискамыавтоматическитеряемвторой(ивсеостальные).Во-вторых,при попыткепереносадинамическоготоманадругуюмашинунампридется тащитьзасобойсразудваилиболеедиска,чтоопять-такиневсегдапри- емлемо,иврядеслучаеввыгоднееиспользоватьнесколькостандартных томов(типаC:,D:,E:),чемодиндинамическийдисктакогожеразмера,тем болеечтоWin2k3позволяетмонтироватьразделналюбуюпустуюпапку другогораздела,апринеобходимостидемонтироватьегообратно. Заблуждение второе — динамические диски поддерживают неограниченное количество томов на одном устройстве, а стандартные (они же базовые) — всего четыре, поскольку в таблице разделов имеется место только для четырех записей. Однако еще со времен MS-DOS таблица разделов поддерживает рекурсивные расширения, снимающие всякие ограничения на число томов. В MS-DOS и Win9x количество разделов не может превышать число возможных букв, но Win2k и все последующие системы позволяют назначать дискам имена произвольной длины или монтировать их на папки соседних разделов, поэтому при желании один диск можно разбить хоть на 666 томов. Вопрос только зачем.

Обновление базового диска до динамического через графическую оболочку

Заблуждениетретье—динамическиедискиработаютбыстрее/лучшее обычных.Искакойэторадости?!Планировказапросоввдинамических дискахвыполненапростоужасно,и,вслучаееслидинамическийдиск занимаетболееодногофизического,мыполучаемконкретныетормоза. Еслижединамическийдискполностьюумещаетсянаодномфизическом диске,тоонработаетабсолютностойжескоростью,чтоиобычный.

Типы динамических дисков

Простые(simple)дискипрактическиничемнеотличаютсяотобычных,за исключениемтого,чтоприпереразбиениидискаотпадаетнеобходимость вперезагрузке.Simple-томаразмещаютсянаодномфизическомдискеи всегданепрерывнынавсемсвоемпротяжении.Приувеличенииразмеров simple-томовзасчетсвободногопространства,находящегосянадругих дисках,ониавтоматическипревращаютсявсоставные(spanned)разделы.

Надежность: средняя Избыточность: отсутствует Производительность: средняя

Составные(spanned)состоятизодногоилинесколькихsimple-томов,нахо- дящихсянаразныхфизическихдисках,объединенныхвединыйлогическийтом.Информациязаписываетсяпоследовательно,каквклассическом линейномRAID-массиве.

Надежность: низкая Избыточность: отсутствует Производительность: средняя

Чередующиеся(stripped)внешнепохожинаspanned,поскольку,какипоследние,объединяютнесколькофизическихдисковводинлогическийтом, ноданныезаписываютсявперемешку,тоестьпервыйсектор—напервый жесткийдиск,второй—навторойит.д.Врезультатеэтогообажесткихдиска работаютпараллельно,и,еслиониподключеныкразличнымIDE-контрол- лерам,скоростьобменапропорциональновозрастает.Однакоеслихотябы одиндискоткажет,изданныхобразуется«решето»,неподлежащеевосста- новлению.Однимсловом,всекаквклассическомRAID-массивеуровня0.

Надежность: очень низкая Избыточность: отсутствует Производительность: высокая

Зеркальные(mirrored)—дваилиболеединамическихдиска,объеди- ненныхводинлогический,причемзаписьдублируетсянавседиски(как вRAID’еуровня1),ипривыходеодноговинчестераизстрояонможет

xàêåð 11 /107/ 07

157

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>>

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

ХАКЕР.PRO

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Win2k Pro поддерживает только простые, составные и чередующиеся динамические диски

бытьзамененбезпотериданных(авслучаеподдержкиhot-plug’а—ибез остановкисервера).Зеркалироватьможнонетолькопростые,нотакже составныеичередующиесядинамическиедиски.Платитьзанадежность приходитсянетолькодисковымпространством,ноипроизводительностью,посколькуколичествоконтроллеровнебезграничноизеркальные дискиобычноцепляютсянаужезадействованныеконтроллеры.Ктому жепоисксекторовнасовременныхвинчестерахосуществляетсяметодом «вилки»изанимаетразличноевремя,азначит,приодновременномработе снесколькимивинчестерамимывынужденыдожидатьсясамогопоследнегоизних,тоестьпаспортноевремяпоискаот«среднего»приближается к«наихудшему».

Надежность: очень высокая Избыточность: очень высокая Производительность: средняя или низкая

Чередованиесконтролемчетности(strippedwithparity)соответствуетмассивуRAIDуровня5.Состоитизтрехилиболеедисков(максимум 32).Данные пишутсянавседиски,кромепоследнего,гдехранятсякодыкоррекции ошибок,спомощьюкоторыхможновосстановитьлюбойдругойотказавший диск.Получается,еслимыимеемтридиска,избыточностьсоставитвсего 30%,авслучаепятидисков—20%.Естественно,RAID-5оправдываетсебя тольконамассивах,состоящихизбольшогоколичествадисков.Массивне можетдинамическиувеличиватьсвойразмерзасчетприсоединенияновых томовиктомужеподдерживаетсятолькосервернымиверсиямиWindows.

Надежность: очень высокая Избыточность: средняя или низкая Производительность: высокая

Программный RAID-массив vs аппаратный

Охужэтиамериканцы!Любятонивыдумыватьновыесловавущербуже существующим.Динамическийдискпредставляетсобойобыкновенный программныйRAID,реализацийкоторогоможнонасчитатьдесятки.

Microsoftпродвигаетнесамоелучшееиктомужедалеконебесплатное решение,подкупаяпотребителейзаумнойтерминологиейиторговыми марками.Интересносравнитьдостоинстваинедостаткипрограммных RAID-массивовстаковымиаппаратных.

ДостоинствааппаратныхRAID-массивов(посравнениюс программными)

• независимость от конкретной операционной системы (при условии, что она поддерживает этот RAID-контрол- лер);

Управление динамическими дисками из командной строки

Комментарий

редактора

Читая различные обзоры, можно сделать вывод, что динамические диски обладают просто потрясающими возможностями: расширение дискового тома, применение чередования для повышения производительности, использование зеркального отражения, присоединение тома к массиву RAID-5, причем все это — штатными средствами операционной системы (через консоль mmc), без необходимости приобретения аппаратного RAIDконтроллера и без перезагрузки! Разве не сказка? На практике оказывается, что нет.

Загрузка с динамического дисканевозможна, следовательно, унас должен быть один базовый дискпод системные нужды плюс еще один базовый диск(или внешний носитель/накопитель) для хранения резервныхкопий (например,для gho-,tib- илиbkf-файлов).Высока вероятность того,что динамический диск мы не увидим из другой операционки. На немнельзя создаватьосновной и дополнительные разделы. Впродакшн-системах составные и расширенные тома практическибесполезны, так как ни один из этих типовне предусматривает избыточности, соответственно, все данные будут утрачены при отказе любого диска этоготома. Не поддерживаютсятакие популярныеуровни, какRAID-10и RAID-50. Не получится «на лету» увеличить размер томов RAID-0 и RAID-5, просто добавив диски к существующей матрице(аппаратные RAID’ы это позволяют),— придется обращатьсяк услугам специальногомастера и совершать дополнительные телодвижения. Как минимумодна перезагрузка все же потребуется — присозданииили преобразовании первого из базовыхдисковв динамический. Кроме того,операциипреобразования придется выполнятьв часы простоя сервера — поздно ночью или

ввыходныедни,так как при наличииоткрытыхфайлов возможна потеря данных. Остальные минусыиспользованияэтой «революционнойразработки» красочно расписал мыщъх.

Некоторыесорвиголовыскажут,чтодинамическиедискиможно использоватьвсвязкесаппаратнымRAID-контроллером,тогдапро- граммнаяреализацияобеспечитгибкостьпринеобходимостирасши- рениятома,ажелезка—требуемуюизбыточность,однакоMicrosoft

всвоихруководствахнастоятельнонерекомендуетприменятьэтот подход.

158

xàêåð 11 /107/ 07

Соседние файлы в папке журнал хакер