Вопрос или проблема
Пожалуйста, подтвердите, является ли это правильным способом идентификации необработанных NVMe SSD дисков, которые я могу использовать для форматирования и создания разделов файловой системы внутри.
Цель состоит в том, чтобы идентифицировать объемы дисков NVMe SSD, которые вообще не используются, и которые я могу использовать для хранения больших данных.
lsblk -b -I 259 -o NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS,SIZE --json | \
jq -r '.blockdevices | sort_by(.size) | reverse | .[] | select(.children == null and .fstype == null) | select(.mountpoints[] | length == 0)'
Опции lsblk
-I 259
для выбора только NVMe SSD дисков.-o NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS,SIZE
для перечисления столбцов.-b
для отображения размеров в байтах, а не в человеко-читаемом формате (например, 85G), чтобы иметь возможность сравнения по размеру.
Опции jq
.blockdevices | sort_by(.size) | reverse | .[]
для сортировки NVMe дисков по размеру.select(.children == null and .fstype == null)
для выбора необработанного устройства без какого-либо форматирования.select(.mountpoints[] | length == 0)
для выбора устройств без текущих точек монтирования.
Ответ или решение
Чтобы обеспечить правильное использование NVMe SSD дисков в контексте их пустоты и готовности к форматированию и созданию файловых систем, необходимо внимательно проанализировать команду, используемую для идентификации таких устройств, а также понять, как она работает. В данном случае мы рассматриваем команду lsblk
с последующей обработкой данных с помощью jq
для выхода информации в JSON-формате.
Теория
NVMe SSD диски становятся все более популярными благодаря их высокой скорости чтения и записи, что делает их идеальными для хранения больших объемов данных или работы под высокими нагрузками. Однако перед их использованием важно убедиться, что они не содержат данных и не заняты другими процессами. Это позволяет избежать потенциальных потерь информации и обеспечить максимальное использование ресурсов диска.
Команда lsblk
в данной ситуации служит для получения списка всех блоковых устройств и их атрибутов, среди которых наиболее важны имя устройства (NAME
), тип файловой системы (FSTYPE
), наличие файловых системных атрибутов как метка, UUID, доступное и используемое пространство и точки монтирования. Использование ключа -I 259
ограничивает вывод только NVMe устройствами, поскольку NVMe девайсы используют этот номер мажорного устройства.
Обработка вывода с помощью jq
позволяет отфильтровать только те диски, которые не имеют разделов или файловых систем. Это осуществляется путем поиска устройств без дочерних элементов и без типа файловой системы (fstype == null
), а также отсутствием монтированных точек.
Пример
Рассмотрим пример выполнения команды:
lsblk -b -I 259 -o NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS,SIZE --json | \
jq -r '.blockdevices | sort_by(.size) | reverse | .[] | select(.children == null and .fstype == null) | select(.mountpoints[] | length == 0)'
-
lsblk
:- С помощью параметра
-b
выводит размеры в байтах, что обеспечивает четкость и точность для дальнейших вычислений. - Ключ
-I 259
фильтрует только NVMe SSD устройства.
- С помощью параметра
-
jq
:.blockdevices | sort_by(.size) | reverse
сортирует устройства по размеру в убывающем порядке. Это может быть полезно для установки приоритета, какой диск использовать, начиная с самого большого.select(.children == null and .fstype == null)
фильтрует устройства без дочерних элементов и типа файловой системы, что указывает на "сырой" диск без разбивки на разделы.select(.mountpoints[] | length == 0)
гарантирует, что диск не используется в текущий момент, поскольку нет точек монтирования.
Применение
Для системного администратора или специалиста по IT такой подход позволяет эффективно идентифицировать доступные для использования NVMe SSD диски, что важно при планировании и развертывании инфраструктуры данных. В результате вы можете быстрее находить и распределять ресурсы для различных задач – от хранения архивных данных до размещения на них активных баз данных или виртуальных машин.
Таким образом, данный метод помогает минимизировать риск повреждения или потери данных за счет исключения работы с уже используемыми дисками и обеспечивает прозрачное решение в спланированном управлении оборудованием. В долгосрочной перспективе он предоставляет экономию времени и ресурсов за счет облегчения автоматизации процесса управления дисками, улучшая тем самым производительность всей системы.