Поскольку / находится на логическом томе, можно увеличивать / dev / mapper / vg_hadoop1-lv_root без переформатирования. Эта операция будет очень безопасной, если не будет удара молнии.
Поскольку /dev /sdb1 (/disk1) не является логическим томом, его все еще можно сжать - однако всегда есть вероятность этого сбоя. У меня никогда не было проблемы с изменением размера раздела, если было достаточно места; но это не значит, что это невозможно! Многие инструменты, которые вы могли бы использовать для сокращения раздела, предупреждают вас об этом факте. Еще раз, несмотря на это: я не нашел ни у кого никогда проблемы с этим.
Теперь, если у вас есть резервная копия /disk1, или вы не против, чтобы она была потеряна, продолжайте!
Итак, чтобы продолжить разворот данных, мы сначала сжимаем /disk1, поэтому у нас позже будет достаточно места для роста /. Во-первых, мы должны убедиться, что он не подключен - вы не можете (безопасно) уменьшить размер подключенного тома.
# umount /dev/sdb1
инструменты
[примечание для других читателей: это работает только с файловыми системами ext {2,3,4}]. Мы можем использовать resize2fs + fdisk или gparted. fdisk не для слабонервных. Если вы хотите использовать графический интерфейс для сокращения вашего раздела, вы можете следовать этому руководству: http://gparted.org/display-doc.php?name=help-manual#gparted-resize-partition ,
Во-первых, давайте изменим границы (раздел), чтобы убедиться, что в конце нашего раздела нет данных.
# resize2fs /dev/sdb1 1G
Теперь для fdisk мы можем сделать:
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
Помните, что разделы - это просто границы для данных. Удаление раздела не приведет к удалению базовых данных. Они как указатели на языке программирования без сбора мусора. К счастью, благодаря вашему выводу из fdisk -l у нас есть границы (расположение указателей) для вашего раздела!
Это где есть возможность потери данных. Я не несу ответственности за удаление очень важных вещей с /disk1 без резервного копирования. Перед выполнением этого шага сделайте резервную копию всего, что вам нужно, в двух местах
Давайте удалим ваш раздел
Command (m for help): d
Partition number (1-4, default 4): 1
Partition 1 is deleted
Command (m for help):
И воссоздать его с (сокращенными) границами
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default e): p
Selected partition 1
First sector (1-5368, default 1): <hit enter>
Last sector, +sectors or +size{K,M,G} (2-5368, default 5368): +1G
Partition 1 of type Linux and of size 1 GiB is set
Command (m for help):
А затем мы создадим еще один раздел, который мы сможем использовать позже со всем нашим новым свободным пространством, которое мы сделали
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default e): p
Selected partition 2
First sector (1025-5368, default 1025): <hit enter>
Last sector, +sectors or +size{K,M,G} (1026-5368, default 5368): <hit enter>
Partition 2 of type Linux and of size <remaining> is set
Command (m for help):
Наши новые разделы настроены, и мы можем перейти к следующему шагу
Здорово! Сложная часть сделана. Ваш вопрос - одна из замечательных особенностей LVM, и почему он так часто используется (объединение разделов даже на отдельных дисках!)
Итак, что мы пытаемся сделать, это увеличить логический том, который является /dev /mapper /vg_hadoop1-lv_root. Для этого нам нужно достаточно места в нашей группе томов, чтобы расти! Мы можем сделать это, добавив физический том в нашу группу томов.
Итак, сначала мы создадим физический том из нашего нового раздела, чтобы он мог быть распознан LVM, а затем добавлен в группу томов. Мы делаем это с ...
# /sbin/pvcreate /dev/sdb2
LVM может добавлять любые физические тома в любые группы томов, поэтому мы добавим их в наш hadoop, который мы нашли из вывода
# /sbin/vgscan
Итак, мы знаем, что хотим vg_hadoop1. Мы добавим наш новый физический том в эту группу томов с ...
# /sbin/vgextend vg_hadoop1 /dev/sdb2
Теперь, когда он добавлен, мы запускаем быструю команду для изменения размера текущего логического тома.
# /sbin/lvextend -L +4.0G /dev/mapper/vg_hadoop1-lv_root
Параметр -L для lvextend довольно полезен и может принимать различные данные. Мы используем + почти как двоичный оператор + = во многих языках программирования. Мы говорим "новый размер = текущий размер + 4,5G"
Теперь, когда все сказано и сделано, у нас есть две файловые системы, размер которых не совпадает с объемом, на котором они находятся. Для файловой системы ext2/3/4fs [наиболее распространенной] (которую я обновлю, когда у нас будет вывод fdisk -l, чтобы сообщить нам, какую файловую систему вы используете), мы можем изменить файловую систему, чтобы она соответствовала размеру раздела :
# /sbin/resize2fs /dev/mapper/vg_hadoop1-lv_root
# /sbin/resize2fs /dev/sdb1
Возможно, вам придется перемонтировать root, чтобы увидеть новый размер. Мы могли бы также смонтировать /disk1 обратно. сделать это с:
# mount -o remount /
# mount /dev/sdb1 /disk1
Давайте удостоверимся, что все работает, используя df (без диска), и что все имеет правильный размер.
# df -H
Как только я получу вывод этих двух команд, я обновлю этот вопрос, так что вы можете быть вдвойне уверены, что все правильно, прежде чем выполнять.
Удачи!