LINUX.ORG.RU
ФорумAdmin

Ошибка файловой системы в RAID1

 


0

1

NAS Lenovo ix2-dl сообщил почтой: «В файловой системе Lenovo ix2-dl обнаружены ошибки. Необходимо выполнить проверку.»


mdstat выдает:

cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md1 : active raid1 sda2[0] sdb2[1]
      1932378944 blocks super 1.1 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
      20955008 blocks super 1.1 [2/2] [UU]
после проверки массива md0
echo 'check' >/sys/block/md0/md/sync_action
показывает количество ошибок 512 (вчера было 384). У массива md1 ошибок нет

Диски: Seagate sv35 st2000vx000 2ТБ

smartctl -a /dev/sdb

говорит что диск не поддерживает СМАРТ

Подскажите куда копать.

SoC-то марвеловский, наверное надо использовать smartctl -d marvell -a /dev/sda. С ошибками рейд ясности в посте нет. В изначальном сообщении сказано проверить файловые системы, а не массивы. Так может это и сделать? fsck -f /dev/md0

iliyap ★★★★ ()
Ответ на: комментарий от iliyap

Да smartctl -d marvell -a /dev/sda работает. Пишет что ошибок не зарегистрировано (по обоим дискам).

fsck -f /dev/md0 выдает следующее:

fsck 1.42.5 (29-Jul-2012)
fsck: fsck.LVM2_member: not found
fsck: Error 2 while executing fsck.LVM2_member for /dev/md0

magician ()
Ответ на: комментарий от magician

Что у вас смонтировано, то и проверяйте. mount и то что на выхлопе то и подставить fsck.

anc ★★★★★ ()
Ответ на: комментарий от magician

Похоже /dev/md0 это физический том LVM. Проверять надо фс, а фс видимо на логическом томе. На каких логических томах фс можно посмотреть в /etc/fstab. Обычно там указываются их имена в виде /dev/mapper/vgname-lvname. Если не все логические тома активировались, надо попробовать активировать их вручную. lvm pvs — пролистать физические тома. lvm vgs — пролистать группы. lvm lvs — пролистать логические тома. lvm vgchange -ay vgname — активировать все логические тома группы vgname.

iliyap ★★★★ ()
Ответ на: комментарий от iliyap

С raid и LVM никогда не сталкивался.

вот что выдают команды

root@NAS:/# lvm pvs
  PV         VG          Fmt  Attr PSize  PFree
  /dev/md0   md0_vg      lvm2 a--  19,98g    0 
  /dev/md1   316ad4af_vg lvm2 a--   1,80t    0 
root@NAS:/# lvm vgs
  VG          #PV #LV #SN Attr   VSize  VFree
  316ad4af_vg   1   1   0 wz--n-  1,80t    0 
  md0_vg        1   2   0 wz--n- 19,98g    0 
root@NAS:/# lvm lvs
  LV         VG          Attr     LSize  Pool Origin Data%  Move Log Copy%  Convert
  lv2a2f16c9 316ad4af_vg -wi-ao--  1,80t                                           
  BFDlv      md0_vg      -wi-ao--  4,00g                                           
  vol1       md0_vg      -wi-ao-- 15,98g                                           

Дальше то, что смонтировано

