Часовой пояс: UTC + 3 часа




Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 41 • Страница 2 из 3<  1  2  3  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 24.10.2011
Обсуждение заметки 'Маркетинговые штучки: сноб-потребитель и HDD #3'.

Продолжаем разовор о неутомимой борьбе сноба-потребителя с такими энергонезависимыми накопителями информации, как жесткие диски.

Цитата:
Часть третья.

W значит Windows.

Будет ли Microsoft нормально поддерживать большие диски?

Для этого Microsoft должна ввести в типы разделов MBR новый расширенный раздел для записей формата LBA48.

Кратко - если вы явно у них это не попросите, то этого не будет. А теперь подробнее почему это так.

Содержание.
1. Версии Windows.
2. Windows XP.
3. Windows 7.
4. Новый принцип для Windows XP.
5. Интерфейс APM/ACPI в Windows XP.
6. Перепрограммируемые BIOS и Windows.
7. Вывод.

...проблема в самом принципе. Этот принцип мы видим не только в новых интерфейсах BIOS, но и в интерфейсе PCI, и в интерфейсе USB, этот принцип создает новизну в старых вещах тем же самым способом — путем искусственного возведения преград. Этот принцип защищает интересы крупных производителей, которые способны написать массу весьма сложного несовместимого кода, который делает одно и тоже.


Добавлено спустя 7 минут 41 секунду:
chesheer писал(а):
grizlyk К теме бэкапов. И так: вы предлагаете иметь n дисков в RAID0 и плюс к этому диск, равный или больший по объёму, чем этот RAID0 для того, чтобы беспроблемно перезаливаться при сбое. Я верно вас понимаю? Т.е. в самом простом случае в системнике должно находиться 3 харда (ну или 2 внутри +внешняя коробка +диск большого объёма)?
Нет, не верно. Посмотрите в интернете на ему "бэкапов". Сохраняются только модификации, а не все файлы. Восстановление и сохранение не в реальном времени. В Windows есть сервис "архивация". Даже в ДОСе была программа backup. Хранить архив надо или на удаленном компьютере или на сменном носителе.



Партнер
 

Member
Статус: Не в сети
Регистрация: 14.11.2007
Откуда: Москва
Фото: 1
grizlyk Сохраняются все файлы. Каждый следующий - да, модификации и добавления. А теперь объясните, каким образом (даже с учетом архивации) бэкап будет заметно меньше оригинала. Вариант со вторым компьютером хорош. Т.е мы уже не ограничиваемся одним диском большого объема, а должны иметь второй компьютер с этим диском внутри. Странно, не находите?


 

Member
Статус: Не в сети
Регистрация: 16.01.2007
Фото: 23
grizlyk
grizlyk писал(а):
Посмотрите в интернете на ему "бэкапов". Сохраняются только модификации, а не все файлы.

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

chesheer
в чем странность?

_________________
5800X3D | Deepcool AS500 | ASUS Prime X470-Pro | 2x16gb BL16G32C16U4W | XFX RX 6900 XT SWIFT 319 | NZXT H710 | Corsair RM1000i


 

Member
Статус: Не в сети
Регистрация: 14.11.2007
Откуда: Москва
Фото: 1
LSD25 Странность: человек утверждает, что Raid 0 - это просто и безопасно, надежность отличная, а бэкап решит все проблемы, для дома самое оно. При этом при рассмотрении варианта бэкапа мы имеем достаточно затратные варианты (какие они и есть в реальности). Только в некоторы случаях это действительно обоснованно, но вот для дома - ни разу. Так же, хочу отметить стоимость восстановления данных с одиночного винта и со страйпа. Разница сильно не в пользу последнего.


 

Member
Статус: Не в сети
Регистрация: 16.01.2007
Фото: 23
chesheer, а, тогда понятно. склонен согласиться.

_________________
5800X3D | Deepcool AS500 | ASUS Prime X470-Pro | 2x16gb BL16G32C16U4W | XFX RX 6900 XT SWIFT 319 | NZXT H710 | Corsair RM1000i


 

Member
Статус: Не в сети
Регистрация: 01.12.2003
Откуда: msk.ru
Прочел статьи. Местами было интересно, даже прошлое вспомнил, например, кодинг прямо в debug. Но кричащий заголовок типа "Скандалы-ынтрыги-росследованийа" портит все впечатление.


 

Member
Статус: Не в сети
Регистрация: 11.11.2005
Откуда: VoID
Совет автору - попробуйте поработать на машине с XP c ынтерпрайзными приложениями, которые сильно текут... ну и нортон 360 для довески.. (говорю не голословно, у меня на работе такая :( i3-2300, 4 гб памяти (может и больше, кто знает на 32 бит системе) и страшные лаги после 3-4 дней работы) а потом поставьте туда семерку (у коллеги слева стоит).. увидите разницу. Вообще изменений много в семерке - линуксоподобный менеджер памяти, совершенно другой scheduler, адекватно работающий с многоядерными процессорами, и куча других изменений, которые совсем не относятся к интерфейсу.. :hi:

_________________
S3Trio 64V+/S3 Trio3D 2x/Radeon VE 32 Mb/S-re R9600/PCr 9800/R X800/M56/Toxic R6950@70->R9 290 ->Vega56 Nitro+LE -> 6900xt @ 2800/2125


 

Member
Статус: Не в сети
Регистрация: 24.10.2011
Опрос:
Спешите волеизъявить на вопрос Хотите ли вы чтобы Microsoft ввела поддержку LBA48 для MBR?, чтобы выявить интерес к LBA48 для MBR и к нормальной работе с дисками более 2Тбайт количественно.

У вас есть уникальная возможность отдать свой голос, например за пункт "Хочу чтобы ни один компонент от моего старого компьютера не был совместим с моим новым компьютером" или "меня не интересуют LBA48 для MBR и диски более 2Тбайт".

Добавлено спустя 10 минут 53 секунды:
chesheer писал(а):
grizlyk Сохраняются все файлы. Каждый следующий - да, модификации и добавления. А теперь объясните, каким образом (даже с учетом архивации) бэкап будет заметно меньше оригинала. Вариант со вторым компьютером хорош. Т.е мы уже не ограничиваемся одним диском большого объема, а должны иметь второй компьютер с этим диском внутри. Странно, не находите?
Как архивировать данные это не вопрос данной темы, есть очень много книг и статей о том, как защитить данные и какие факторы им угрожают. Посмотрите эти источники, это общеизвестная и в общем правильная информация.

Как архивировать данные
Я вообще не говорю, что что-то будет больше или меньше чего-то. У некоторых архивы действительно меньше, поскольку они не сохраняют файлы, которые легко повторно установить с DVD, а их рабочие файлы не столь значительны. Другие хранят все модификации, у них архивы больше чем исходный диск. Третьи используют очень большие собственные файлы, но это уже не архив, а библиотека или база данных, что для обычного десктопа нетипично.

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


Добавлено спустя 7 минут 36 секунд:
chesheer писал(а):
LSD25 Странность: человек утверждает, что Raid 0 - это просто и безопасно, надежность отличная, а бэкап решит все проблемы, для дома самое оно. При этом при рассмотрении варианта бэкапа мы имеем достаточно затратные варианты (какие они и есть в реальности). Только в некоторы случаях это действительно обоснованно, но вот для дома - ни разу. Так же, хочу отметить стоимость восстановления данных с одиночного винта и со страйпа. Разница сильно не в пользу последнего.

Опять, вопросы по архивации.
Кратко повторяю, RAID 1 или RAID 5 не решает задачу защиты данных, поскольку защищает только от одного фактора - отказа оборудования. Эти типы RAID используются в файловых серверах, поскольку у них есть специфические требования.

Мы имеем достаточно затратные варианты. Все зависит от того, сколько стоят ваши данные. Если это черновики детских каракуль, то их не надо совсем защищать. Если это бесценный для вас уникальный домашний архив каракуль или вы учитываете стоимость оплаты труда работника, который создал эти уникальные данные, то вопрос о дороговизне я не понял.

Подробнее отсылаю к литературе по защите данных. Это не вопрос данной темы.


 

Member
Статус: Не в сети
Регистрация: 03.06.2012
Откуда: Kiev
Rimsky писал(а):
поломки рейд-контроллера, а она ой как ненулевая.

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


 

Member
Статус: Не в сети
Регистрация: 24.10.2011
Обсуждение новой части заметки 'Маркетинговые штучки: сноб-потребитель и HDD #4'.

Продолжаем разовор о неутомимой борьбе сноба-потребителя с такими энергонезависимыми накопителями информации, как жесткие диски.

Цитата:
Часть четвертая.

Сегодня лекция:
Сеансы Компьютерной Магии
(с полным её разоблачением)
Общественный разоблачитель, гр.: grizlyk

СКМ выпуск #2: RAID 0 и ужасы.

Содержание.

1. Закрытая архитектура современных компьютеров и RAID 0.
2. Большая загадка фирмваре.
3. Расширение MBR для поддержки RAID 0
4. Дисковые расширения BIOS.

В то время как весь адекватный мир переходит на народную демократию, основанную на единственно верной системе рейтингов +1/-1...
... мы практически разработаем готовое, промышленное расширение MBR для поддержки RAID 0, как всегда мы по возможности не будем пользоваться бумагой, будем разрабатывать расширение в уме...
...сами разработаем программу для поддержки RAID 0 - "RAID-0 Essentials"...
В общем много разного и интересного.


 

Member
Статус: Не в сети
Регистрация: 28.06.2012
Откуда: из леса вестимо
лови +

_________________
Oblygin


 

Junior
Статус: Не в сети
Регистрация: 14.10.2012
Именно по причинам, описанным в записи, в linux настоятельно рекомендуется использовать встроенный программный raid, если только у производителя этот рейд не полностью аппаратный.
Если б кому-то под ОС windows нужен был бы единый открытый стандарт, он бы был.


 

Member
Статус: Не в сети
Регистрация: 29.10.2003
Откуда: 埼玉、日本
Фото: 9
имхо чипсетный raid так "для галочки", чтобы был, и можно было в рекламе написать - типа есть raid, не то, что у других.
он то есть, и я даже пользовался им успешно, но вся проблема в том, что в один прекрасный момент возникает срочная необходимость сменить материнскую плату, после её замены, данных на таком "raid" больше нет :).
случай из жизни 2: захотелось ubuntu поставить второй ОС (а дело было в 2008м году :)) ), так вот - результат - Linux не увидел raid, написал ошибку. "эхх..." подумал я, и перезагрузился. а данных уже нет :). ибо "raid failed" :lol:. не то что на работе, на centos сделал простенький raid1 средствами ОС, и работает он уже года 2, идеально работает. причём если fake-raid позволяет только целиком диски подключать, то на linux у меня в raid'e1 только boot и root, а swap не в raid, а раскидан по дискам, т.е. swap'a 2, и работает за счёт этого примерно как raid 0.
не знаю как кому, а мне проще software raid в linux поставить и не париться, чем чипсетный или "hardware" raid.
мне кстати рассказывали, как посыпался hardware raid5 на sas дисках, с лёгкой подачи шваброй уборщицей по розетке :). ничё так "контакт отошёл", когда 2 диска из 3-х посыпались :lol:
а у меня всё просто - raid1 + еженедельный full backup.

Добавлено спустя 9 минут 49 секунд:
grizlyk почитал статью. опять 16-битный ассемблер :)
ну и ладно. а что до raid0, что его просто сделать - это понятно.
знаю, ибо делал контроллер DDR памяти на FPGA :))
но проблема не в том, чтобы написать пару сотен строк кода на асме и продать это за 1000000000 долларов под видом RAID,
им же надо как-то людей занять, которых много :). вот и маются со всякими кривыми прошивками.
их никогда никто не будет доделывать, ибо если сделает идеально, его просто уволят - вот и "размазывает" на 5 лет проектище.


 

Member
Статус: Не в сети
Регистрация: 14.12.2009
Откуда: москва
Zio писал(а):
и я даже пользовался им успешно, но вся проблема в том, что в один прекрасный момент возникает срочная необходимость сменить материнскую плату, после её замены, данных на таком "raid" больше нет .

сменил уже минимум 7 матерей (ам3+, фм2, 2011 и 1155) и ни разу он не посыпался, ЧЯДНТ? :-)

_________________
i7 3770k + corsair h60
asus mivg-z/gen3
palit gtx660ti + arctic accelero xtreme
ocz zx550w


 

Member
Статус: Не в сети
Регистрация: 14.09.2012
Откуда: Киев
Отличная статья.

