• Устойчивое хранение данных и файловые API Linux

    • Перевод
    Я, исследуя устойчивость хранения данных в облачных системах, решил проверить себя, убедиться в том, что понимаю базовые вещи. Я начал с чтения спецификации NVMe для того чтобы разобраться с тем, какие гарантии, касающиеся устойчивого хранения данных (то есть — гарантии того, что данные будут доступны после сбоя системы), дают нам NMVe-диски. Я сделал следующие основные выводы: нужно считать данные повреждёнными с того момента, как отдана команда записи данных, и до того момента, как завершится их запись на носитель информации. Однако в большинстве программ для записи данных совершенно спокойно используются системные вызовы.

    В этом материале я исследую механизмы устойчивого хранения данных, предоставляемые файловыми API Linux. Кажется, что тут всё должно быть просто: программа вызывает команду write(), а после того, как работа этой команды завершится, данные будут надёжно сохранены на диске. Но write() лишь копирует данные приложения в кеш ядра, расположенный в оперативной памяти. Для того чтобы принудить систему к записи данных на диск, нужно использовать некоторые дополнительные механизмы.



    В целом, этот материал представляет собой набор заметок, касающихся того, что я узнал по интересующей меня теме. Если очень кратко рассказать о самом важном, то получится, что для организации устойчивого хранения данных надо пользоваться командой fdatasync() или открывать файлы с флагом O_DSYNC. Если вам интересно в подробностях узнать о том, что происходит с данными на пути от программного кода к диску, взгляните на эту статью.
    Читать дальше →
    • +31
    • 3,6k
    • 2
  • IT-эмиграция и русский язык


      Люцерн на фото Олега Ненашева


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


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


      Как тогда выглядит жизнь IT-эмигранта с языковой точки зрения? И как в этой жизни присутствует русскоговорящее IT-сообщество? Я расспросил шестерых человек, уехавших в самые разные страны, от Норвегии до Австралии. Троих знаю по их докладам на конференциях, которые организуем мы в JUG Ru Group, а другие трое — авторы популярных хабрапостов из хаба «IT-эмиграция».

      Читать дальше →
    • Путеводитель по резервному копированию баз данных

        – О, никакое убежище не выдержит попадания метеорита. Но ведь у вас, как и у каждого, есть резерв, так что можете не беспокоиться.

        Станислав Лем, «Звёздные дневники Ийона Тихого»

        Резервным копированием называется сохранение копии данных где-то вне основного места их хранения.



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

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

        Во-вторых, современные СУБД – весьма надёжные программные комплексы, однако изредка всё же происходит повреждение внутренних структур базы данных, после которого доступ к данным пропадает. Что особенно обидно, такое нарушение происходит обычно при высокой нагрузке или при установке какого-нибудь обновления. Но как высокая нагрузка, так и регулярные обновления говорят о том, что база данных – отнюдь не тестовая, и данные, хранящиеся в ней, ценны.

        Наконец, третья задача, решение которой требует наличия резервной копии, – это клонирование базы, например, для целей тестирования.

        Резервное копирование баз данных так или иначе базируется на одном из двух принципов:

        • Выборка данных с последующим сохранением в произвольном формате;
        • Снимок состояния файлов БД и сохранение журналов.

        Давайте рассмотрим эти принципы и реализующие их инструменты подробнее.
        Читать дальше →
      • VixDiskLibSample: тестируйте виртуальные диски правильно

          Когда мы сталкиваемся с неким программным продуктом, с которым нам предстоит взаимодействовать, сценарий взаимодействия мы вольны выбирать сами. Можно героически изобретать велосипед, а можно понадеяться, что авторы несколько лучше, чем мы, знают свой продукт, поэтому предоставляемый ими API (или набор библиотек) является оптимальным решением. На практике, к сожалению, не всё так радужно, но сегодня не об этом.

          Для работы со своей дисковой подсистемой VMware уже много лет предоставляет VDDK — развесистый набор библиотек, документации и примеров кода, с помощью которых ваше приложение может работать с дисками виртуальных машин. Само собой мы в Veeam очень не любим изобретать ненужные велосипеды, поэтому VDDK в наших продуктах используется крайне активно.

          Но это всё никак не влияет на количество клиентов, которые считают, что работать с дисками можно ещё быстрее, а все предлагаемые тесты производительности показывают априори неверные результаты. Вот в такие моменты нам на помощь и приходит ультимативное оружие — VixDiskLibSample.


          Читать дальше →
        • Что такое Docker: краткий экскурс в историю и основные абстракции

            10 августа в Слёрм стартовал видеокурс по Docker, в котором мы разбираем его полностью — от основных абстракций до параметров сети.


            В этой статье поговорим об истории появления Docker и его основных абстракциях: Image, Cli, Dockerfile. Лекция рассчитана на новичков, поэтому вряд ли будет интересна опытным пользователям. Здесь не будет крови, аппендикса и глубокого погружения. Самые основы.


            Читать дальше →
            • +13
            • 10,6k
            • 9
          • VDDK errors с человеческим лицом


              Вся прелесть и ужас VDDK ошибок в том, что, с одной стороны, совершенно точно понятно, где сломалось, а с другой — совершенно непонятно, почему, и как это теперь чинить. Это примерно как RPC call function failed в мире Windows.

              Хотя не всё так ужасно, конечно же. Некоторые ошибки имеют совершенно конкретные причины и методы лечения. А некоторые — давно известный список наиболее частых причин и вариантов их исправления.

              Наш Veeam Technical Support, конечно же, накапливает в себе подобные знания, и сегодня мы немного подглядим в их записи. Поэтому с превеликим удовольствием представляю вам топ самых частых VDDK errors и методы их устранения.
              Читать дальше →
            • Сборник полезных ссылок для системного администратора



                Сборник полезных ссылок для системного администратора, руководства, инструкции, учебные курсы, секреты-советы и многое другое – ниже в нашем еженедельном посте.
                Читать дальше: Сборник полезных ссылок для системного администратора
              • Памятка «Улучшение качества связи Wi-Fi»


                На Хабре уже есть много качественных статей с подробным объяснением того как работает Wi-Fi и как его настраивать. Однако у всех этих статей есть, как минимум, несколько недостатков мешающих их дать как руководство к действию условному соседу в многоэтажке или повесить распечатку на стену в подъезде.
                Подробные причины создания памятки
                1. понять и применить на практике большую часть материала простому пользователю сети затруднительно.

                2. в статьях содержится «слишком много букв», чтобы не мотивированному что-либо делать человеку было интересно осиливать такой объём текста.

                2.1. мотивация у людей отсутствует поскольку уже существующая ситуация такова: «зачем что-то вообще делать, если и так всё работает».

                2.2. большинство уверены что «оно обязано работать само» в формате «я его купил и воткнул в розетку».

                2.3. люди даже не думают о том что Wi-Fi может работать лучше, просто воспринимают как данность ибо зачастую даже оборудование у них от провайдера.

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

                3.1. «in the wild» у людей оборудование может стоять на полу антеннами «букетом» либо вообще валяться в углу.

                4. для выбора каналов в диапазоне 2.4 ГГц даются рекомендации актуальные только для Северной Америки и неоптимальные для всего остального мира.

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

                5.1. кто-то будет, кто-то не будет, поэтому надо как рекомендовать использовать только каналы по 20 МГц так и давать универсальные рекомендации для 40 МГц тоже.

                5.2. в подавляющем большинстве оборудования, особенно в бюджетном сегменте, всё очень плохо с настройками, можно выбрать канал, иногда режим 20/40 и, зачастую, это все доступные настройки.

                Читать дальше →
              • Настраиваем DRBD для репликации хранилища на два CentOS 7 сервера

                • Перевод
                Перевод статьи подготовлен в преддверии старта курса «Администратор Linux. Виртуализация и кластеризация».




                DRBD (Distributed Replicated Block Device — распределённое реплицируемое блочное устройство) представляет собой распределенное, гибкое и универсально реплицируемое решение хранения данных для Linux. Оно отражает содержимое блочных устройств, таких как жесткие диски, разделы, логические тома и т.д. между серверами. Оно создает копии данных на двух устройствах хранения для того, чтобы в случае сбоя одного из них можно было использовать данные на втором.

                Можно сказать, что это нечто вроде сетевой конфигурации RAID 1 с дисками, отражаемыми на разные сервера. Однако оно работает совсем не так, как RAID (даже сетевой).
                Читать дальше →
              • XFS, Reflink и Fast Clone. Созданы друг для друга

                  Как все мы знаем, XFS — это высокопроизводительная журналируемая файловая система, созданная в недрах Silicon Graphics. А высокопроизводительная она потому, что способна справляться с множеством параллельных потоков ввода-вывода. Так что если вам интересна файловая система с легко масштабируемой пропускной способностью и не деградирующая от работы с несколькими устройствами одновременно, то вам, однозначно, сюда. Но сегодня мы будем нахваливать не весь XFS, а один конкретный его флаг — reflink. Он включает возможность переиспользовать одинаковые блоки данных между файлами, обеспечивая дедупликацию и возможность делать быстрые copy-on-write снапшоты.

                  Грешновато проходить мимо такой увлекательной функциональности, поэтому сегодня мы посмотрим, как reflink может помочь всем ответственным за бекапы, и что на этой ниве нам может предложить Veeam Backup & Replication 10.


                  Читать дальше →
                • Основы ZFS: система хранения и производительность

                  • Перевод


                  Этой весной мы уже обсудили некоторые вводные темы, например, как проверить скорость ваших дисков и что такое RAID. Во второй из них мы даже пообещали продолжить изучение производительности различных многодисковых топологий в ZFS. Это файловая система следующего поколения, которая сейчас внедряется повсюду: от Apple до Ubuntu.
                  Читать дальше →
                • Скромное руководство по схемам баз данных

                  • Перевод

                  Geometry of Flowers by Mookiezoolook

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

                  Но как оценить, какая схема лучше? И что вообще значит «лучше», когда мы говорим об архитектуре БД? Команда Mail.ru Cloud Solutions предлагает познакомиться с рекомендациями Майка Алча, консультанта по разработке программного обеспечения. Нам кажется, что он довольно лаконично резюмировал некоторые принципы грамотной архитектуры.
                  Читать дальше →
                • Создаём установочный носитель с множеством версий Windows NT 6.0+ без использования стороннего софта

                  • Tutorial

                  КДПВЗдравствуйте. Сегодня я расскажу как можно создать единый установочный носитель с множеством разных версий Windows не прибегая к использованию стороннего ПО. Таким образом вы будете полностью понимать какие манипуляции мы выполняем.


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


                  Кому интересно — прошу под кат.

                  А ну-ка, посмотрим
                • Сохраните в закладках эту статью, если вы новичок в Python (особенно если изучаете Python сами)

                  Привет, Хабр! Представляю вашему вниманию перевод статьи "Bookmark this if you are new to Python (especially if you self-learn Python)" в двух частях (1, 2) c простыми, но полезными советами и трюками в Python.



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


                  Уточнение: в настоящее время я использую Python 3.8. Если вы столкнулись с какими-либо проблемами во время запуска моих примеров, пожалуйста, проверьте, не связано ли это с вашей версией Python.

                  Читать дальше →
                • Да мой старый laptop в несколько раз мощнее, чем ваш production server

                    Именно такие претензии я услышал от наших девелоперов. Самое интересное, что это оказалось правдой, дав начало длительному расследованию. Речь пойдет про SQL servers, которые крутятся у нас на VMware.


                    Читать дальше →
                  • Забота о домашних: делаем бэкап ноутбука или десктопа с помощью бесплатных Veeam Agents

                    • Tutorial
                    В обычной жизни я, как и многие из вас, уважаемые читатели, большую часть времени работаю в офисе, и меня это вполне устраивает. Но сегодня ситуация такова, что и я, и мои коллеги в разных уголках мира, и, думаю, большинство читающих эту статью — все мы работаем из дома.

                    И тут совсем нелишним будет напомнить о необходимости резервного копирования домашнего компьютера или ноутбука. Ибо когда меняется рабочая обстановка, меняется и привычная манера работы с данными. С работой в офисе всё очевидно: доступ напрямую к нужным ресурсам, централизованное резервное копирование, если что — всегда можно обратиться в helpdesk. С работой же из дома многие вещи нужно предусмотреть самостоятельно, в том числе бэкап.

                    Полагаю, что многие из вас уже используют для этого Veeam Agent for Microsoft Windows или Veeam Agent for Linux. Если же ещё нет — то, возможно, вас заинтересует сегодняшний краткий обзор. Итак, добро пожаловать под кат.


                    Читать дальше →
                  • Выбираем флеш-карты: подробное руководство по разновидностям Secure Digital



                      При выборе жесткого диска у «продвинутого» покупателя обычно не возникает особых проблем. Взять тот же WD6003FZBX на 6 ТБ: скорость вращения шпинделя 7200 оборотов в минуту, вместительный кэш в 256 мегабайт и наличие высокоскоростного интерфейса SATA III с пропускной способностью 6 Гбит/с красноречиво свидетельствуют о том, что перед нами высокопроизводительное решение, способное удовлетворить нужды как заядлых геймеров и энтузиастов, так и профессионалов. Единственный нюанс, который здесь необходимо учитывать, заключается в том, что показатель 6 Гбит/с — это пропускная способность самой шины: хотя скорость передачи информации из кэша в систему составляет 550 МБ/с, реальная скорость обмена данными между системой и накопителем для рассматриваемой модели достигает 227 МБ/с, что все равно является превосходным результатом для классических винчестеров. Впрочем, об этом и так знает практически любой технически подкованный пользователь ПК.

                      Когда же речь заходит о флеш-картах, в тупик может зайти даже бывалый админ. За примерами далеко ходить не надо: достаточно открыть страницу карты памяти SanDisk Extreme PRO UHS-I. Помимо привычных строк «скорость чтения: до 170 МБ/с» и «скорость записи: до 90 МБ/с», в спецификациях красуется таинственная надпись «скорость видео: C10, U3, A2, V30». Но позвольте, мы уже знаем скоростные характеристики продукта. Зачем нужны еще какие-то непонятные классы скорости, да еще и в количестве четырех штук? И в чем вообще состоит принципиальное отличие перечисленных показателей друг от друга? Именно в этих вопросах нам предстоит разобраться в сегодняшнем материале.
                      Читать дальше →
                    • Что общего между LVM и матрешкой?

                      Доброго времени суток.
                      Хочу поделиться с сообществом практическим опытом построения системы хранения данных для KVM с использованием md RAID + LVM.

                      В программе будет:

                      • Сборка md RAID 1 из NVMe SSD.
                      • Сборка md RAID 6 из SATA SSD и обычных дисков.
                      • Особенности работы TRIM/DISCARD на SSD RAID 1/6.
                      • Создание загрузочного md RAID 1/6 массива на общем наборе дисков.
                      • Установка системы на NVMe RAID 1 при отсутствии поддержки NVMe в BIOS.
                      • Использование LVM cache и LVM thin.
                      • Использование BTRFS снимков и send/recieve для резервного копирования.
                      • Использование LVM thin снимков и thin_delta для резервного копирования в стиле BTRFS.

                      Если заинтересовало, прошу под кат.
                      Читать дальше →
                      • +11
                      • 4,4k
                      • 6
                    • Технический обзор архитектуры СХД Infinidat

                        InfiniBox – модерновая система хранения, сразу попавшая в правую часть магического квадрата. В чем ее уникальность?

                        Краткая предыстория

                        Что такое InfiniBox? Это система хранения компании Infinidat. Что такое компания Infinidat? Это компания, созданная Моше Янаем (создатель Symmetrix и XIV) для реализации проекта идеальной СХД Enterprise-уровня.

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

                        Введение

                        В этой статье мы рассмотрим систему хранения InfiniBox, ее архитектуру, как она работает и как достигается высокая надежность (99,99999%), производительность, емкость при сравнительно невысокой цене. Поскольку основа системы хранения — это ее ПО, а для этой системы в особенности, то основной упор будет именно на софте, красивых фото железок не будет.

                        Зачем нужна еще одна система хранения на рынке?

                        Есть ряд задач, для которых нужна очень большая емкость, при этом надежность и производительность тоже важны. Например, облачные системы, стандартные задачи крупных компаний, интернет вещей, генные исследования, системы безопасности для больших структур. Оптимальную СХД для таких задач найти достаточно сложно, особенно если смотреть на цену. С прицелом на такие задачи и была построена программная архитектура InfiniBox.
                        Читать дальше →
                      • BTRFS для самых маленьких

                          Доброго времени суток, Хабравчане.  Я работаю в компании Veeam Software и являюсь одним из разработчиков нашего решения для бэкапа линукс систем. По роду занятий мне довелось столкнуться с BTRFS. Совсем недавно она перешла из статуса «еще не пригодно» в статус «стабильна». И пока её первые пользователи в сети обсуждали проблемные места и вопросы стабильности, мы в Veeam тыкали её палочкой и пытались бэкапить. Получалось, мягко говоря, не очень — слишком уж она другая, не похожая на традиционные файловые системы. Пришлось изучить немало аспектов и собрать множество граблей, прежде чем научились с ней работать. В процессе изучения BTRFS сумела произвести на меня впечатление как в хорошем смысле, так и не очень. Уверен, она не оставит равнодушным ни одного айтишника из мира линукс: одни будут плеваться, другие восхвалять.

                          Если вы слышали об этой файловой системе, но не знаете, зачем она, интересуетесь подробностями или ищете, с чего начать знакомство с ней — приглашаю под кат.
                          Читать дальше →