root@NAS:/# mount
/dev/root.old on /initrd type ext2 (rw,relatime,errors=continue)
none on / type tmpfs (rw,relatime,size=51200k,nr_inodes=30949)
ubi0:boot on /boot type ubifs (rw,noatime,sync)
/dev/md0_vg/BFDlv on /mnt/boot type ext2 (rw,noatime,errors=continue)
/dev/loop0 on /mnt/apps type ext2 (ro,relatime)
/dev/loop1 on /mnt/etc type ext2 (rw,noatime,sync)
none on /etc type unionfs (rw,noatime,sync,dirs=/mnt/etc=rw:/mnt/apps/etc=ro)
/dev/loop2 on /oem type squashfs (ro,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
none on /proc/bus/usb type usbfs (rw,relatime)
none on /proc/fs/nfsd type nfsd (rw,relatime)
none on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=24776k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=49540k)
/dev/mapper/md0_vg-vol1 on /mnt/system type ext4 (rw,noatime,barrier=1,data=ordered)
/dev/mapper/316ad4af_vg-lv2a2f16c9 on /mnt/pools/A/A0 type ext4 (rw,noatime,barrier=0,data=ordered)
/dev/mapper/316ad4af_vg-lv2a2f16c9 on /nfs/Backups type ext4 (rw,noatime,barrier=0,data=ordered)
/dev/mapper/316ad4af_vg-lv2a2f16c9 on /nfs/Documents type ext4 (rw,noatime,barrier=0,data=ordered)
/dev/mapper/316ad4af_vg-lv2a2f16c9 on /nfs/Movies type ext4 (rw,noatime,barrier=0,data=ordered)
/dev/mapper/316ad4af_vg-lv2a2f16c9 on /nfs/Music type ext4 (rw,noatime,barrier=0,data=ordered)
/dev/mapper/316ad4af_vg-lv2a2f16c9 on /nfs/SharedMedia type ext4 (rw,noatime,barrier=0,data=ordered)
/dev/mapper/316ad4af_vg-lv2a2f16c9 on /nfs/Pictures type ext4 (rw,noatime,barrier=0,data=ordered)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)

Получается, что системный логический том - /dev/mapper/md0_vg-vol1

root@NAS:/# fsck -f /dev/mapper/md0_vg-vol1
fsck 1.42.5 (29-Jul-2012)
e2fsck 1.42.5 (29-Jul-2012)
/dev/mapper/md0_vg-vol1 is mounted.
e2fsck: Cannot continue, aborting.

Но он не хочет проверяться, говорит что смонтированный.

Не хочет проверяться и каталог, что примонтирован к тому.

root@NAS:/# fsck -f /mnt/system
fsck 1.42.5 (29-Jul-2012)
e2fsck 1.42.5 (29-Jul-2012)
fsck.ext2: Is a directory while trying to open /mnt/system

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

Больших телодвижений не делаю, боюсь сломать

magician ()
Ответ на: комментарий от iliyap

Вот содержимое /etc/fstab

root@NAS:/# cat /etc/fstab
# <file system> <mount pt>     <type>	<options>         <dump> <pass>
/dev/root       /              ext2	rw,noauto         0      1
proc		/proc	       proc     defaults	  0	 0
none		/proc/bus/usb	usbfs	defaults	0	0
none		/proc/fs/nfsd	nfsd	defaults	0	0
none            /sys            sysfs   defaults          0      0
devpts		/dev/pts       devpts   defaults,gid=5,mode=620	  0	 0

magician ()

Подскажите, есть возможность проверить на ошибки файловую систему на примонтированных томах?

magician ()
Ответ на: комментарий от magician

Да, конфигурация не для новичков, чёрт ногу сломит. Чтобы проверить смонтированные файловые системы, надо перемонтировать их в режим только для чтения: mount -o remount,ro directory.

Лучше проверить все тома, BFDlv (/mnt/boot), vol1 (/mnt/system), и lv2a2f16c9 (/mnt/pools/A/A0). Кроме того, /mnt/etc смонтирован из какого-то файла (из какого — можно посмотреть с помощью losetup -a). /mnt/apps и /oem уже смонтированы только для чтения, /boot смонтирован не с диска, а с встроенной флешки (судя по использованию ubifs), остальные точки монтирования также не с диска. Перемонтировать надо в таком порядке:

mount -o remount,ro /mnt/etc
mount -o remount,ro /mnt/boot
mount -o remount,ro /mnt/system
mount -o remount,ro /mnt/pools/A/A0

Если какие-то процессы держат открытыми файлы на запись, перемонтировать фс только для чтения не даст. С помощью fuser -mvu /mnt/system можно найти эти процессы и попытаться их остановить перед тем, как перемонтировать фс.