Советую опубликовать на habrahabr.ru. За такую статью гарантировано получишь инвайт. Там аудитория будет шире раз в 10 и гораздо ближе к теме.

_________________
Статьи в Персональных Страницах:
- Особенности перехода с 300 мм на 450 мм пластины (2012.09.30)


 

Member
Статус: Не в сети
Регистрация: 25.01.2003
Откуда: UA
О господи.. теперь этот дибил в свои 'статьи' еще куски сишного кода начал вставлять, что б круче смотрелось видать.
Зачем, зачем постить это ГОВНО в интернет раз за разом??? Недавно перечитывал ваши фантазии про память, там половину статьи, а так же все посты в обсуждении можно на bash.org постить без правок...


 

Member
Статус: Не в сети
Регистрация: 24.10.2011
PsiAmp писал(а):
Советую опубликовать на habrahabr.ru
К сожалению, саморегуляция на основе рейтингов это прямой обман - позиция владельцев ресурса выдается за единственно существующее мнение, поддержанное авторитетами или массами, я не могу поверить в невинную глупость тех, кто это затеял.

Я думаю, что новая "саморегуляция на основе рейтингов" мало отличается от традиционных интернет-помоек, где посетители или беспрерывно ругаются друг с другом, или беспрерывно восхваляют друг друга и где при этом администрация развлекается тем, что беспрерывно модерирует все что пишут пользователи.

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

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

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

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

Конечно, есть опасность что появятся люди, которые будут пытаться "торговать оружием и наркотиками" в тех же ПС, поэтому владелец ресурса вынужден нести на себе это бремя - как минимум оперативно реагировать на жалобы от разных надзоров, никакая система рейтингов от этого не спасет. При свободе не всегда можно обойтись без охранников и полиции. Почему бы не открыть ПС для всех, кто хочет писать трактаты в основном по околокомпьютерной тематике? Тем более, что альтернатив мало.

Ну, да, об RAID 0.

1) Явно было не выделено состояние "RAID_READY", а было бы неплохо уметь создавать разделы raid_partition и "форматировать" их в состояние "RAID_READY" любыми утилитами, так чтобы BIOS контроллера RAID или драйвер ОС для контроллера RAID заполняли бы только нужные поля заголовка при создании RAID массивов.

Для этого поле типа мы разобьем на биты, а значение всех битов равное нулю будет означать не RAID 0, а RAID_READY
Код:
[10h]       таблица параметров RAID [16]
      ureg16  тип RAID 0,1,5, RAID_READY, не_задан итд, который определяет и тип таблицы основных параметров (RAID 0 в нашем примере)
         все биты равны 0 - RAID_READY
Также надо добавить указание на размер кода, выводящий сообщение, чтобы обозначить пустое место в первом секторе. Для этого зарезервируем байт из области этого кода по смещению 0Fh, он укажет на первый свободный параграф в секторе, пригодный для размещения таблиц RAID
Код:
[0Fh]       размер кода сообщения [1]
      ureg8 указывает на свободное место после кода вывода сообщения в первом секторе, в 16-байтных блоках
      ноль если свободного места нет
2) char[8] 128 бит номер - это ошибка копипаста, тут 8*8=64 бит номер везде, кроме
char[16] 128 бит серийный номер данного массива
На деле для адресации контроллера диска PCI-стиля в реальной системе достаточно трех байт - {шина, слот, устройство}, но можно расширить размер до восьми байт, чтобы получить кратность элемента таблицы в 16 байт, делать элементы таблцы по 32 байта ради 128 бит идентификатора нет никакого практического смысла, хотя пустое место есть.

3) эта модификация предназначена для одноуровнего RAID, т.е. когда на физических дисках создаются специальные разделы raid_partition, которые потом объединяются в RAID массив, а вот создать еще один RAID массив на базе уже собранных RAID массивов может быть и можно, но этот вопрос не рассматривался, задача стояла поддержать RAID 0, который вообще не требует от драйвера никакого обслуживания, он в этом смысле не отличается от обращения к обычному физическому диску и если и содержит набор специальных функций, то только для оптимизации обращения.

4)итого, формат MBR раздела типа raid_partition
Код:
[00h]       код х86 выводящий сообщение о невозможности загрузки с раздела RAID вне RAID массива [15]
      ureg8 EBh идентификатор RAID раздела №1
      это код операции процессора jmp short $+??, переход на этот код выводящий сообщение
      (jmp $+20h в нашем примере)

*[01h]      ureg8 байт смещения в команде процессора EBh для перехода на этот код (1Eh в нашем примере)
                           org  7c00h
          7C00  EB 1E              jmp  $+20h

*[02h]          код сообщения (в нашем примере здесь ASCIIZ строка сообщения об ошибке)
      char[13] 'Its RAID ary',0
                           org  7c02h
          7C02  49 74 73 20 52 41 49+        db    'Its RAID ary',0
                44 20 61 72 79 00
      
[0Fh]       размер кода сообщения [1]
      ureg8 указывает на свободное место после кода вывода сообщения в первом секторе, в 16-байтных блоках
      ноль если свободного места нет
      (в нашем примере адрес *[40h] и будет 4h)
      это нужно, чтобы "форматировать" раздел как RAID_READY, раздельно во времени записывая определенный
      код вывода сообщения и параметры раздела
                           org  7c0Fh
      db 4h

[10h]       таблица параметров RAID [16]
      char[4] 'RAID' идентификатор RAID раздела №2
      ureg32  число резервных секторов под описание RAID массива (64 в нашем примере)
      ureg16  смещение начала таблицы параметров RAID от начала первого сектора, байт (40h в нашем примере)
      ureg32  размер таблицы параметров RAID, байт (288 байт в нашем примере)
      ureg16  тип RAID 0,1,5, RAID_READY, не_задан итд, который определяет и тип таблицы основных параметров (RAID 0 в нашем примере)
         биты типа
          бит 0
             0 не RAID 0
             1 RAID 0
          бит 1
             0 не RAID 1
             1 RAID 1
          бит 3-4
             резерв, неопределены
          бит 5
             0 не RAID 5
             1 RAID 5
          биты 6-15
              резерв, неопределены
         все биты равны 0 - RAID_READY
         
                           org  7c10h
          7C10  52 41 49 44           db     'RAID'
          7C14  40 00 00 00           dd     64
          7C18  40 00              dw     40h
          7C1A  20 01 00 00           dd     288   
          7C1E  01 00              dw     1

[20h]      код выводящий сообщение
                           org 7c20h
          7C20  8C C8              mov  ax,cs
          7C22  8E D8              mov  ds,ax
          7C24  BE 7C02              mov  si,7c02h
          7C27  FC              cld
       
          7C28              nxt_m:
          7C28  AC              lodsb
          7C29  0A C0              or     al, al
          7C2B  74 06              jz     eom
          7C2D  B4 0E              mov  ah,0eh
          7C2F  CD 10              int  10h
          7C31  EB F7              jmp  nxt_m
       
          7C33              eom:
          7C33  FB              sti
          7C34  B4 00              mov  ah,0
          7C36  CD 16              int  16h
       
          7C38  CD 18              int  18h
          7C3A  CD 19              int  19h
       
          7C3C              s:
          7C3C  F4              hlt
          7C3D  EB FD              jmp  s
          7C3F  00              db     0

*[40h]          таблица основных параметров RAID 0 (в нашем примере таблица здесь) [256]
      
      ureg8     старшая версия таблицы (0 в нашем примере)
      ureg8     младшая версия таблицы (1 в нашем примере)
      ureg16    размер strip-блока RAID-массива в секторах, от единицы (64 в нашем примере)
      ureg48    размер каждой части RAID-массива в strip-блоках, от единицы
      ureg16    резерв
      ureg16    номер данного диска в данном массиве RAID 0, от нуля
      ureg16    число дисков для данного массива RAID 0, от единицы
      char[16]  128 бит серийный номер данного массива RAID 0 (все диски одного массива RAID имеют одинаковый номер)
                char[32]  32 байтный короткий пользовательский идентификатор (все диски одного массива RAID имеют одинаковый идентификатор)
      char[192] 192 байтный пользовательский идентификатор данного массива RAID 0 (все диски одного массива RAID имеют одинаковый идентификатор)
      этих данных достаточно чтобы найти все части данного массива RAID 0 на дисках

