Как настроить raid массив windows 10

Jens.cz

бывшая тетрадь программиста

Не RAID как RAID — длина 1. Ведущий

Этой статьей я хотел бы начать серию из нескольких статей, которые будут обновлены с дисковым массивом RAID и конфигурацией файловой системы (файловой системы) в Linux . благодаря максимальной производительности, достаточной безопасности и минимальной цене. В серии я остановлюсь в первую очередь на программном RAID , созданном с помощью утилиты mdadm , его настройке на уровне физических дисков и операционной системы, будут описаны методики тестирования и отдельные тесты, с помощью которых будет тестироваться данная конфигурация. Еще одним аспектом будет выбор файловой системы и ее настройки — здесь вы будете выбирать между системами ext3 , ReiserFS и XFS .

Он не будет здесь описывать основные типы RAID , они это уже давно сделали по-другому и лучше, см. например чешскую страницу в википедии про RAID, а еще лучше Английская Википедия и RAID и многое другое. Я остановлюсь на конкретных процедурах настройки и тестах, на основе которых можно будет выбрать конкретный вариант для конкретного приложения — в нашем случае этим приложением будет сервер БД MySQL , его производительность среди прочего сильно связано с производительностью файловой системы таблиц и временных файлов.

Аппаратный RAID

Аппаратное обеспечение RAID — это специальное аппаратное обеспечение, которое позволяет вашему компьютеру настраивать дисковые массивы и управлять ими без необходимости установки каких-либо драйверов и полностью независимо от операционной системы.
Аппаратное обеспечение½ RAID можно определить следующим образом:

  • у него есть свой спецпроцессор и своя память (может быть и резервная на всякий случай от специальной батарейкипропадание напряжения),
  • полностью не зависит от драйверов и операционной системы, для операционной системы отображается как один диск (или несколько дисков в случае конфигурации из нескольких логических RAID томов),
  • его цена, как правило, довольно высока и колеблется в наших регионах на нижнем пределе около 10 000 чешских крон.

Если кто-то скажет мне, что их плата за 4000 крон имеет аппаратный RAID, вы можете легко посмеяться над этим, потому что это абсолютная чепуха. Текущие платы имеют только простую утилиту RAID для определения массива RAID, но без драйвера и операционной системы вы никогда не получите из нее настоящий дисковый массив. К тому же драйвера для таких «фальшивых RAID» существуют только для Windows, и зачастую они бывают странного качества. Таким образом, встроенный RAID прямо в плату является не более чем маркетинговым ходом и разводом на пользователей, которые плохо разбираются в проблеме и готовы доплачивать за то, что получают только при соблюдении особых требований. Кроме того, в случае проблемы с контроллером такого RAID дисковый массив развалится, в лучшем случае вы потеряете данные, в худшем даже не загрузитесь в систему.

Настоящий аппаратный RAID — это очень сложное аппаратное обеспечение, которое включает в себя собственный процессор для расчета данных четности (который в противном случае является числом ЦП), обеспечивая распределенную производительность в пределах выбранного уровня RAID на физические диски. Далее дисковый массив собирается, восстанавливается и разрешается в случае отказа физического диска, или в случае сбоя, при аварии диска и т.д. Также в нем содержится специальная память – так называемая «память». кэш чтения/записи ‚ в который онисохранять данные перед физической записью на диски в случае записи (операционная система думает, что данные на самом деле записываются на диск и отправляются дальше, где на самом деле они только в быстрой памяти и включаются даже в тот момент, когда у меня «свободный физический диск» — это очень легко сделать, все дело гораздо изощреннее и существенно сложнее) а в случае с ридерами предварительно загружаются © блоки данных, для которых предполагается, что системы не осталось в рамках чтения этого блока данных. Буферная память такого компьютера обычно находится в диапазоне от 64 МБ до 512 МБ и часто поддерживается специальной батареей (обычно дополнительным компонентом компьютера), способной буферизовать данные, которые вам нужны. быть в состоянии поразить даже в случае сбоя питания. Это означает, что данные все время хранятся в памяти, и при перезагрузке компьютера контроллер обеспечивает их запись на диск (это до загрузки системы).

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

Читайте также:  Как установить образ диска iso на windows 10 с флешки

Программный RAID

К этой категории также относится серия винчестеров, играющих только на аппаратном RAID (и, похоже, у производителей этих « ускорителей » этот трюк работает достаточно хорошо) и на самом деле требуется специальный драйвер, который устанавливается в операционную систему –это называется » fake RAID» . Без них дисковый массив работать не будет, а утилита, которая обычно запускается после закрытия BIOS компьютера, служит только для отправки операционной системе информации о том, как должен выглядеть RAID .

В частности, речь идет о компьютерах/чипсетах, поставляемых непосредственно на материнскую плату:

  • Intel : (другие местоположения) ICH7R , ICH8R , ICH9R и ICH10R
  • nVidia : (ипсеты) nForce4 , nForce 500 , nForce 600
  • AMD : (другие города) SB450 (наборы микросхем Radeon Xpress 200, Radeon Xpress 1150), SB600 (наборы микросхем AMD 480/570/580)

Специальные карты потом продаются (это еще верх воровства и мошенничества для непосвященных), особенно от компании Adaptec (Adaptec называется « HostRAID ″), которые являются своего рода «аппаратными ускорителями» для RAID массивов – которые, однако, без ОС и специальных драйверов не работают или работают только частично, а цена их относительно высока.

В частности, это следующие продукты:

  • Adaptec 1220SA (ок. 1700 кДЌ),
  • Adaptec 1225SA (ок. 1500 кДЌ),
  • Adaptec 1420SA и 1430SA (около 3000 кДЌ),
  • Adaptec 2405 (ок. 6-7 тыс. KДЌ . )
  • Adaptec 2410SA и 2420SA (ок. 7-8 тыс. кДЌ . )

Больше программных RAID-массивов, которые часто маскируются под аппаратные RAID-массивы, можно найти, например, на странице часто задаваемых вопросов по Linux SATA RAID.

мдадм

Основой программного RAID для Linux является утилита mdamd (или mdctl ), входящая в состав ядра Linux начиная с версии 2. Создает устройства в системе «md» (несколько устройств), которая состоит изотдельных блоков устройств (например, физических дисков и их разделов — /dev/hda, /dev/sda и т. д.). Эта утилита может создавать (без необходимости какого-либо «поддельного RAID») RAID 0 , RAID 1 , RAID 4 , RAID 5 , RAID 6 и RAID 10 (и другие специальные режимы: LINEAR , MULTIPATH и FAULTY ).

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

Обновите базу данных и используйте LAST_INSERT_ID()

При создании новых версий/ревизий любого приложения (даже с помощью subversion или другого инструмента) часто целесообразно, а иногда и необходимо обновить структуру базы данных (добавление новых таблиц, столбцов и т. д.). .) или обновить данные (сообщения, системные значения) в базе, чтобы новое изменение кода было совместимо с изменением структуры данных в базе (для полноты картины добавляю только если статья написана для база данных MySQL 5.x ).

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

Этот скрипт неверенимеют разные формы, либо мы можем написать его на PHP , либо в случае простого обновления мы используем только несколько команд SQL . Недавно у меня была относительно простая задача, нужно было добавить скрипт в базу шаблонов, пусть даже с одной языковой мутацией — это значит: добавить одну строку в таблицу шаблона и одну строку в таблицу template_mutation. Однако, поскольку при определении идентификатора шаблона и мутации используется дополнительный тип AUTO_INCREMENT , вставка второй строки с мутацией будет зависеть от идентификатора вставленной строки шаблона. В SQL-скрипте я не могу определить ID напрямую, так как в момент, когда будет выполняться скрипт (апгрейд), может использоваться ID выбранного мной шаблона, поэтому необходимо оставить столбец NULL и MySQL Вставьте свой собственный идентификатор в соответствии со значением AUTO_INCREMENT таблицы.

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

Вот как может выглядеть SQL-скрипт, PHP-скрипт, с которым вы делаете то же самое, например, в Zend_Framework , может выглядеть так:

Примечание к примеру PHP: модели являются дочерними элементами класса Zend_Db_Table и создаются как singleton ; значения столбцов category и language_id в примере являются магическими константами , что не совсем чисто для программиста — это только для простоты перевода.

Комментарии запрещены

YQL и IP-локатор

Вчера в Источнике появилась довольно интересная статья о Yahoo Query Language. Возможности технологии Open Data Tables кажутся очень полезными, например, для IPрасположение адреса — с помощью простого YQL-запроса: SELECT * FROM ip.location WHERE ip=’147.229.176.19′ можно получить точный ответ в виде XML. Все, что вам нужно сделать, это изменить условия использования API и внедрить технологию где-то 🙂

Читайте также:  Как вернуть предыдущее состояние компьютера на windows

Выбранные лимиты использования:

  • макс. 100 000 вызовов YQL на каждый ключ API доступа,
  • макс. 1000 вызовов с одного IP-адреса в структуру /v1/public/* в час,
  • макс. 10 000 вызовов с одного IP-адреса к структуре /v1/yql/* в час.

Комментарии запрещены

Firefox 3.5 завершит работу после закрытия последней вкладки

Firefox 3.5 содержит несколько улучшений при работе с компонентами. Однако я не знаю, можно ли считать исправлением поведение, из-за которого весь Firefox закрывается при закрытии последней папки (вместо отображения пустой папки).

У меня лично много проблем с этим, и я бы также хотел иметь возможность установить это снова в настройках Firefox (вкладка «Вкладки» в настройках до сих пор полупустая). К сожалению, вы пока не найдете его там, единственный вариант — использовать about:config (в адресной строке) и найти значение browser.tabs.closeWindowWithLastTab и изменить его на ложь .

И говоря об этих «плохих новостях» Firefox 3.5 , знаете ли вы его новую функцию Разрыва вкладок ? (перетаскиваемая папка) — позволяет перетащить папку за пределы окна Firefox и таким образом создать совершенно новое окно, также работает и наоборот: окно Firefox можно перетащить в другое окно Firefox и таким образом создать новую папку. Посмотрите видео, чтобы узнать, как это работает…

Комментарии запрещены

PHP 5.3, Firefox 3.5, Debian 5.0.2, PDT 2.1

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

  • PHP 5.3.0 — начнем с самой популярной и актуальной, сегодня (30.06.2009) официально вышла долгожданная и важная версия PHP 5.3.0 , который, в частности, обеспечивает поддержку пространств имен, позднего статического связывания (для статического метода можно определить, среди прочего, по какому классу он выбран) и лямбда-функций (анонимных) и замыканий.
  • Firefox 3.5 — следующее, опять же, очень важное и актуальное событие — сегодняшний релиз «нового» Firefox в версии 3.5, включающей в себя ряд существенных улучшений в работе с памятью (минорные требования к памяти — evergreen в firefox:), ускоренный JavaScript (с использованием механизма TraceMonkey), анонимный просмотр. Одной из самых ожидаемых новостей является поддержка некоторых элементов (аудио, видео) недавно появившейся спецификации HTML 5 .
  • Debian GNU/Linux 5.0.2 — следующее обновление предназначено для текущей стабильной версии Debian (Lenny), так что это уже второй корректирующий выпуск (выпущен 27.06.2009) и исправляет классические n сколько багов и ошибок безопасности смотрите в официальном объявлении.
  • PHP Development Tools Project 2.1 — последний выпуск (26.06.2009) закрыл среду разработки PDT 2.1 , построенную на платформе Eclipse , — включает, среди прочего, поддержка PHP 5.3 и пространств имен . По моему личному опыту, начиная с версии 2.0, PDT достаточно глючный, и каждое видео не пропатчено, что следует переходить с существенно обновленной версии.1.3

Комментарии запрещены

Настройка PHP для обеспечения безопасности

О том, как повысить безопасность PHP-приложений, уже написано много. Первое и основное правило — это фильтрация пользовательского ввода, на эту тему уже описано огромное количество шагов и запрограммировано множество библиотек, которые многое делают за вас. Второй, более важный аспект — это конфигурация директив PHP, уже находящихся в php.ini или использующих ini_set(.) в htaccess . Консорциум безопасности PHP также пытается ответить, на какие директивы следует обратить внимание в их проекте PhpSecInfo.

PhpSecInfo

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

Давайте подробнее рассмотрим отдельные тесты и соответствующие поддирективы (список тестов отсортирован в алфавитном порядке, а не по степени важности):

  • allow_url_fopen
    — по умолчанию вкл , рекомендуемое значение выкл
    — v Если включен, сценарий может использовать функции file_get_contents() , include() , require() , … для удаленных файлов, что может привести к внедрению вредоносного кода с стороннего сервера, если вы неправильно принимаете входные данные
    — о allow_url_fopen директива/тест
  • allow_url_include
    — по умолчанию 0 , рекомендуемое значение 0
    — аналогичная проблема как allow_url_fopen
    — о allow_url_include директивы/тесты
  • display_errors
    — по умолчанию вкл , рекомендуемое значение на рабочем сервере выкл
    — удобно включать во время отладки и разработки, на рабочем сервере рекомендуется выключать
    — сведения о директивах display_errors /test
  • expose_php
    — по умолчанию вкл , рекомендуемое значение выкл
    — решено › отключить всегда позволяет потенциальному злоумышленнику узнать относительно точную версию PHP на сервере и использовать потенциальные недостатки безопасности на основе этого
    — вещи о директиве/тесте expose_php
  • file_support
    — в данном случае это не директива конфигурации, а только название теста, который проверяет, содержит ли ваша версия PHP исправление уязвимости в библиотеке cURL
    — о тесте file_support
  • file_uploads
    — по умолчанию на , если вы не используете загруженные файлы в своем приложении, рекомендуется установить off
    — сведения о file_uploads директивах/тестах
  • force_redirect
    — по умолчанию на , рекомендуемое значение на
    — директива, который используется только при запуске PHP через CGI, отключен на некоторых веб-серверах (IIS)
    — о директиве/тесте force_redirect
  • group_id
    — это не директива PHP а переменная скрипта, эта переменная определяет ID группы системы под которой выполняется скрипт PHP и этот тест предупреждает о возможном © риск запуска скрипта привилегированным/системным пользователем
    — о тесте group_id
  • magic_quotes_gpc
    — по умолчанию вкл , рекомендуемое значение выкл
    -очень известная и часто обсуждаемая директива в прошлом — если директива включена, то все входные переменные будут _GET , _POST , _COOKIE (и возможно еще) экранировался с помощью addlashes
    — директива magic_quotes_gpc ранее была передана для предотвращения SQL инъекции, но позже выяснилось, что функция addlashes не полностью предусмотрена для некоторых особых случаев и поэтому специальная функция экранирования должен использоваться в зависимости от используемой базы данных, поэтому полагаться на «автоматическое экранирование» нехорошо, и поэтому рекомендуется не включать директиву
    — подробнее о magic_quotes_gpc директивах/тесте
  • memory_limit
    — максимально допустимое значение памяти, которое может выделить PHP-скрипт — можно только определить рекомендуемое значение, в общем чем меньше тем лучше необходимо учитывать » рвение» некоторых библиотек, таких как Zend Framework , которые не беспокоятся о памяти и выделяют то, что могут
    — вещи о memory_limit директивах/тестах
  • open_basedir
    — эта директива должна заменить safe_mod , который всегда и всегда является злом — директива open_basedir определяет, по каким адресам в физическом файле системе PHP-скрипты попадают туда, где их нет
    — в случае хост-сервера или сервера с большим количеством пользователей правильная настройка open_basedir является необходимостью
    — о open_basedir директива/тест
  • post_max_size
    — по умолчанию 8 МБ , рекомендуемое значение 256 К
    — определяет максимальный размер данных, которые могут быть отправлены PHP-скрипту с помощью метода POST — рекомендуемое значение здесь относительно низкое, и его можно много обсуждать, его всегда следует увеличиватьпотребности приложения, если высокое значение может означать возможность DoS-потока на сервер
    — подробнее о директиве/тесте post_max_size
  • register_globals
    — по умолчанию выкл , рекомендуемое значение выкл
    — это возможно нет необходимости описывать директиву — это исторический реликт из диких дней PHP, всегда и всегда запрещенный — подробнее о директиве register_globals /test
  • save_path
    — эта директива (точнее session.save_path ) определяет путь, по которому будут храниться данные сеанса пользователя — путь должен быть вне структуры корня веб-сайта (корень документа), и он должен быть правильно установлен как действительный (чтобы сеанс не мог быть доступен другим пользователям системы)
    — сведения о директиве save_path /test
  • upload_max_filesize
    — определяет максимальный размер данных, которые могут быть отправлены в PHP-скрипт с помощью формулы загрузки — рекомендуемое значение должно основываться на потребностях конкретного приложения, в целом это лучше
    — вещи о upload_max_filesize директивах/тесте
  • upload_tmp_dir
    — определяет путь, по которому хранятся временные файлы, которые загружаются на сервер по формуле — аналогично тому, как директива save_path должна быть вне этого пути корневую структуру сайта и должно быть правильно установлено как действительное
    — сведения о директиве/тесте upload_tmp_dir
  • user_id
    — это не директива PHP, а переменная скрипта, эта переменная определяет ID пользователя системы, под которой выполняется скрипт PHP и данный тест предупреждает о возможном © риске скрипт, запущенный привилегированным/системным пользователем
    — о тесте file_uploads
Читайте также:  Как очистить все ненужные файлы с компьютера windows 10

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

Перед настройкой этой переменной всегда необходимо увеличить, будет ли сервер также VirtualHost для большего количества проектов/пользователей. Также важно определить, не повлияет ли развертывание ограничительных правил в виде изменений директив PHP на текущие проекты на сервере, которые потом пришлось бы менять из-за изменения настроек. Поэтому рекомендуется использовать комбинацию как глобальных настроек в php.ini, так и локальных ini_set(.) или htaccess.

ЗГЎвД›р

Слава богу, проект PhpSecInfo уже заброшен через два года (последняя версия от 06/04/2007), и я не знаю, будет ли он когда-нибудь обновляться. Я думаю, что это код, потому что постоянно появляются новые и новые угрозы, добавляются новые директивы конфигурации (а некоторые отменяются), и как для новичка, так и для продвинутого администратора проект может стать хорошим источником информации и вдохновения.

Поделиться с друзьями
ОС советы