Если перемонтировать таки удастся, и fsck полечит файловую систему, перемонтировать её в режим чтения-записи нельзя. Можно только перезагрузиться.

iliyap ★★★★ ()
Ответ на: комментарий от iliyap

Спасибо, что помогаете.

Удачно перемонтировались /mnt/etc и /mnt/boot.

mount
/dev/root.old on /initrd type ext2 (rw,relatime,errors=continue)
...
/dev/md0_vg/BFDlv on /mnt/boot type ext2 (ro,noatime,errors=continue)
/dev/loop0 on /mnt/apps type ext2 (ro,relatime)
/dev/loop1 on /mnt/etc type ext2 (ro,noatime,sync)
...
/mnt/system, как и ожидалось перемонтировать не дает, говорит /mnt/system is busy.

Вот вывод fuser -mvu /mnt/system

fuser -mvu /mnt/system
                     USER        PS COMMAND
/mnt/system:         root     kernel swap  (root)/mnt/system/swapfile
                     root     kernel mount (root)/mnt/system
                     root       4200 F.... (root)mt-daapd
                     nobody     4205 F.... (nobody)twonkyserver
                     root       4240 F...m (root)smbd
                     root       4806 F...m (root)smbd

Судя по тому, что /mnt/system/swapfile открыт ядром то перемонтирование фс только для чтения не удастся?

А куда отсылает вот эта строка: root kernel mount (root)/mnt/system?

Проверить перемонтированные фс так-же не удается:

fsck -f /mnt/etc
fsck 1.42.5 (29-Jul-2012)
e2fsck 1.42.5 (29-Jul-2012)
fsck.ext2: Is a directory while trying to open /mnt/etc

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

magician ()
Ответ на: комментарий от magician

Своп-файл отключить swapoff -a. Процессы остановить fuser -k -TERM -mvu /mnt/system. Проверять не каталоги, а девайсы fsck -f /dev/md0_vg/BFDlv.

И всё-таки посмотреть losetup -a.

iliyap ★★★★ ()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от magician

root kernel mount (root)/mnt/system

Это значит какие-то файлы с этой файловой системы смонтированы через loop. Чтобы понять, какие, надо посмотреть losetup -a.

iliyap ★★★★ ()
Ответ на: комментарий от iliyap
losetup -a
/dev/loop0: [000c]:178 (/sysroot/boot/images/apps)
/dev/loop1: [000c]:73 (sysroot/boot/images/config)
/dev/loop2: [000c]:77 (/sysroot/boot/images/oem)

swapfile отключил.

Проверка девайсов:

fsck -f /dev/loop1
fsck 1.42.5 (29-Jul-2012)
e2fsck 1.42.5 (29-Jul-2012)
Warning!  /dev/loop1 is mounted.
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/loop1: 117/4240 files (2.6% non-contiguous), 1126/8192 blocks

fsck -f /dev/md0_vg/BFDlv
fsck 1.42.5 (29-Jul-2012)
e2fsck 1.42.5 (29-Jul-2012)
Warning!  /dev/md0_vg/BFDlv is mounted.
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/md0_vg/BFDlv: 13/262144 files (0.0% non-contiguous), 18512/1048576 blocks

На fuser -k -TERM -mvu /mnt/system процессы тут-же перезапускаются. И на fuser -k -9 -mvu /mnt/system такая-же ситуация.

fuser -k -9 -mvu /mnt/system
                     USER        PID ACCESS COMMAND
/mnt/system:         root     kernel mount (root)/mnt/system
                     root       4269 ..ce. (root)Transmission
                     root       6929 F.... (root)mt-daapd
                     root       6931 F...m (root)smbd
                     root       6932 F...m (root)smbd
                     nobody     6941 F.... (nobody)twonkyserver
                     root       7050 ..ce. (root)transmission-da
fuser -mvu /mnt/system
                     USER        PID ACCESS COMMAND
/mnt/system:         root     kernel mount (root)/mnt/system
                     root       7554 F.... (root)mt-daapd
                     root       7556 F...m (root)smbd
                     root       7557 F...m (root)smbd
                     nobody     7566 F.... (nobody)twonkyserver

Все эти процессы запускаются процессом appmd. Им наверное и перезапускаются.

pstree
init─┬─appmd─┬─acpid
     │       ├─activefolder───2*[{activefolder}]
     │       ├─amazon───{amazon}
     │       ├─atftpd
     │       ├─connectd───3*[{connectd}]
     │       ├─cron
     │       ├─datamover
     │       ├─dbus-daemon
     │       ├─displayd───{displayd}
     │       ├─eventd───{eventd}
     │       ├─httpd───3*[httpd]
     │       ├─imgd───{imgd}
     │       ├─logrotation───sleep
     │       ├─mdnsd
     │       ├─mt-daapd───2*[{mt-daapd}]
     │       ├─nmbd
     │       ├─pcloudd───4*[{pcloudd}]
     │       ├─pkgd───{pkgd}
     │       ├─proftpd
     │       ├─rsync
     │       ├─2*[sh───sleep]
     │       ├─smbd───smbd
     │       ├─sshd───sshd───sh───pstree
     │       ├─svcd───20*[{svcd}]
     │       ├─twonkystart.sh───su───twonkyserver───26*[{twonkyserver}]
     │       ├─upnpdiscovery
     │       └─{appmd}
     ├─dhclient
     ├─getty
     ├─2*[hostnamed]
     ├─lld2d
     ├─logsave
     ├─2*[mdnsd]
     ├─netplugd
     ├─rpc.idmapd
     ├─rpc.mountd
     ├─rpc.statd
     ├─rpcbind
     └─rsyslogd───3*[{rsyslogd}]

В статье https://n1njahacks.wordpress.com/2014/02/27/setting-up-mysql-server-on-lenovo... указывается на файл /usr/local/cfg/sohoProcs.xml вот на него ссылка http://pastebin.com/mGUD6VRG

Если повыкидывать из этого файла теги с процессами из /mnt/system, перегрузиться, проверить фс, а потом вернуть все назад, это может сработать?

Извините за длинные комментарии.

magician ()
Ответ на: комментарий от magician

Модифицировать конфигурацию ради проверки файловых систем как-то неспортивно. Может быть можно остановить appmd? Может быть он при этом остановит все порождённые процессы? Если при этом остановится процесс sshd, слушающий 22 порт, это не страшно. Порождённые им процессы sshd, обслуживающие соединения, остановиться не должны.

iliyap ★★★★ ()

touch /mountpoint/forcefsck

reboot

anonymous ()
Ответ на: комментарий от iliyap

При остановке appmd - останавливается SSH и порожденные им процессы (выкидывает из SSH и подключиться уже невозможно) и перегрузить кнопкой на NAS тоже возможность пропадает т.к. останавливается и acpid, приходится выдергивать вилку из розетки.

magician ()
Ответ на: комментарий от magician

Это функциональность, которая есть во многих initramfs-ах. Если initramfs обнаруживает в корне файловой системы файл с именем forcefsck, он выполняет проверку fsck -f этой файловой системы, а затем удаляет этот файл. Может быть такая функциональность есть и в initramfs-е твоего NAS-а.

Чтобы инициировать проверку при следующей загрузке достаточно создать такие файлы и перезагрузиться.

iliyap ★★★★ ()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от iliyap

Вообщем ситуация такая:

- /mountpoint/forcefsck — такой функциональности в моем NAS нет (forcefsck остается в ФС, лог пустой).

- appmd сам держит открытые файлы на /mnt/system поэтому отмонтировать /mnt/system не удается даже повыкидывав процессы со ссылками на /mnt/system из /usr/local/cfg/sohoProcs.xml

Пришлось сохранить содержимое NAS на внешний ЖД, отформатировать диски и по новой инициализировать NAS.

Спасибо iliyap за хороший ликбез.

magician ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.