*[140h]      таблица дополнительных параметров RAID 0 [32]
      кэширование данных о следующем диске в raid массиве нужно для ускорения сбора raid при загрузке
      кэширование заполняется каждым хост-контроллером один раз при первом подключении raid массива к данному контроллеру
      если вы выполняете первое подключение, надо вручную указать на необходимость провести такое кэширование

      если raid массив не планируется использовать как системный диск, т.е. он не виден через BIOS, а только через драйвера Windows,
      то данные кэширования могут храниться не здесь на диске, а в конфигурационных файлах драйверов ОС.

      описание следующего диска в raid массиве [16 из 32]
      ureg8   0 указывает, что данная часть таблицы не используется, иначе 1
      ureg8   0 указывает, что следующий диск на MBR, иначе формат таблицы иной (здесь не описано)
      ureg16  резерв
      ureg16  номер порта в многопортовом контроллере, где следующая часть RAID (зависит от конкретного контроллера)
      ureg16  номер раздела MBR, где следующая часть RAID (от 0-3 основные разделы, 4-last1 разделы в первом расширенном и т.д.)
      char[8] 64 бит номер, по которому можно по API в BIOS найти контроллер со следующим диском или 0

      описание первого диска в этом raid массиве [16 из 32]
      точно такая же таблица, как использовалась для описания следующего диска в raid массиве,
      но ссылается на первый диск в массиве, это облегчает работу если нашелся диск с массивом из середины цепочки

*[160h]         пусто (в нашем примере [80h])
      это место может использоваться либо под более сложный stub код сообщения об ошибке
      или под хранение небольшой таблицы дополнительных параметров контроллера RAID в конфигурационном разделе
      
      
[1E0h]      описание конфигурационного раздела контроллера RAID [16]
      если контроллер хранит конфигурационную информацию о самом себе (а не о RAID массиве) на диске, а не в NVRAM памяти,
      он хранит ее на накопителе, подключенном к одному из своих портов

      описание конфигурационного раздела заполняется каждым таким RAID-контроллером один раз при первом подключении raid массива
      к данному контроллеру
      если вы выполняете первое подключение RAID массива к такому контроллеру, надо вручную указать на необходимость провести такое
      заполнение
      если вы выполняете отключение RAID массива от такого контроллера, надо вручную указать на необходимость провести безопасноe
      отключение, чтобы конфигурационная информация контроллера была правильно перемещена

      описание диска, хранящего конфигурационную информацию этого raid контроллера
      таблица аналогична по сути той, что использовалась для описания первого диска в raid массиве,
      но ссылается диск, который в зарезервированных RAID секторах хранит конфигурационную информацию RAID контроллера,
      чей конфигурационный раздел и который управляет этим raid массивом, это облегчает работу если нашелся диск с массивом
      из середины цепочки

      ureg8   0 указывает, что конфигурационный раздел и эта часть таблицы не используются контроллером, иначе 1
      ureg8   0 указывает, что конфигурационный раздел на MBR, иначе формат таблицы иной (здесь не описано)
      ureg16  резерв
      ureg16  номер порта в многопортовом контроллере, где кофигурационный раздел RAID контроллера (зависит от конкретного контроллера)
      ureg16  номер раздела MBR, где кофигурационный RAID раздел RAID контроллера (от 0-3 основные разделы, 4-last1 разделы в первом расширенном и т.д.)
      char[8] 64 бит номер, по которому можно по API в BIOS найти этот RAID контроллер

