Paul
To put in a most simplified way :
Block device does i/o in blocks at OS level
Character device allows you to do i/o at characters/bytes at OS level.
Use ASE mirroring to your advantage
If you have spare storage I suggest you try the mirror/unmirror feature of ASE.
Broadly the steps would be :
Enable server for mirroring (static parameter so needs a reboot)
Create proper raw device of the same size (as the block device)
Mirror from block device to character device
Once data is in sync break the mirror leaving only character device as the primary device
Drop the block device
HTH
Avinash