There's is an ext3 filesystem on top of Linux md raid1, array consists of two hard drives. Various services, including databases run on and write to it.
Let's say for argument's sake that to minimize services downtime, it would be nicer to be able to:
Option A:
- connect external drive (possibly a multi-drive weekly rotation)
- sync the array to it (--> doesn't really matter how long it takes, services are up)
- switch runlevel -> shut down all but basic non-writing services
- re-mount filesystem read-only
- disconnect external drive from array and physically
- re-mount filesystem read-write
- default runlevel -> restart services
Nicer, as in versus Option B:
- connect external drive
- backup runlevel -> shut down all services
- make file level backup (--> possibly lengthy operation, even with incremental approach, services are down)
- default runlevel -> restart all services
Question is, does the ext3 filesystem stay sane on the external drive in case of Option A? Is it safe to disconnect the drive while filesystem is mounted read-only?
How different is it from cleanly unmounting the filesystem first; will there be a recovery run on next mount? This is a rootfs, which is why I cannot cleanly unmount it.
First, if you mount a FS read-only, it will not be modified.
Second, for your backup problem you might want to look at LVM and its snapshot feature which allows you to shutdown services (if necessary), make the snapshot, restart the service and make a file level backup from the snaphshot and delete the snapshot after the backup has finished. Your approach in Option A is highly unusual.