[1F0h]      таблица параметров контроллера RAID [10]
      если это конфигурационный раздел, на который ссылается секция [1E0h],
      то здесь RAID контроллер, владеющий конфигурационным разделом, хранит дополнительную конфигурационную информацию о самом себе

      ureg16  резерв
      ureg16  смещение начала таблицы дополнительных параметров контроллера RAID от начала первого сектора, байт (0 в нашем примере)
      ureg32  размер таблицы дополнительных параметров контроллера RAID, байт (0 байт в нашем примере, т.е. не используется)
      ureg16  число отдельных raid массивов, которыми управляет этот raid-контроллер, от нуля

[1FAh]      таблица параметров RAID-массива [4]
      если это первый диск в RAID массиве, на который ссылается секция *[150h], то здесь хранится конфигурационная информация о RAID массиве

      ureg16  резерв
      ureg8   биты параметров RAID-массива:
          биты 0,1 тип разрешенного кэширования
             00 нет
             01 чтение
             10 запись
             11 чтение/запись
          биты 2-7 резерв, неопределены
      ureg8   резерв

[1FEh]      сигнатура расширения BIOS [2], идентификатор RAID раздела №3
      db 55h,aah


 

Member
Статус: Не в сети
Регистрация: 14.09.2012
Откуда: Киев
:shock: У кого-то графомания.

_________________
Статьи в Персональных Страницах:
- Особенности перехода с 300 мм на 450 мм пластины (2012.09.30)


 

Junior
Статус: Не в сети
Регистрация: 11.07.2012
Автор давит интеллектом)

_________________
Intel Pentium Dual-Core 6500
HIS HD6770
1GBx4 DDR2-800
ASCOTT 400Watt


 

Member
Статус: Не в сети
Регистрация: 24.10.2011
yelloo писал(а):
Автор давит интеллектом
Почти как борец сумо. Да, вот это фразу в программе "RAID 0 essentials"
Код:
    const
    ureg64 strip_block_first_sector = strip_block_num / raid0_data.disks;
надо заменить на
Код:
    const
    ureg64 strip_block_group_num = strip_block_num / raid0_data.disks;
    const
    ureg64 strip_block_first_sector = strip_block_group_num * raid0_data.strip_sectors;
Видите как я небрежен? Ошибся на (*raid0_data.strip_sectors). Это потому что в принципе весьма тяжело написать программу безошибочно сразу, даже если это хорошо известный алгоритм и даже с последующей проверкой на тестах.

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

Добавлено спустя 37 минут 26 секунд:
И опять формат раздела RAID, он мне опять не нравится
Код:
[0Fh]       размер кода сообщения [1]
      ureg8 указывает на свободное место после кода вывода сообщения в первом секторе, в 16-байтных блоках
      ноль если свободного места нет
      (в нашем примере адрес *[40h] и будет 4h)
плохо указывать на первое свободное место, надо указывать размер свободного места после кода, т.е. когда весь сектор занят под код тут 0, а когда код ограничен только перыми 15 байтами, тут 1E(0)h-02(0)h=1C(0)h максимум, в нашем примере под код заняты дополнительно параграфы 2 и 3, значит 1E(0)h-04(0)h=1A(0)h, итого
Код:
[0Fh]       размер свободного места после кода сообщения [1]
      ureg8 размер свободного места после кода вывода сообщения в первом секторе, в 16-байтных блоках
      ноль если свободного места нет, 1Ch максимум свободного места
      (в нашем примере свободное место начинает ся садреса *[40h] и здесь будет 1Ah)
                           org  7c0Fh
      db 1Ah


Добавлено спустя 1 час 31 минуту 56 секунд:
Казалось бы, уже все проверили, даже на тестах все вроде сработало, а вдруг бац - опять ошибка, заместо
Код:
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
    const
         ureg64 head_sectors = max( (raid0_data.strip_sectors - head_first_sector), p.sectors );
надо делать так
Код:
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
    const
         ureg64 head_sectors = min( (raid0_data.strip_sectors - head_first_sector), p.sectors );
А попробуйте провести такую модификацию в закрытом коде, владельцы которого не собирают информацию об ошибках и не исправляют их? Таким владельцам надо или открывать код, или выкупать неисправные устройства обратно, какой еще вариант может быть?


Показать сообщения за:  Поле сортировки  
Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 41 • Страница 2 из 3<  1  2  3  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan