Hur får jag bort trasig HDD från LVM grupp?
Jag har en filserver med 4st hårddiskar kopplade till en LVM grupp som jag skapat en logiskvolym av med filsystemet ext3. Problemet är att en av hårddiskarna har blivit dålig och börjat förlora information så jag vill ju därför koppla ur den, men samtidigt hade ju varit bra att få över eventuella oskadade 'Extents' och dess data.
Om jag förstått allt rätt så skulle jag i normala fall först behöva krympa ext3 filsystemet, reducera storleken på den logiska volymen, få bort alla 'extents' från den trasiga hårddisken (/dev/sdb) och slutligen koppla bort hårddisken från volymgruppen:
e2fsck -f /dev/volgrp00/lv00
resize2fs /dev/volgrp00/lv00 <storlek>
lvreduce -l <storlek> /dev/volgrp00/lv00
pvmove /dev/sdb
vgreduce volgrp00 /dev/sdb
(storleken är totala volymgruppensutrymme - /dev/sdb)
Mitt problem ligger nu i att eftersom min ena hårddisk inte mår så bra så vill den inte ändra storleken på filsystemet med resize2fs (inte ens med "-f")
# e2fsck -f /dev/volgrp00/lv00
e2fsck 1.41.3 (12-Oct-2008)
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/volgrp00/lv00: 19684/104333312 files (64.6% non-contiguous), 249785186/417313792 blocks
# resize2fs /dev/volgrp00/lv00 288868600
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/volgrp00/lv00 to 288868600 (4k) blocks.
resize2fs: Attempt to read block from filesystem resulted in short read while trying to resize /dev/volgrp00/lv00
# resize2fs -f /dev/volgrp00/lv00 288868600
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/encrypted-nas/nas to 288868600 (4k) blocks.
resize2fs: Attempt to read block from filesystem resulted in short read while trying to resize /dev/volgrp00/lv00
Att köra lvreduce utan att först krympa filsystemet verka vara väldigt riskabelt då den inte (?) kontrollera om 'extent:en' är tom innan den "klipper bort" delen från volymen.
Ursprungligen inskrivet av lvreduce(8) - Linux man page
lvreduce allows you to reduce the size of a logical volume. Be careful when reducing a logical volume's size, because data in the reduced part is lost!!!
You should therefore ensure that any filesystem on the volume is resized before running lvreduce so that the extents that are to be removed are not in use.
Så frågan är, vad gör jag nu för att koppla ifrån hårddisken utan att skada datan som finns på de fungerande hårddiskarna, samt helst också spara eventuell data som fortfarande finns kvar på den trasiga hårddisken?