[linux-lvm] Creating snapshot causes processes hang?

Kelly Sauke ksauke at fastenal.com
Tue Nov 1 14:28:00 UTC 2005


Snapshots in RHEL 4 are broken.  We've had to move to veritas after Redhat told
us that they would not support snapshots in RHEL 4.

Satoshi Nagayasu wrote:
> Hi all,
> 
> I'm testing PostgreSQL(RDBMS) backup using LVM2 snapshot on RHEL4.
> 
> After creating a snapshot, some processes (kjournald,
> one PostgreSQL backend and others) go to iowait status,
> and they never come back. (see pid 8105 and 2973 in below)
> 
> In this situation, one PostgreSQL backend process is waiting
> in COMMIT processing(it generates fsync() on logical volume),
> and also kjournald is waiting something.
> 
> There is no kernel oops, and the processors are not used.
> 
> When I set an PostgreSQL option not to generate fsync
> on COMMIT, it looks work well. No process hangs.
> 
> I guess some race conditions is occured around kjournald.
> 
> Any comments and suggestions?
> 
> Thanks.
> ------------------------------------
> # uname -a
> Linux st17 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
> # df
> Filesystem           1K-blocks      Used Available Use% Mounted on
> /dev/sda5             20161172   6717648  12419384  36% /
> /dev/sda1               202219     11423    180356   6% /boot
> none                   1037448         0   1037448   0% /dev/shm
> /dev/mapper/vg0-pgdata
>                        1032088    515532    464128  53% /pgdata
> # ps ax
>   PID TTY      STAT   TIME COMMAND
>     1 ?        S      0:00 init [3]
>     2 ?        S      0:00 [migration/0]
>     3 ?        SN     0:00 [ksoftirqd/0]
>     4 ?        S      0:00 [migration/1]
>     5 ?        SN     0:00 [ksoftirqd/1]
>     6 ?        S<     0:00 [events/0]
>     7 ?        S<     0:00 [events/1]
>     8 ?        S<     0:00 [khelper]
>     9 ?        S<     0:00 [kacpid]
>    30 ?        S<     0:00 [kblockd/0]
>    31 ?        S<     0:00 [kblockd/1]
>    44 ?        S<     0:00 [aio/0]
>    45 ?        S<     0:00 [aio/1]
>    32 ?        S      0:00 [khubd]
>    43 ?        S      0:11 [kswapd0]
>   118 ?        S      0:00 [kseriod]
>   186 ?        S      0:00 [scsi_eh_0]
>   201 ?        S      0:17 [kjournald]
>  1157 ?        S<s    0:00 udevd
>  1342 ?        S      0:00 [kjournald]
>  1761 ?        Ss     0:00 syslogd -m 0
>  1765 ?        Ss     0:00 klogd -x
>  1776 ?        Ss     0:00 irqbalance
>  1794 ?        Ss     0:00 portmap
>  1814 ?        Ss     0:00 rpc.statd
>  1913 ?        Ss     0:00 rpc.idmapd
>  1990 ?        Ss     0:00 /usr/sbin/acpid
>  2003 ?        Ss     0:00 cupsd
>  2042 ?        Ss     0:00 /usr/sbin/sshd
>  2116 ?        Ss     0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
>  2126 ?        Ss     0:00 gpm -m /dev/input/mice -t imps2
>  2169 ?        Ss     0:00 /usr/sbin/htt -retryonerror 0
>  2170 ?        S      0:00 htt_server -nodaemon
>  2182 ?        Ss     0:00 /usr/sbin/cannaserver -syslog -u canna
>  2233 ?        Ss     0:00 crond
>  2274 ?        Ss     0:00 xfs -droppriv -daemon
>  2293 ?        Ss     0:00 /usr/sbin/atd
>  2303 ?        Ssl    0:00 dbus-daemon-1 --system
>  2317 ?        Ss     0:00 cups-config-daemon
>  2328 ?        Ss     0:01 hald
>  2338 tty1     Ss+    0:00 /sbin/mingetty tty1
>  2339 tty2     Ss+    0:00 /sbin/mingetty tty2
>  2340 tty3     Ss+    0:00 /sbin/mingetty tty3
>  2341 tty4     Ss+    0:00 /sbin/mingetty tty4
>  2342 tty5     Ss+    0:00 /sbin/mingetty tty5
>  2343 tty6     Ss+    0:00 /sbin/mingetty tty6
>  2885 ?        Ss     0:00 sshd: snaga [priv]
>  2887 ?        S      0:00 sshd: snaga at pts/0
>  2888 pts/0    Ss     0:00 -bash
>  2908 ?        Ss     0:00 sshd: snaga [priv]
>  2910 ?        S      0:00 sshd: snaga at pts/1
>  2911 pts/1    Ss     0:00 -bash
>  2931 pts/1    S      0:00 su
>  2932 pts/1    S      0:00 bash
>  2973 ?        D      0:31 [kjournald]
>  2980 ?        S      0:54 [rpciod]
>  2981 ?        S      0:00 [lockd]
>  3016 pts/0    S      0:00 su
>  3017 pts/0    S      0:00 bash
>  3035 pts/0    S      0:00 su postgres
>  3036 pts/0    S      0:00 bash
>  7866 pts/0    S+     0:00 /bin/sh ./pgbench_lvm.sh
>  7906 pts/0    S+     0:00 /bin/sh ./pgbench_lvm.sh
>  7907 pts/0    S+     0:00 sed -e s/^/lvm:/
>  7915 pts/0    S+     0:00 /usr/local/pgsql81b3/bin/postmaster -D /pgdata/data
>  7917 pts/0    S+     0:03 postgres: writer process
>  7918 pts/0    S+     0:00 postgres: archiver process
>  7919 pts/0    S+     0:00 postgres: stats buffer process
>  7920 pts/0    S+     0:00 postgres: stats collector process
>  8015 ?        S      0:01 [pdflush]
>  8094 pts/0    S+     0:01 pgbench -s 10 -t 1000 -c 16 pgbench
>  8096 pts/0    S+     0:00 postgres: postgres pgbench [local] COMMIT
>  8097 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8098 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8099 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8100 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8101 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8102 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8103 pts/0    S+     0:00 postgres: postgres pgbench [local] COMMIT
>  8104 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8105 pts/0    D+     0:00 postgres: postgres pgbench [local] COMMIT
>  8106 pts/0    S+     0:00 postgres: postgres pgbench [local] COMMIT
>  8107 pts/0    S+     0:00 postgres: postgres pgbench [local] COMMIT
>  8108 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8109 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8110 pts/0    S+     0:00 postgres: postgres pgbench [local] UPDATE waiting
>  8111 pts/0    S+     0:00 postgres: postgres pgbench [local] COMMIT
>  8119 ?        S      0:00 [pdflush]
>  8147 ?        S<     0:00 [kcopyd]
>  8179 ?        S      0:00 [kjournald]
>  8188 pts/1    R+     0:00 ps ax
> # cat /etc/issue
> Red Hat Enterprise Linux ES release 4 (Nahant)
> Kernel \r on an \m
> 
> #
> ------------------------------------
> 




More information about the linux-lvm mailing list