По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В статье, мы разберем как работать в операционной системе Linux с HDD, Logical Volume и все что с этим связанно. А также рассмотрим утилиты для работы с HDD. Разберем, что такое LVM. Вводная Те, кто читал пред идущие стати должны понимать, что в операционной системе есть определенные папки. Это стандартный набор папок. Сейчас обратим внимание на те папки, в которые могут быть смонтированы отдельные разделы. Это значит, что если мы видим в корневом разделе какую-либо папку, то не факт, что данная папка находится на том же жестком диске, что и соседние папки или даже сама корневая файловая система. Это могут быть отдельные жесткие диски или разделы жестких дисков, которые смонтированы в корневую файловую систему. Самый большой раздел - это сама корневая файловая система, обозначается символом "/" . Следующий раздел, который обычно находится отдельно - это "/boot", загрузочный раздел, обычно он мегабайт на 100. Там хранятся файлы необходимые для загрузки операционной системы и само ядро. Можно данную директорию оставить на корневом разделе, но если у нас большой жесткий диск хотя бы на 1 ТБ, то старые диски его могут не увидеть при загрузке, поэтому хороший тон создавать отдельный раздел на жестком диске размером от 100 МБ. Директория "/home" - это домашние папки пользователей. Это некий аналог папки в операционной системе Windows, такой как Documents and Settings или c:users. Это директория, где хранятся все папки пользователя. Его можно монтировать, как сетевую папку. Например, если у вас используются какие-нибудь перемещаемые профили. Пользователь работает на нескольких компьютерах и ему необходимо, что бы везде был одинаковый рабочий стол. Вот в таком случае было бы правильно хранить его домашнюю папку где-нибудь на сервере и просто ее монтировать как сетевую папку, предоставляя доступ к файлам. Следующая папка, которая находится в корне - это "/root" она является домашней папкой суперпользователя, очень важная папка поэтому она хранится отдельно. Папка "/etc" - в ней находится конфигурация нашей операционной системы и ее компонент. Так же бывает, что она находится на отдельных дисковых разделах. Мы конечно сами определяем при установке как разбить жесткий диск, но, если при установке мы ставим галочку в установщике, чтобы он автоматически разбил жесткий диск и создал разделы так, как он считает нужным. Директория "/opt" в данной директории находится программное обеспечение от третьих поставщиков. Некоторые серверные дистрибутивы тоже хранят ее на отдельном логическом разделе. Директория "/var" здесь хранятся все часто меняющиеся данные. Например, логи различного программного обеспечения или изменяющиеся программные данные. Возможно для этой директории имеет смысл использовать быстрые диски, например, SSD. Потому, что к ним будет идти очень частое обращение программного обеспечения. Директория "/usr" в ней находятся все установленные пакеты программ, документация и исходный код ядра. Чаще всего данная директория смонтирована вообще в режиме "только чтения" и в принципе она может быть расположена вообще на каком ни будь медленном диске или папке в сети. Директория "/tmp" предназначена для хранения временных файлов. Важной особенностью данной папки является то, что хранящиеся файлы в ней, будут удалены в случае перезагрузки машины. Т.е при перезагрузки данная папка очищается автоматически. Существует еще один отдельный раздел подкачки swap. Обычно операционная система windows использует файл подкачки, то Linux чаще всего использует раздел подкачки, хотя может использовать и файл. Данный раздел не монтируется в нашу файловую систему, он просто существует отдельно. Как это выглядит в консоли. Переходим в корневую директорию cd / . Вводим команду ls и видим, как все директории у нас отображаются. Все те папки о которых шла речь мы видим находятся в корневой директории, кроме раздела swap. Для того, чтобы посмотреть, что и куда смонтировано, то необходимо посмотреть специальный конфигурационный файл cat /etc/fstab Для упрощения объяснения, мы под жестким диском будем понимать единое пространство, которое мы можем разбить на несколько частей. Изначально, компьютер не видел более 4-х разделов - этого считалось достаточно. Поэтому сейчас, изначально по умолчанию жесткий диск не может быть разбит на более чем 4 раздела. Если нам необходимо больше разделов, то необходимо создать так называемый расширенный раздел. И этот расширенный раздел уже будет содержать в себе несколько логических разделов. В старых версиях Linux диски назывались hd0, hd1 и т.д, сейчас жесткие диски называются sda, т.е буквами. USB устройства у нас так же идентифицируются как жесткие диски. Разделы у нас нумеруются по порядку sda1, sda2 и т.д. Т.е. название раздела у нас состоит из буквы диска и номера раздела по порядку. Следовательно, первые 4 цифры зарезервированы и даются только основным разделам, именно поэтому логические разделы нумерация начинается с 5-ки. Основной утилитой для работы с разделами является утилита FDISK. Это утилита используется для разбивки жесткого диска. Так же есть утилита MKFS. Данная утилита используется для создания файловой системы. Мы можем посмотреть все существующие жесткие диски командой fdisk -l. При выводе данной команды мы можем видеть, что у нас 2 подключенных жестких диска sda и sdb. В выводе мы можем так же увидеть их физический объем. На первом диске sda, мы так же можем увидеть 2 раздела sda1 и sda2. Начать работать со вторым жестким диском, необходимо сначала указать, как определенный файл. Устройства лежат в директории "/dev". Пишем команду fdisk /dev/sdb Получается следующая картина: А нажав букву m мы можем получить доступ к справке по работе с данной утилитой. Как можно заметить функционал утилиты достаточно обширен. Можно добавлять партиции, можно удалять партиции. Следующим шагом необходимо создать новый раздел. Выбираем опцию n. Далее предлагается выбор primary или extended. Мы выбираем primary ключ p. Далее выбираем номер раздела 1-4. Например, 1. Далее система спрашивает где будет (на каком секторе) начинаться разметка раздела. Можно выбрать по умолчанию. На следующем шаге мы можем указать сектор, но это крайне неудобно, проще указать сколько мы хотим выделить под размер, например, +10G. И этот раздел станет 10 гигабайт. Попробуем второй вариант с созданием раздела, он будет расширенный (extended). Выбираем ключ e, выбираем 2 раздел. Выбираем с какого сектора он начнется. Следующим шагом +8G. Мы создали расширенный диск на 8 GB. Далее создаем sdb3 на оставшихся 2 GB. А также 8GB расширенного диска разбиваем на 2 логических по 4 GB каждый. Все операции одинаковые. В после создания последнего раздела выбираем опцию w. Которая записывает все изменения. В итоге Прежде чем использовать эти разделы их необходимо отформатировать. Если посмотреть на вывод команды, мы можем увидеть еще одно интересное поле с информацией Id - это метка этого раздела. Необходимо разобраться, как эти id менять. Используем опять утилиту fdisk /dev/sdb. Далее используем ключ t. Утилита предлагает выбрать номер раздела. Выбираем 1. Затем необходимо ввести id в шестнадцатеричном формате, список всех вариаций и их описание можно вывести командой L. Можно заметить, что везде стоял по умолчанию 83 т.е. linux, мы можем изменить на любую метку, например, на 86 NTFS - windows раздел. 3 раздел пометим а5. Записываем изменения w. И можно все изменения увидеть через fdisk -l. Далее, чтобы пользоваться этими разделами, нам сначала их надо отформатировать. Чтобы это сделать используем утилиту mkfs. Набираем mkfs.ext4 , после точки указываем целевую , будет переформатирован раздел , а через пробел собственно сам раздел. Например mkfs.ext4 /dev/sdb5. Теперь немного, о разделе подкачки swap. Для работы с ним используется swapon и swapoff. Через первую команду мы можем включать раздел подкачки, добавлять разделы подкачки, а через вторую команду выключать. Так же есть утилита mkswap - которая позволяет создавать т.е. форматировать раздел, как раздел подкачки. А также у нас есть конфигурационный файл, расположенный в следующем месте /etc/fstab, в данном конфигурационном файле описывается монтирование файловых систем. Соответственно можно примонтировать разделы в ручном режиме, но если мы хотим, чтобы при загрузке разделы сами монтировались, то необходимо конфигурировать файл /etc/fstab/ Командой swapon -s, мы можем посмотреть информацию по своп разделу. Чтобы добавить новый своп раздел, то нам необходимо через команду fdisk создать новый раздел и указать , что он именно своповский раздел, потом его необходимо отформатировать и примонтировать раздел. Командой cat /etc/fstab мы можем посмотреть, какие разделы монтируются при загрузке. Выглядит это примерно так: Мы видим, что вот этот раздел с uuid 50cee6ca-cbd2-454b-a835-2614bf2e9d5d монтируется в корень, знак "/" об этом говорит и имеет файловую систему ext4. Uuid смотрим с помощью команды blkid. Раздел подкачки, как и файл подкачки - это место на диске, которое используется, как RAM. Если у нас не хватает оперативной памяти, то компьютер может пользоваться этим разделом, как оперативной памятью. Создадим новую директорию командой mkdir mounted и смонтируем туда раздел. Например, /dev/sdb5. Используем команду mount /dev/sdb5 /mounted. Чтобы отмонтировать используем команду umount /mounted. LVM LVM - это система управления томами для Linux. Она позволяет создать поверх физических разделов , Logical Volume, которые будут видны операционной системе , как обычные блочные устройства с томами. Преимущества: Мы можем в одну группу Logical Volume можем добавить разное количество физических дисков. Мы можем менять размеры этих разделов прям во время работы операционной системы. В данном случае на картинке есть, 3 HDD, на каждом есть определенное количество разделов. И мы можем из них собрать группу томов vg1. Которая будет видеть свои разделы, как физические тома, те объединяются в группу томов, а внутри этой группы мы можем создавать логические тома, вообще не указывая где они находятся, и они сами распределяются между дисками. Соответственно на каждом логическом томе будет какая-то файловая система. Чтобы посмотреть физические тома пользуемся командой pvdisplay. Посмотреть volume group, команда vgdisplay. Посмотреть логические тома lvdisplay. Удаляем, через fdisk все разделы на жестком диске /dev/sdb. Создаем 2 раздела по 4 ГБ основных с типом 8e, т.е. LVM тип. Создадим физический том командой pvcreate /dev/sdb1, аналогично делаем для второго раздела. Далее необходимо создать виртуальную группу vgcreate vg1 /dev/sdb1 /dev/sdb2, т.е. оба раздела. В группе можем создать пару логических томов командой lvcreate -n lv1 -L 2G vg1, где -n новый раздел, -L - объем и последний параметр в какой виртуальной группе. И можно создать второй lvcreate -n lv2 -L 3G vg1. Появились новые блочные устройства lv1 и lv2. Осталось их отформатировать. Команда mkfs.ext4 /dev/vg2/lv1 и аналогично второй. Данная группа позволяет легко добавлять и удалять HDD. Возможно добавление нового жесткого диска и на увеличение размера наших томов. Чтобы изменить размер команда lvresize -L 4G vg1/lv2. Система LVM позволяет делать снимки состояний, т.е. снапшоты. Они используются для систем резервного копирования, например.
img
Архитектуры х64 и х86 являются одними из наиболее широко используемых типов архитектур системы команд (АСК или ISA – Instruction Set Architecture), созданными Intel и AMD. ISA определяет поведение машинного кода и то, как программное обеспечение управляет процессором. ISA – это аппаратный и программный интерфейс, определяющий, что и как может делать ЦП. Прочитав эту статью, вы узнаете разницу между архитектурами х64 и х86. Что из себя представляет архитектура х86? х86 – это тип ISA для компьютерных процессоров, разработанный Intel в 1978 году. Архитектура х86 основана на микропроцессоре Intel 8086 (отсюда и название) и его модификации 8088. Изначально это была 16-битная система команд для 16-битных процессоров, а позже она выросла до 32-битной системы команд. Количество битов показывает, сколько информации ЦП может обработать за цикл. Так, например, 32-разрядный ЦП передает 32 бита данных за тактовый цикл. Благодаря своей способности работать практически на любом компьютере, от обычных ноутбуков до домашних ПК и серверов, архитектура х86 стала достаточно популярной среди многих производителей микропроцессоров. Наиболее значительным ограничением архитектуры х86 является то, то она может обрабатывать максимум 4096 Мб ОЗУ. Поскольку общее количество поддерживаемых комбинаций равно 232 (4 294 967 295), то 32-разрядный процессор имеет 4,29 миллиарда ячеек памяти. В каждой ячейке хранится 1 байт данных, а в сумме это примерно 4 Гб доступной памяти. На сегодняшний день термин х86 обозначает любой 32-разрядный процессор, способный выполнять систему команд х86. Что из себя представляет архитектура х64? х64 (сокращение от х86-64) – это архитектура системы команд, расширенная до 64-битного кода. В ее основе лежит архитектура х86. Впервые она была выпущена в 2000 году. Она представляла два режима работы – 64-битный режим и режим совместимости, который позволяет пользователям запускать 16-битные и 32-битные приложения. Поскольку вся система команд х86 остается в х64, то старые исполняемые файлы работают практически без потери производительности. Архитектура х64 поддерживает гораздо больший объем виртуальной и физической памяти, чем архитектура х86. Это позволяет приложениям хранить в памяти большие объемы данных. Кроме того, х64 увеличивает количество регистров общего назначения до 16, обеспечивая тем самым дополнительную оптимизацию использования и функциональность. Архитектура х64 может использовать в общей сложности 264 байта, что соответствует 16 миллиардам гигабайт (16 эксабайт) памяти. Гораздо большее использование ресурсов делает эту архитектуру пригодной для обеспечения работы суперкомпьютеров и машин, которым требуется доступ к огромным ресурсам. Архитектура х64 позволяет ЦР обрабатывать 64 бита данных за тактовый цикл, что намного больше, чем может себе позволить архитектура х86. х86 VS х64 Несмотря на то, что оба эти типа архитектуры основаны на 32-битной системе команд, некоторые ключевые отличия позволяют их использовать для разных целей. Основное различие между ними заключается в количестве данных, которые они могут обрабатывать за каждый тактовый цикл, и в ширине регистра процессора. Процессор сохраняет часто используемые данные в регистре для быстрого доступа. 32-разрядный процессор на архитектуре х86 имеет 32-битные регистры, а 64-разрядный процессор – 64-битные регистры. Таким образом, х64 позволяет ЦП хранить больше данных и быстрее к ним обращаться. Ширина регистра также определяет объем памяти, который может использовать компьютер. В таблице ниже продемонстрированы основные различия между системами команд архитектур х86 и х64. ISA х86 х64 Выпущена Выпущена в 1978 году Выпущена в 2000 году Создатель Intel AMD Основа Основана на процессоре Intel 8086 Создана как расширение архитектуры х86 Количество бит 32-битная архитектура 64-битная архитектура Адресное пространство 4 ГБ 16 ЭБ Лимит ОЗУ 4 ГБ (фактически доступно 3,2 ГБ) 16 миллиардов ГБ Скорость Медленная и менее мощная в сравнении с х64 Позволяет быстро обрабатывать большие наборы целых чисел; быстрее, чем х86 Передача данных Поддерживает параллельную передачу только 32 бит через 32-битную шину за один заход Поддерживает параллельную передачу больших фрагментов данных через 64-битную шину данных Хранилище Использует больше регистров для разделения и хранения данных Хранит большие объемы данных с меньшим количеством регистров Поддержка приложения Нет поддержки 64-битных приложений и программ. Поддерживает как 64-битные, так и 32-битные приложения и программы. Поддержка ОС Windows XP, Vista, 7, 8, Linux Windows XP Professional, Windows Vista, Windows 7, Windows 8, Windows 10, Linux, Mac OS   Функции Каждая архитектура системы команд имеет функции, которые ее определяют и дают некоторые преимущества в тех или иных вариантах использования. Следующие списки иллюстрируют функции х64 и х86: х86 Использует сложную архитектуру со сложным набором команд (CISC-архитектуру). Сложные команды требуют выполнения нескольких циклов. х86 имеет больше доступных регистров, но меньше памяти. Разработана с меньшим количеством конвейеров обработки запросов, но может обрабатывать сложные адреса. Производительность системы оптимизируется с помощью аппаратного подхода – х86 использует физические компоненты памяти для компенсации нехватки памяти. Использует программную технологию DEP (Data Execution Prevention – Предотвращение выполнения кода). х64 Имеет возможность обработки 64-битных целых чисел с преемственной совместимость для 32-битных приложений. (Теоретическое) виртуальное адресное пространство составляет 264 (16 эксабайт). Однако на сегодняшний день в реальной практике используется лишь небольшая часть из теоретического диапазона в 16 эксабайт – около 128 ТБ. х64 обрабатывает большие файлы, отображая весь файл в адресное пространство процессора. Быстрее, чем х86, благодаря более быстрой параллельной обработке, 64-битной памяти и шине данных, а также регистрам большего размера. Поддерживает одновременную работу с большими файлами в нескольких адресных пространствах. Кроме того, х64 одновременно эмулирует две задачи х86 и обеспечивает более быструю работу, чем х86. Загружает команды более эффективно. Использует программную технологию DEP (Data Execution Prevention – Предотвращение выполнения кода). Применения Из-за того, что эти две архитектуры имеют различные функции и имеют различия в доступе к ресурсам, скорости и вычислительной мощности, каждая архитектура используется для различных целей: х86 Многие компьютеры по всему миру по-прежнему основаны на операционных системах и процессорах х86. Используется для игровых консолей. Подсистемы облачных вычислений по-прежнему используют архитектуру х86. Старые приложения и программы обычно работают на 32-битной архитектуре. Лучше подходит для эмуляции. 32-битный формат по-прежнему более предпочтителен при производстве аудио из-за возможности совмещения со старой аудиотехникой. х64 Все большее число ПК используют 64-разрядные процессоры и операционные системы на основе архитектуры х64. Все современные мобильные процессоры используют архитектуру х64. Используется для обеспечения работы суперкомпьютеров. Используется в игровых консолях. Технологии виртуализации основаны на архитектуре х64. Она лучше подходит для новых игровых движков, так как она быстрее и обеспечивает лучшую производительность. Ограничения И хотя обе ISA имеют какие-то ограничения, х64 – все же более новый и более совершенный тип архитектуры. Ниже приведен список ограничений для обоих типов архитектур: х86 Имеет ограниченный пул адресуемой памяти. Скорость обработки ниже в сравнении с архитектурой х64. Фирмы-поставщики больше не разрабатывают приложения для 32-битных операционных систем. Для современных процессоров требуется 64-битная ОС. Все устройства в системе (видеокарты, BIOS и т.д.) совместно используют доступную оперативную память, оставляя еще меньше памяти для ОС и приложений. х64 Она не работает на устаревших устройствах. Ее высокая производительность и скорость, как правило, потребляют больше энергии. Маловероятно, что 64-разрядные драйверы будут доступны для старых систем и оборудования. Некоторое 32-разрядное программное обеспечения не полностью совместимо с 64-разрядной архитектурой. Как проверить, на какой архитектуре работает ваш компьютер – х64 или х86? Если вы купили ПК в последние 10-15 лет, то он с большой долей вероятности работает на архитектуре х64. Для того, чтобы проверить, является ли ваш компьютер 32-разрядным или 64-разрядным, выполните следующие действия: Шаг 1: Откройте настройки В Windows 10 нажмите на клавишу Windows и щелкните значок «Settings» («Настройки»). Шаг 2: Откройте параметры системы В меню настроек выберите пункт «System» («Система»). Шаг 3: Найдите характеристики устройства Выберите пункт «About» («О программе») на левой панели и в разделе «Device specifications» («Характеристики устройства») найдите тип системы: В приведенном выше примере система представляет собой 64-разрядную операционную систему с процессором на базе архитектуры х64. Через командную строку это можно сделать быстрее: wmic OS get OSArchitecture Ну а для Linux нужно выполнить команду: uname -m Что лучше – х86 или х64? Несмотря на то, что и у х86, и у х64 есть свои преимущества, будущее не терпит ограничений, а это значит, что х86 практически перестанет использоваться или будет полностью выведена из использования. К тому же, х64 намного быстрее, может выделять больше оперативной памяти и имеет возможности параллельной обработки через 64-битную шину данных. Это делает ее лучшим вариантом при выборе между двумя типами архитектуры. Если стоит выбор, какую ОП установить, то всегда лучше отдать предпочтение в пользу 64-разрядной ОС, поскольку она может запустить как 32-разрядное, так и 64-разрядное программное обеспечение. А вот ОС на базе х86 работает только с 32-разрядным программным обеспечением. В общем и целом, х64 гораздо более эффективна, чем х86, поскольку использует всю установленную оперативную память, предоставляет больше места на жестком диске, имеет более высокую скорости шины и общую лучшую производительность. Заключение Данная статья показала различия между архитектурами системы команд х86 и х64, а также описала их функции, возможные применения и ограничения. Примите во внимание все особенности каждой ISA и сделайте выбор в пользу наиболее вам подходящей.
img
В одной из вышедших ранее статей мы знакомились с инструментарием Hadoop и рассматривали процедуру развертывания кластера на базе хадуп. Сегодня мы рассмотрим сценарии использования Hadoop, иными словами зачем он нужен и в чем его польза. Вспомним, что же такое Hadoop? Hadoop, если говорить простым языком это набор программных решений, позволяющих осуществлять работу с так называемыми "большими данными". Большие данные, в данном контексте это гигантские объемы данных (не обязательно имеющих структуру), которые наиболее эффективно обрабатываются горизонтально масштабируемыми программами. Такие программные решения позволяют разбивать большие объемы данных на части и использовать для работы с этими элементами множество отдельных аппаратных машин, выполняющих обработку данных параллельно. Собственно, одним из таких программных решений и является Hadoop. Благодаря широкому набору элементов для конфигурирования, Hadoop имеет очень большую гибкость, то есть этот инструмент можно настроить под множество различных задач. Стоит, однако, отметить, что наибольшую эффективность при обработке данных Hadoop имеет в сочетании с другими программными решениями (как пример можно привести SAP HANA) Разберем наиболее часто используемые сценарии работы Hadoop. Можно использовать эту технологию в качестве базы данных, хранилища данных, инструмента обработки и анализа данных. В качестве хранилища данных Hadoop привлекает тем, что может хранить разнородные данные из множества источников, без ограничения на типы анализа. Конкретные сценарии использования в данном случае будут таковы: Хранение больших объемов документов: Конкретный пример поликлиники. Медицинские данные населения вполне можно считать большими данными, поскольку они должны храниться долгое время и со временем эта информация пополняется. С учетом перехода системы здравоохранения на электронный документооборот, Hadoop будет являться очень эффективным решением. Архивы журналов электронной почты: С учетом законодательства, хранение переписки по электронной почте с последующим анализом требует эффективных решений для реализации. И здесь опять-таки Hadoop является одним из лучших вариантов. Справочные данные: В различных отраслях человеческой деятельности для изучения используется метод сбора данных и их анализа. Например, метеостанции собирают данные о погоде, затем отправляют их в единый центр, после чего данные анализируются и составляется полная картина для отдельного региона или для всей планеты. Hadoop, в данном случае, будет эффективен, если точек сбора данных достаточно много, и поступающие данные регулярны. Решение Hadoop позволяет довольно быстро собрать данные и длительное время хранить их на серверах для дальнейшего анализа. Социальные сети: Размещение больших данных в хранилищах Hadoop позволяет осуществить к ним быстрый доступ идеальное решение для социальных сетей. Непрерывный сбор данных в режиме реального времени: Информация, поступающая с датчиков, сенсоров, камер видеонаблюдения и т.п. имеет огромное значение для любого современного технически ориентированного предприятия. Хранилища Hadoop эффективны и для данного сценария использования. Также Hadoop может использоваться чисто как база данных для сторонних программных решений. В этом случае сценарии использования могут быть такими: Извлечение и адаптация данных из других систем: В данном случае, благодаря гибкости, Hadoop может отбирать необходимые данные и интегрировать их в свои базы, для дальнейшей обработки и анализа База данных для больших объемов информации в реальном времени: Эта возможность имеет серьезное значение для социальных сетей, где важно сохранять различные выборки данных Предоставление доступа к Hadoop другим системам: Hadoop может эффективно интегрироваться в качестве базы данных в другие программные решения. В виде инструмента обработки и анализа данных Hadoop так же проявляет себя очень эффективно. Анализ рисков предприятия: Благодаря собранным данным и параллельной обработке, программа позволяет быстро просчитать риски и выявить слабые места в деятельности организации Оперативное обновление данных: Hadoop позволяет вносить дополнительную информацию в имеющиеся данные, что позволяет устранить проблемы с нехваткой нужной информации. Быстрое выявление различий в больших объемах схожих данных: Здесь в качестве примера можно привести сравнение расшифровок генетического кода. Использование Hadoop в разы ускоряет этот процесс. Таким образом, можно сказать, что на текущий момент дистрибутивы Hadoop пожалуй, самый эффективный набор инструментов для обработки больших данных. А благодаря непрерывной работе над улучшением инструментария, в ближайшее время вряд ли появится что-то более эффективное.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59