1 (14.09.2014 13:56:09 отредактировано AntiduPb)

Приветствую всех ab
Решил я тут поковырять LVM, до этого как-то не сталкивался с ним (знал что это но сам не работал - небыло потребности). И решил как обычно начать с Gentoo и консоли. Собрал, поставил, работает. Далее решил попробовать поиграться с ресайзом разделов. Уменьшаем /home (он занимает 2.5 Терабайта):

# umount /home
# resize2fs /dev/vg00/home 100G
# lvresize -L100G /dev/vg00/home
# mount /home

и на home улетают все файлы с ФС
при этом если в команду "# resize2fs /dev/vg00/home 100G" добавить параметр -f (force тобиш) ФС ресайзится и все нормально, но в манах в инете нигде этот параметр не упоминается.

 Консоль:
# man resize2fs
***
-f     Forces resize2fs to proceed with the filesystem resize operation, overriding some safety checks
              which resize2fs normally enforces.
***

Дословно:
Насильно выполняет операцию ресайза файловой системы, и перезапустить некоторые проверки проверики которые обычно выполняются.
Я правильно перевел/понял?
Но во всех манах она работает без этого параметра.
Вопрос: где я накосячил?

Заранее спасибо ab

Конечно, это работает в Gentoo!

2

Видимо, здесь:

resize2fs - ext2/ext3/ext4 file system resizer

http://linux.die.net/man/8/resize2fs
Для манипуляции размерами томов LVM нужно использовать что-то вроде этого.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Slackware64-current/Xfce/Lenovo G580

3 (14.09.2014 08:18:25 отредактировано kostik87)

AntiduPb пишет:

Вопрос: где я накосячил?

AntiduPb пишет:

Увеличиваем /home

AntiduPb пишет:

 Консоль:

# resize2fs /dev/vg00/home 100G
# lvresize -L100G /dev/vg00/home

А вас не смущает тот факт, что вы в начале вводите команду для увепличения содержимого контейнера, т.е. файловой системы, а затем увеличиваете сам контейнер, т.е. LVM том. Либо вы ошиблись при создании темы на форуме, либо это вообще всё странно.

4

kostik87 пишет:
AntiduPb пишет:

Вопрос: где я накосячил?

AntiduPb пишет:

Увеличиваем /home

AntiduPb пишет:

 Консоль:

# resize2fs /dev/vg00/home 100G
# lvresize -L100G /dev/vg00/home

А вас не смущает тот факт, что вы в начале вводите команду для увепличения содержимого контейнера, т.е. файловой системы, а затем увеличиваете сам контейнер, т.е. LVM том. Либо вы ошиблись при создании темы на форуме, либо это вообще всё странно.

Тьфу блин перепутал, ПРОШУ ПРОЩЕНИЯ! Раздел был 2.5 Терабайт и уменьшаем до 100 Гигов.
Поправил.
Я знаю что если нужно увеличить, то сначала увеличиваем размер тома а потом размер ФС, а если уменьшить то наоборот сначала размер ФС уменьшаем а потом размер тома.

Конечно, это работает в Gentoo!

5 (14.09.2014 14:13:05 отредактировано kostik87)

AntiduPb пишет:

Терабайт и уменьшаем до 100 Гигов.

В таком случае проблема в том, что файловая система размером в 100Gb не "влезает" в 100Gb дисковое пространство, нужно было, к примеру уменьшить её до 90Gb, затем уменьшить логический том до 100Gb и затем расширить файловую систему на весь размер логического тома, т.е.:

# umount /home
# resize2fs /dev/vg00/home 90G
# lvresize -L100G /dev/vg00/home
# resize2fs /dev/vg00/home
# mount /home

6

kostik87 пишет:

В таком случае проблема в том, что файловая система размером в 100Gb не "влезает" в 100Gb дисковое пространство, нужно было, к примеру уменьшить её до 90Gb, затем уменьшить логический том до 100Gb и затем расширить файловую систему на весь размер логического тома

Не работает. Даже если файловую систему сделать 50Гб а том 100Гб. Собственно проблема в том что resize2fs без параметра -f даже не пытатеся менять размер ФС. ac

Конечно, это работает в Gentoo!

7

AntiduPb пишет:

Не работает. Даже если файловую систему сделать 50Гб а том 100Гб. Собственно проблема в том что resize2fs без параметра -f даже не пытатеся менять размер ФС.

+ открыть спойлер

 Консоль:

--- Logical volume ---
  LV Path                /dev/vg0/lv_test
  LV Name                lv_test
  VG Name                vg0
  LV UUID                tSoXvE-f5Az-yy02-NTyy-dmwC-mS04-ka3O8S
  LV Write Access        read/write
  LV Creation host, time gentoo, 2014-09-14 14:56:10 +0400
  LV Status              available
  # open                 0
  LV Size                10,00 GiB
  Current LE             2621440
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:13
#
# mkfs.ext4 /dev/vg0/lv_test
mke2fs 1.42.10 (18-May-2014)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 5b237186-307b-42fe-8521-4300b6087edb
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                           
Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
#
# mkdir /tmp/lv_test
# mount /dev/vg0/lv_test /tmp/lv_test/
# df -h /tmp/lv_test/
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/vg0-lv_test   9,8G          23M  9,2G            1% /tmp/lv_test
#
# e2fsck -f /dev/vg0/lv_test
e2fsck 1.42.10 (18-May-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv_test: 11/655360 files (0.0% non-contiguous), 79663/2621440 blocks
#
# resize2fs /dev/vg0/lv_test 5G
resize2fs 1.42.10 (18-May-2014)
Resizing the filesystem on /dev/vg0/lv_test to 1310720 (4k) blocks.
The filesystem on /dev/vg0/lv_test is now 1310720 blocks long.
#
# mount /dev/vg0/lv_test /tmp/lv_test/
# df -h /tmp/lv_test/
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/vg0-lv_test   4,8G          20M  4,6G            1% /tmp/lv_test


# lvreduce -L -4G /dev/vg0/lv_test
  WARNING: Reducing active logical volume to 6,00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_test? [y/n]: y
  Size of logical volume vg0/lv_test changed from 10,00 GiB (2621440 extents) to 6,00 GiB (1572864 extents).
  Logical volume lv_test successfully resized

# e2fsck -f /dev/vg0/lv_test
e2fsck 1.42.10 (18-May-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv_test: 11/327680 files (0.0% non-contiguous), 58462/1310720 blocks
#
# resize2fs /dev/vg0/lv_test
resize2fs 1.42.10 (18-May-2014)
Resizing the filesystem on /dev/vg0/lv_test to 1572864 (4k) blocks.
The filesystem on /dev/vg0/lv_test is now 1572864 blocks long.
#
# mount /dev/vg0/lv_test /tmp/lv_test/
# df -h /tmp/lv_test/
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/vg0-lv_test   5,8G          20M  5,5G            1% /tmp/lv_test

8

+ открыть спойлер

 Консоль:
--- Logical volume ---
  LV Path                /dev/vg00sda2/name_home
  LV Name                name_home
  VG Name                vg00sda2
  LV UUID                7LEKSJ-SMwi-3LrZ-vijW-Q8e0-MaV6-5RdTE2
  LV Write Access        read/write
  LV Creation host, time livecd, 2014-09-07 01:04:46 +0400
  LV Status              available
  # open                 1
  LV Size                100.00 GiB
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3
   
T1000 ~ # df -h /home/
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/vg00sda2-name_home   99G   60M   94G   1% /home
T1000 ~ # umount /home/
T1000 ~ # e2fsck -f /dev/vg00sda2/name_home
e2fsck 1.42.10 (18-May-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg00sda2/name_home: 12/6553600 files (0.0% non-contiguous), 459350/26214400 blocks
T1000 ~ # resize2fs /dev/vg00sda2/name_home 10G
resize2fs 1.42.10 (18-May-2014)
Resizing the filesystem on /dev/vg00sda2/name_home to 2621440 (4k) blocks.
The filesystem on /dev/vg00sda2/name_home is now 2621440 blocks long.

T1000 ~ # mount /home/
T1000 ~ # df -h /home/
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/vg00sda2-name_home  9.8G   36M  9.2G   1% /home
T1000 ~ # umount /home/
T1000 ~ # lvreduce -L -88G /dev/vg00sda2/name_home
  WARNING: Reducing active logical volume to 12.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce name_home? [y/n]: y
  Size of logical volume vg00sda2/name_home changed from 100.00 GiB to 12.00 GiB.
  Logical volume name_home successfully resized
T1000 ~ # e2fsck -f /dev/vg00sda2/name_home
e2fsck 1.42.10 (18-May-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg00sda2/name_home: 12/655360 files (0.0% non-contiguous), 83120/2621440 blocks
T1000 ~ # resize2fs /dev/vg00sda2/name_home
resize2fs 1.42.10 (18-May-2014)
Resizing the filesystem on /dev/vg00sda2/name_home to 3145728 (4k) blocks.
The filesystem on /dev/vg00sda2/name_home is now 3145728 blocks long.

T1000 ~ # mount /home/
T1000 ~ # df -h /home/
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/vg00sda2-name_home   12G   40M   12G   1% /home

Вот я мешок  ag  e2fsck перед изменение размера ФС кто делать будет?
А параметр -f запускает e2fsck автоматом перед ресайзом.

 Консоль:
# resize2fs /dev/vg00sda2/name_home 10G
Please run 'e2fsck -f /dev/vg00sda2/name_home' first.

Я 'first' почему-то перевел как 'после' перепутав с 'after'.
Всё разобрался.
kostik87 Спасибо огромное! ab

Конечно, это работает в Gentoo!

9

для будущих поколений, ещё можно обратить внимание на ключик -r lvresize...

95% процентов проблем находятся между клавиатурой и стулом.