Расширение диска
Теперь представим ситуацию, что у вас используется какой-то lvm раздел и вы хотите его увеличить. В общем случае я не рекомендую это делать без особой нужды. Увеличивать можно даже системный диск с / , но на практике я получал неожиданные проблемы от такого расширения. Пример такой проблемы — Booting from Hard Disk error, Entering rescue mode. В общем случае все должно расширяться без проблем, но когда я разбирался с ошибкой, я находил в интернете информацию о том, что люди сталкивались с тем же самым именно после расширения системного lvm раздела.
Если раздел не системный, то проблем быть не должно. Последовательность действий следующая при расширении lvm раздела:
- Добавляем новый диск в систему.
- Подключаем диск к группе томов, на которой находится раздел, который будем увеличивать.
- Расширяем lvm раздел за счет свободного места, которое образовалось в группе томов за счет добавления нового диска.
Теперь по пунктам проделаем все это. У нас имеется группа томов из 2-х дисков — sdb и sdc. На этой группе размещен один раздел, который занимает все свободное пространство. Мы его расширим за счет нового диска.
Смотрим, что у нас есть.
Увеличим раздел lv_full до 30 Гб за счет добавления в группу томов нового диска на 10 Гб. Имя этого диска — sdd. Добавим его в существующую группу томов.
# vgextend vgbackup /dev/sdd Physical volume "/dev/sdd" successfully created. Volume group "vgbackup" successfully extended
Смотрим информацию по томам.
# pvs PV VG Fmt Attr PSize PFree /dev/sda5 debian10-vg lvm2 a-- <19.76g 0 /dev/sdb vgbackup lvm2 a-- <10.00g 0 /dev/sdc vgbackup lvm2 a-- <10.00g 0 /dev/sdd vgbackup lvm2 a-- <10.00g <10.00g
Новый диск добавлен в группу и он пока пуст. Расширяем существующий раздел на 100% свободного места группы томов.
# lvextend -r -l +100%FREE /dev/vgbackup/lv_full
Раздел увеличен. Я его не отключал в процессе расширения. Все сделано, как говорится, на горячую. С lvm это очень просто и я наглядно рассказал, как это сделать. А теперь давайте расширим обычный раздел диска, не lvm. Это тоже реально и не сильно сложнее.
Допустим, у нас есть диск /dev/sdb размером 10 Гб, на нем один раздел sdb1, который занимает все свободное пространство диска. Это диск виртуальной машины, который мы можем увеличить через управление дисками гипервизора. Я расширил диск до 20 Гб. Смотрим, что получилось.
# fdisk -l | grep /dev/sdb GPT PMBR size mismatch (20971519 != 41943039) will be corrected by write. The backup GPT table is not on the end of the device. This problem will be corrected by write. Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors /dev/sdb1 2048 20971486 20969439 10G Linux filesystem Partition 2 does not start on physical sector boundary.
У нас объем диска 20 Гб, на нем только один раздел на 10 Гб. Нам его надо расширить до 20-ти Гб. Диск нужно отмонтировать, прежде чем продолжать.
# umount /dev/sdb1
Открываем диск в fdisk и выполняем там следующую последовательность действий:
- Удаляем существующий раздел sdb1 на 10G.
- Вместо него создаем новый sdb1 на 20G.
- Записываем изменения.
# fdisk /dev/sdb
Проверяем, что получилось:
# fdisk -l | grep /dev/sdb Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors /dev/sdb1 2048 41943006 41940959 20G Linux filesystem
Монтируем раздел обратно в систему и проверяем размер.
# mount /dev/sdb1 /mnt/backup # df -h | grep sdb1 /dev/sdb1 9.8G 37M 9.3G 1% /mnt/backup
Размер файловой системы на разделе не изменился. Расширяем ее отдельной командой.
# resize2fs /dev/sdb1 resize2fs 1.44.5 (15-Dec-2018) Filesystem at /dev/sdb1 is mounted on /mnt/backup; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 The filesystem on /dev/sdb1 is now 5242619 (4k) blocks long.
Проверяем, что получилось.
# df -h | grep sdb1 /dev/sdb1 20G 44M 19G 1% /mnt/backup
Раздел ext4 расширился до желаемых 20 Гб. Я не пробовал расширять системный раздел ext4 без размонтирования, не было необходимости. Но если у вас системный раздел на xfs, то вот пример того, как его можно расширить без отмонтирования и без остановки сервера — Расширение (увеличение) xfs корневого раздела / без остановки.
Как удалить раздел с помощью команды fdisk
Если раздел больше не используется в системе, мы можем удалить его, используя следующие шаги.
Убедитесь, что вы будете вводить правильный номер раздела, чтобы удалить его. В данном случае я собираюсь удалить раздел /dev/sdc2.
$ sudo fdisk /dev/sdc Welcome to fdisk (util-linux 2.30.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d Partition number (1-5, default 5): 2 Partition 2 has been deleted. Command (m for help): p Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8cc8f9e5 Device Boot Start End Sectors Size Id Type /dev/sdc1 2048 2099199 2097152 1G 83 Linux /dev/sdc3 4196352 6293503 2097152 1G 83 Linux /dev/sdc4 6293504 20971519 14678016 7G 5 Extended /dev/sdc5 6295552 8392703 2097152 1G 83 Linux Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Буква, том, метка тома.
После того, как диск разбит на части и частям присвоены буквы, эти части необходимо отформатировать (format) — разбить на логические участки, сектора. Участки будут наполняться информацией. Каждый отдельный основной или логический диск может быть отформатирован отдельной файловой системой. Например, диск С: — FAT32, D: — FAT, E: — NTFS. После того, как диск отформатирован, он называется томом (volume) и ему можно присвоить метку тома (volume label) — своеобразное имя. Имя (метка тома) назначается для удобства пользователя и является не обязательным параметром.
Буквы можно присвоить самому, выбрав из свободных — не занятых букв. В случае удаления какого либо тома, объединения томов операционная система сама произведет переназначение букв, что может привести к неработоспособности отдельных программ. Дело в том, что при установке (инсталяции) програмного обеспечения, отдельные файлы программ взаимодействуют друг с другом. Причем часть файлов может находиться на одном диске (например, на диске С: в системной директории), а часть на другом (например, на диске D: в папке, куда установлена программа). Места расположения файлов для взаимодействия указываются либо в конфигурационных файлах MS-DOS либо в системном реестре Windows. Изменение буквы тома не приведет к изменениям записей в реестре или конфигурационных файлах. В результате части программы не смогут работать согласованно. В этом основная опасность изменения буквы диска. Об этом нужно помнить, создавая мультисистемный диск и производя манипуляции с логическими дисками.
SIZES top
The "last sector" dialog accepts partition size specified by number of sectors or by +/-<size>{K,B,M,G,...} notation. If the size is prefixed by '+' then it is interpreted as relative to the partition first sector. If the size is prefixed by '-' then it is interpreted as relative to the high limit (last available sector for the partition). In the case the size is specified in bytes than the number may be followed by the multiplicative suffixes KiB=1024, MiB=1024*1024, and so on for GiB, TiB, PiB, EiB, ZiB and YiB. The "iB" is optional, e.g., "K" has the same meaning as "KiB". The relative sizes are always aligned according to device I/O limits. The +/-<size>{K,B,M,G,...} notation is recommended. For backward compatibility fdisk also accepts the suffixes KB=1000, MB=1000*1000, and so on for GB, TB, PB, EB, ZB and YB. These 10^N suffixes are deprecated.
Посмотреть свободное место на диске
Рассмотрим теперь вопрос, как удобнее всего смотреть свободное место на диске. Тут особо вариантов нет — используется известная и популярная утилита df.
# df -h
Команда показывает информацию и заполнении всех примонтированных дисков, в том числе и сетевых, если они присутствуют в системе. Нужно понимать, что эта информация не всегда достоверная. Вот пример такой ситуации — Диск занят на 100% и не понятно чем, df и du показывают разные значения.
Сразу же покажу удобную комбинацию команд, чтобы посмотреть, кто в данной директории занимает больше всего места. Директории выстроятся в список, начиная с самой объемной и далее. В моем примере будут выведены 10 самых больших папок в каталоге.
# du . --max-depth=1 -ah | sort -rh | head -10
В первой строке будет объем самой директории /usr, а далее вложенные в нее. Привожу пример небольшого скрипта, который я люблю использовать, чтобы оценить размер директорий, к примеру, в архиве бэкапов и сохранить информацию в текстовый файл. Актуально, если у вас не настроен мониторинг бэкапов в zabbix.
echo "==================================" >> dir_size.txt echo "Dirs size `date +"%Y-%m-%d_%H-%M"`" >> dir_size.txt echo "==================================" >> dir_size.txt du -s *| sort -nr | cut -f 2- | while read a;do du -hs $a >> dir_size.txt ;done
На выходе останется файл dir_size.txt следующего содержания.
================================== Dirs size 2019-09-04_18-16 ================================== 3.2T resad 2.0T winshare 1.7T mail 1.2T doc 957G share 43G web 17G hyperv 6.5G zabbix 5.2G onlyoffice 525M databases
В целом, по свободному месту на дисках все. Утилит df и du достаточно, чтобы закрыть этот вопрос.
Создание разделов диска во время установки Linux Ubuntu
Для самостоятельного создания разметки диска во время установки Linux Ubuntu необходимо выбрать тип установки «Другой вариант» и нажать «Продолжить».
Если у Вас несколько физических дисков (у меня один) выбираем нужный и нажимаем «Новая таблица разделов».
Затем нас предупреждают, что будет создана новая пустая таблица разделов, мы нажимаем «Продолжить», т.е. подтверждаете свое действие.
Далее выбираем пункт «Свободное место» и нажимаем на плюсик (+).
Первое, что мы должны создать — это корневой раздел, т.е. основной (системный) раздел под установку системы. Для этого мы указываем:
- Размер – для корневого раздела минимально 15 гигабайт, на перспективу, конечно же, лучше указать больше, например 50 гигабайт. У меня для теста диск маленький, поэтому я указываю 15 гигабайт;
- Тип нового раздела – указываем «Первичный», так как данный тип должен обязательно быть на диске;
- Местоположение нового раздела – указываем «Начало этого пространства»;
- Использовать как – здесь нам необходимо выбрать тип файловый системы, оставляем по умолчанию файловую систему Ext4 — это журналируемая файловая система для операционных систем Linux, которая наиболее подходит на текущий момент для файловой системы корневого раздела (да и для пользовательских данных);
- Точка монтирования – указываем «/», так как это у нас корневой раздел.
Жмем «ОК».
Затем практически таким же способом создаем раздел для пользовательских данных, т.е. домашний раздел. Создание такого раздела позволит Вам хранить свои данные (документы, музыку, фото и так далее) в отдельном месте, которое не нужно будет каким-то специальным образом копировать (резервировать) во время переустановки (обновления) дистрибутива или даже его смене.
В данном случае нам необходимо указать:
- Размер – по возможности максимальный, т.е. все оставшееся место, как я уже говорил у меня тестовый диск маленький, поэтому и осталось мало место;
- Тип нового раздела – указываем «Логический»;
- Местоположение нового раздела – указываем «Начало этого пространства»;
- Использовать как – также выбираем файловую систему Ext4;
- Точка монтирования – указываем «/home».
Жмем «ОК».
Раздел подкачки «swap» (своп) мы создавать не будем, так как в Ubuntu, начиная с версии 17.04, вместо раздела подкачки используется файл подкачки (как в Windows). По умолчанию его размер составляет 5% от свободного места на диске, но не более 2 гигабайт. После установки размер файла подкачки в любое время можно будет изменить.
На этом разметка диска, которая подойдет для домашнего компьютера, закончена, нажимаем «Установить сейчас».
Подтверждаем внесение изменений на диск, жмем «Продолжить» и продолжаем установку дистрибутива.
У меня на этом все, надеюсь, материал был Вам полезен, пока!
Нравится24Не нравится7
Форматирование жестких дисков.
Операция форматирования жестких дисков настолько проста и быстра, что иногда её применяют для расчистки дискового пространства, вместо операции DELETE удаления файлов (особенно часто, с этой целью, её применяли во времена господства MS-DOS, в котором удаление, даже небольших программ, длится столько же, сколько длилась Санта Барбара). Программа Format.com предназначена для работы в системе MS-DOS и, к тому же, отказывается обрабатывать диск, на котором запущенна хотя бы одна программа. По этому, как правило, её применяют, загружаясь с дискеты.
Вызывают программу командой «Format».
Поставленная через один пробел буква с двоеточием (например, Format C:) указывает, какой диск следует форматировать.
При форматировании основного раздела MS-DOS, в его корневой каталог должны быть перенесены системные файлы Io.sys и Msdos.sys, для чего через пробел после указания диска, задаётся ключ /s (например, Format C: /S). Тот же перенос системных файлов можно выполнить после форматирования с помощью программы Sys.com для чего достаточно набрать её имя и указать будущий системный диск (Sys С:). По окончании переноса системных файлов, соответствующее сообщение появится на экране.
В процессе форматирования диска программа Format выдаёт запрос о назначении метки создаваемого тома. Эта метка заносится в корневой каталог и помогает пользователю ориентироваться в назначении данного диска. Она же может привести к ошибкам при переносе системных файлов, должных занимать строго соответствующие кластеры, если эти файлы ещё не перенесены или для них не зарезервировано место ключом (параметром) /B. Поэтому, при форматировании основного раздела, от назначения метки, до переноса системных файлов, следует воздержаться. Создать или изменить метку никогда не поздно средствами Windows, путём открытия свойств выбранного диска. Этот способ назначения метки является наиболее корректным.
Отформатировав системный диск (основной раздел MS-DOS) и отправив на него указанные файлы, перезапустив компьютер, можно загружаться с него.
После форматирования системного диска, требуется не только заново установить операционную систему, но так же инсталлировать саундкарту, видеокарту и прочие дополнительные устройства. Драйвера основных устройств (например, гибкого и жесткого диска), содержатся в BIOS и новой установке не нуждаются.
< Глава 7. Глава 8. Глава 9. >
Что такое fdisk?
fdisk обозначает «fixed disk» или «format disk». Это утилита командной строки, которая позволяет пользователям выполнять различные действия с дисками. Она позволяет нам просматривать, создавать, изменять размеры, удалять, перемещать и копировать разделы.
Она понимает таблицы разделов MBR, Sun, SGI и BSD, не понимает таблицу разделов GUID (GPT) и не предназначена для больших разделов.
fdisk позволяет нам создать максимум четыре основных раздела на диск. Один из них может быть расширенным разделом, и он может содержать несколько логических разделов.
1-4 зарезервировано для четырех основных разделов, а логические разделы начинаются с 5.
Установка активного раздела
Для загрузки с винчестера необходимо, чтобы первичный раздел DOS был активным. Выберите опцию 2 из главного меню и введите номер раздела с которого будет осуществляться загрузка:
Enter the number of the partition you want to make active. (Введите номер раздела, который вы хотите сделать активным)
При выводе на экран информации о разбиении активный раздел помечается буквой А.
После выполнения этих действий разбиение жесткого диска закончено. Осталось только отформатировать получившиеся логические диски.
Примечание: Если ни один из разделов не сделан активным, то загрузиться с винчестера невозможно. При этом каких-либо сообщений не выводится.
5.3. Mixed primary and logical partitions
The overview: create one use one of the primary
partitions to house all the extra partitions. Then create logical
partitions within it. Create the other primary partitions before or
after creating the logical partitions.
Example:
I start fdisk from the shell prompt:
# fdisk /dev/sda |
First I figure out how many partitions I want. I know my drive has a
183Gb capacity and I want 26Gb partitions (because I happen to have
back-up tapes that are about that size).
183Gb / 26Gb = ~7
so I will need 7 partitions. Even though fdisk accepts partition sizes
expressed in Mb and Kb, I decide to calculate the number of cylinders
that will end up in each partition because fdisk reports start and
stop points in cylinders. I see when I enter fdisk that I have 22800
cylinders.
> The number of cylinders for this disk is set to 22800. There is > nothing wrong with that, but this is larger than 1024, and could in > certain setups cause problems with: 1) software that runs at boot > time (e.g., LILO) 2) booting and partitioning software from other > OSs (e.g., DOS FDISK, OS/2 FDISK) |
Section 4
Since I have 4 primary partitions, 3 of them can be 3258
long. The extended partition will have to be (4 * 3258), or 13032,
cylinders long in order to contain the 4 logical partitions.
I enter the following commands to set up the first of the 3 primary
partitions (stuff I type is bold ):
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-22800, default 1): <RETURN> Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-22800, default 22800): 3258 |
Partition number (1-4): 4 First cylinder (9775-22800, default 9775): <RETURN> Using default value 9775 Last cylinder or +size or +sizeM or +sizeK (9775-22800, default 22800): <RETURN> Using default value 22800 |
/dev/sda1 1 3258 26169853+ 83 Linux /dev/sda2 3259 6516 26169885 83 Linux /dev/sda3 6517 9774 26169885 83 Linux /dev/sda4 9775 22800 104631345 5 Extended |
Command (m for help): n First cylinder (9775-22800, default 9775): <RETURN> Using default value 9775 Last cylinder or +size or +sizeM or +sizeK (9775-22800, default 22800): 13032 |
Device Boot Start End Blocks Id System /dev/sda1 1 3258 26169853+ 83 Linux /dev/sda2 3259 6516 26169885 83 Linux /dev/sda3 6517 9774 26169885 83 Linux /dev/sda4 9775 22800 104631345 5 Extended /dev/sda5 9775 13032 26169853+ 83 Linux /dev/sda6 13033 16290 26169853+ 83 Linux /dev/sda7 16291 19584 26459023+ 83 Linux /dev/sda8 19585 22800 25832488+ 83 Linux |
Информация о дисках
Информацию о дисках в системе можно получить различными способами. Зачастую, интересна информация не только о физических дисках, но и о разделах. Начнем все же с физических дисков. Подробную информацию о железе, в том числе и о дисках, выдает программа hwinfo. В базовой системе ее нет, нужно поставить отдельно.
# apt install hwinfo
Теперь смотрим информацию о дисках:
# hwinfo --disk
Программа выведет железную информацию о всех дисках в системе. Вот пример вывода одного из физических дисков.
На выходе максимально подробная информация о диске — вендор, модель, серийный номер, метки диска в системе и много другое. Программа показывает принадлежность диска к рейд массиву, что бывает удобно. Вот вывод информации о диске из рейда adaptec.
Следующая программа, которую я использую, чтобы посмотреть информацию о физическом диске в debian — smartmontools. Она более громоздкая, тянет за собой кучу зависимостей, но зато умеет по расписанию следить за смартом дисков, слать уведомления в случае проблем. Фактически это не утилита, а готовый сервис. Ставится так.
# apt install smartmontools
Возможностей у программы много. Я в рамках данной статьи, покажу только, как посмотреть информацию о диске, в том числе параметры SMART.
# smartctl -i /dev/sda
SMART диска.
# smartctl -A /dev/sdd
С диском некоторые проблемы, судя по смарту.
Физические диски посмотрели, теперь посмотрим на список дисков с привязкой к логическим разделам. Я обычно использую 2 утилиты для этого — lsblk и fdisk.
# lsblk -a
Fdisk позволяет сразу посмотреть более подробную информацию о разделах.
# fdisk -l | grep /dev/sd
Мне обычно хватает этих команд, чтобы получить полную информацию о дисках и разделах на них.
Разметка диска с помощью fdisk
Это руководство проведет вас через основы разбиения жесткого диска с помощью fdisk. Это простой, но мощный инструмент, который предлагает множество вариантов управления вашими дисками. Для более полной технической разбивки обратитесь к техническому руководству в конце руководства.
Разметка вашего жесткого диска сотрет все данные на нем. Обязательно сделайте резервную копию своих данных или работайте с пустым диском.
-
Начните с выяснения местоположения вашего жесткого диска . Ты можешь попробовать:
Затем попытайтесь выяснить, какой это диск. Ваш основной диск, вероятно, / dev / sda, но вам нужно убедиться в этом.
Вы также можете взглянуть на / etc / fstab, чтобы увидеть, какие диски и где смонтированы. Если он дает вам номера UUID, вы можете найти UUID каждого раздела и посмотреть, какие из них соответствуют.
-
Затем перечислите текущую таблицу разделов на диске, используя флаг -l . Замените «/ dev / sda» на свой реальный диск.
Если вы работаете с пустым диском, там не должно быть много.
-
Запустите команду fdisk снова. На этот раз без каких-либо флагов. Это приведет вас в консоль fdisk.
-
Попав в консоль fdisk, вы можете начать работать со своими разделами. Во-первых, если вы хотите перечислить разделы, как раньше, вы можете ввести клавишу p .
-
Затем используйте клавишу n, чтобы создать новый раздел.
-
После этого появится запрос, хотите ли вы создать основной или расширенный раздел . Выберите p (основной).
-
Выберите номер раздела. По умолчанию 1 для первого раздела, так что используйте его.
-
Затем он попросит вас выбрать первый сектор. Не беспокойся об этом. Просто нажмите Enter для выбора по умолчанию.
-
Следующая подсказка позволит вам выбрать размер вашего раздела. Вы можете указать размер раздела в мегабайтах (M) или гигабайтах (G). Предполагая, что вы настраиваете диск для установки Linux, 512M — хорошее место для загрузки загрузочного раздела.
-
После этого вы можете снова просмотреть новый раздел с помощью клавиши p .
-
Если вы планируете использовать новый раздел в качестве загрузочного раздела, вам нужно включить флаг загрузки. Сделайте это, нажав . Затем, если потребуется, введите номер раздела. Если это единственный на вашем диске, это 1 .
-
Теперь вы можете создавать другие разделы на вашем диске. Начните ввод п снова.
-
Нажмите 1 еще раз для основного раздела.
-
Используйте номер раздела по умолчанию. Если вы начинаете заново, это 2 .
-
Используйте первый сектор по умолчанию тоже. Это начнется сразу после предыдущего раздела. Нажмите Enter, чтобы продолжить.
-
Еще раз выберите размер вашего диска. Если вы хотите настроить корневой раздел с отдельным домашним разделом, что-то вроде + 20G будет работать хорошо. Если вы хотите занять оставшуюся часть свободного места, просто нажмите Enter .
-
Повторите эти шаги для каждого нового раздела, который вы хотите создать на диске. Когда вы закончите, нажмите w, чтобы записать таблицу разделов на диск.
-
Теперь вы можете использовать команду mkfs для форматирования разделов для использования. Для большинства систем Linux файловая система EXT4 — это то, что вам нужно, поэтому вы можете запустить следующий набор команд для настройки ваших разделов. Это предполагает, что вы работаете с / dev / sda и что вы настроили отдельные домашний и корневой разделы.
-
Ваш новый разделенный и отформатированный диск готов к использованию. Если вы следили за этим, вы можете установить и запустить дистрибутив Linux, например Arch Linux, из только что созданных вами разделов.
DESCRIPTION top
fdisk is a dialog-driven program for creation and manipulation of partition tables. It understands GPT, MBR, Sun, SGI and BSD partition tables. Block devices can be divided into one or more logical disks called partitions. This division is recorded in the partition table, usually found in sector 0 of the disk. (In the BSD world one talks about `disk slices' and a `disklabel'.) All partitioning is driven by device I/O limits (the topology) by default. fdisk is able to optimize the disk layout for a 4K-sector size and use an alignment offset on modern devices for MBR and GPT. It is always a good idea to follow fdisk’s defaults as the default values (e.g., first and last partition sectors) and partition sizes specified by the +/-<size>{M,G,...} notation are always aligned according to the device properties. CHS (Cylinder-Head-Sector) addressing is deprecated and not used by default. Please, do not follow old articles and recommendations with fdisk -S <n> -H <n> advices for SSD or 4K-sector devices. Note that partx(8) provides a rich interface for scripts to print disk layouts, fdisk is mostly designed for humans. Backward compatibility in the output of fdisk is not guaranteed. The input (the commands) should always be backward compatible.
Создание диска из оперативной памяти (озу)
Расскажу об еще одной интересной возможности при работе с дисками — создание диска из оперативной памяти. Зачем это может пригодится на практике, я не знаю. Сам использовал только из любопытства для тестов. В проде лично я не вижу применения. Linux обычно и так использует всю доступную оперативную память и кэширует файловые операции. Так что большой необходимости в дисках в оперативной памяти я не вижу. Но может вы найдете реальное применение.
Создаем диск из оперативной памяти размером в 5 Гб и монтируем его в /mnt/tmpfs.
# mkdir /mnt/tmpfs/ # mount -t tmpfs -o size=5000M tmpfs /mnt/tmpfs/
Смотрим, что получилось.
# df -h
Я создал диск в оперативной памяти размером 5 Гб. Проверим его скорость записи.
# # sync; dd if=/dev/zero of=/mnt/tmpfs/tempfile bs=1M count=3000; sync 3000+0 records in 3000+0 records out 3145728000 bytes (3.1 GB, 2.9 GiB) copied, 1.11855 s, 2.8 GB/s
На практике я все это не проверял. Есть какой-то прирост к отклику сайта или нет, если его кэш поместить на такой диск. Было бы любопытно проверить, но как-то все времени не хватает. Может кто-то проверит и поделится результатом. Так же такой диск можно использовать под какую-нибудь тестовую базу данных для ускорения обработки запросов. Можно, конечно, заморочиться и настроить нормально кэши самой базы. Но если файлы базы просто поместить на диск в оперативной памяти, то прирост очевидный будет сразу же, без всяких настроек.
Обращаю внимание на важный нюанс. Следите за заполнением диска из памяти
Если вы израсходуете всю доступную память и начнет работать swap, вы получите сильные тормоза в системе.
Подключение Яндекс Диска
Статью с настройкой дисков завершу описанием подключения Яндекс.Диска. Я лично давно и интенсивно его использую. У меня есть статья по созданию резервной копии сайта на яндекс.диск. Статья хоть и старая, но актуальная. Я продолжаю использовать предложенные там решения.
Яндекс диск можно подключить как системный диск по webdav. Скажу сразу, что работает это так себе, я давно им не пользуюсь в таком виде. Мне больше нравится работать с ним через консольный клиент linux.
Устанавливаем консольный клиент yandex-disk на Debian.
# echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" | tee -a /etc/apt/sources.list.d/yandex-disk.list > /dev/null # apt install gnupg # wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | apt-key add - # apt update && apt install yandex-disk
Дальше запускаете начальную настройку.
# yandex-disk setup
После этого яндекс диск подключен к системе и готов к работе. Посмотреть его статус можно командой.
# yandex-disk status
Остановить или запустить Яндекс.Диск можно командами.
# yandex-disk stop # yandex-disk start
Файл конфигурации находится по адресу /root/.config/yandex-disk/config.cfg. Туда, к примеру, можно добавить список папок исключений, которые не нужно синхронизировать.
exclude-dirs="dir1,exclude/dir2,path/to/another/exclude/dir"
Консольный клиент поддерживает символьные ссылки. Я много где использовал его. В основном в скриптах по автоматизации бэкапов. К примеру, я останавливал сервис яндекс диска, готовил бэкапы к отправке. Упаковывал их архиватором с разбивкой архивов по размеру. Потом создавал символьные ссылки в папке яндекс диска и запускал синхронизацию. Когда она заканчивалась, удалял локальные файлы и останавливал синхронизацию.
Яндекс диск сильно тормозит и падает, если у вас много мелких файлов. Мне доводилось хранить в нем бэкапы с сотнями тысяч файлов. Передать их в облако напрямую было невозможно. Я паковал их в архивы по 2-10 Гб и заливал через консольный клиент. Сразу могу сказать, что это решение в пользу бедных. Этот облачный диск хорош для домашних нужд пользователей и хранения семейных фоток и видео. Когда у вас большие потоки данных, которые нужно постоянно обновлять, работа с яндекс диском становится сложной.
Во-первых, трудно мониторить такие бэкапы. Во-вторых, тяжело убедиться в том, что то, что ты залил в облако, потом нормально скачается и распакуется из бэкапа. Как запасной вариант для архивов, куда они будут складываться раз в неделю или месяц, подойдет. Но как основное резервное хранилище точно нет. Какие только костыли я не придумывал для Яндекс.Диска в процессе промышленной эксплуатации. В итоге все равно почти везде отказался. Да, это очень дешево, но одновременно и очень ненадежно. Он иногда падает. Это хорошо, что упал, можно отследить и поднять. Так же он может зависнуть и просто ничего не синхронизировать, при этом служба будет работать. Все это я наблюдал, когда пытался синхронизировать сотни гигабайт данных. Иногда у меня это получалось
Заключение
Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.
Онлайн курс «SRE практики и инструменты»
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «SRE практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и Linux. Обучение длится 3 месяц, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
На курсе вы узнаете как:
- Внедрить SRE практики в своей организации
- Управлять надежностью, доступностью и эффективностью сервисов
- Управлять изменениями
- Осуществлять мониторинг
- Реагировать на инциденты и производительность
- Работать со следующим технологическим стеком: Linux, AWS, GCP, Kubernetes, Ansible, Terraform, Prometheus, Go, Python.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .