Skip to contentSkip to conversation

do we support using a file as logdev?

DISCUSSION Wengang Wang 3 participants 5 messages Apr 20, 2010 – Apr 21, 2010

lore
Share & tools
lore
#0 lore raw

Hi experts,

Do we support using a file as log device?
If no, it's strange that we support running xfs on a file but don't support log file.
If yes, it fails at mount.

[root@desk test-xfsprogs]# mkfs.xfs -llogdev=/root/test-xfsprogs/test-xfsprogs-tmp/imagefile,size=32768b /dev/sda10 -f
meta-data=/dev/sda10 isize=256 agcount=4, agsize=1250558
blks

         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=5002231, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =/root/test-xfsprogs/test-xfsprogs-tmp/imagefile bsize=4096
blocks=32768, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@desk test-xfsprogs]# mount -ologdev=/root/test-xfsprogs/test-xfsprogs-tmp/imagefile /dev/sda10 /xfs
mount: the kernel does not recognize /dev/sda10 as a block device
(maybe `insmod driver'?)

regards,
wengang.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#1 lore raw
Quoted 5 lines · Wengang Wang

Hi experts,

Do we support using a file as log device?
If no, it's strange that we support running xfs on a file but don't support log file.

Have you tried using losetup and passing the loop device instead?

regards,
iustin

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#2 lore raw
Quoted 8 lines · Iustin Pop
Quoted 5 lines · Wengang Wang

Hi experts,

Do we support using a file as log device?
If no, it's strange that we support running xfs on a file but don't support log file.

Have you tried using losetup and passing the loop device instead?

Yes, that's a workaround.

regards,
wengang.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#3 lore raw
In reply to Wengang Wang
Quoted 20 lines · Wengang Wang

Hi experts,

Do we support using a file as log device?
If no, it's strange that we support running xfs on a file but don't support log file.
If yes, it fails at mount.

[root@desk test-xfsprogs]# mkfs.xfs -llogdev=/root/test-xfsprogs/test-xfsprogs-tmp/imagefile,size=32768b /dev/sda10 -f
meta-data=/dev/sda10 isize=256 agcount=4, agsize=1250558
blks

         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=5002231, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =/root/test-xfsprogs/test-xfsprogs-tmp/imagefile bsize=4096
blocks=32768, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
Quoted 4 lines

[root@desk test-xfsprogs]# mount -ologdev=/root/test-xfsprogs/test-xfsprogs-tmp/imagefile /dev/sda10 /xfs
mount: the kernel does not recognize /dev/sda10 as a block device
(maybe `insmod driver'?)

Well, -o logdev=$BLAH sets up m_logname with that value in the mount point, and xfs_open_devices() then tries:

        if (mp->m_logname) {
                error = xfs_blkdev_get(mp, mp->m_logname, &logdev);

which eventually does

	open_bdev_exclusive(name, FMODE_READ|FMODE_WRITE, mp);
/**
 * open_bdev_exclusive  -  open a block device by name and set it up for use
 *
 * @path:       special file representing the block device
 * @mode:       FMODE_... combination to pass be used
 * @holder:     owner for exclusion

*
* Open the blockdevice described by the special file at @path, claim it
* for the @holder.
*/

... this is all in kernelspace, which has no notion of what /root/test-xfsprogs/test-xfsprogs-tmp/imagefile might be. You'll need to use a devicename that open_bdev_exclusive() can understand (like /dev/loop0, as suggested)

-Eric

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#4 lore raw
Quoted 46 lines · Eric Sandeen
Quoted 20 lines · Wengang Wang

Hi experts,

Do we support using a file as log device?
If no, it's strange that we support running xfs on a file but don't support log file.
If yes, it fails at mount.

[root@desk test-xfsprogs]# mkfs.xfs -llogdev=/root/test-xfsprogs/test-xfsprogs-tmp/imagefile,size=32768b /dev/sda10 -f
meta-data=/dev/sda10 isize=256 agcount=4, agsize=1250558
blks

         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=5002231, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =/root/test-xfsprogs/test-xfsprogs-tmp/imagefile bsize=4096
blocks=32768, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
Quoted 4 lines

[root@desk test-xfsprogs]# mount -ologdev=/root/test-xfsprogs/test-xfsprogs-tmp/imagefile /dev/sda10 /xfs
mount: the kernel does not recognize /dev/sda10 as a block device
(maybe `insmod driver'?)

Well, -o logdev=$BLAH sets up m_logname with that value in the mount point, and xfs_open_devices() then tries:

        if (mp->m_logname) {
                error = xfs_blkdev_get(mp, mp->m_logname, &logdev);

which eventually does

	open_bdev_exclusive(name, FMODE_READ|FMODE_WRITE, mp);
/**
 * open_bdev_exclusive  -  open a block device by name and set it up for use
 *
 * @path:       special file representing the block device
 * @mode:       FMODE_... combination to pass be used
 * @holder:     owner for exclusion

*
* Open the blockdevice described by the special file at @path, claim it
* for the @holder.
*/

Quoted 4 lines

... this is all in kernelspace, which has no notion of what /root/test-xfsprogs/test-xfsprogs-tmp/imagefile might be. You'll need to use a devicename that open_bdev_exclusive() can understand (like /dev/loop0, as suggested)

I see.
Thanks Eric for your detailed explanation!

regards,
wengang.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs