CloudFS for ODA Migration

Once your ODA is in the rack and running, you will need to migrate your databases onto it. For this, you need some disk space to store RMAN backup pieces or Data Pump dump files. There is no need to mount slow, external NFS shares to accomplish this – use the built in “Cloud File System”.

We’ve previously used DBFS for the same purpose – DBFS is a little more flexible but much more effort to configure and maintain. CloudFS could not be simpler.

During deployment, you have the option to configure /cloudfs. If you skip this step you can come back and configure it later. MOS article 1435019.1 discusses how to do this with the Oracle Appliance Manager, but this article explains how to do it without the GUI.

Be sure to review the following MOS article prior to using CloudFS –

Oracle Cloud File System Licensing Requirements [ID 1322405.1]

In the following example commands prefixed with $ are run by the “grid” user and those prefixed with # are run by root.

Firstly as “grid” run asmcmd and create the ASM volume to use for the file system. In this case we’re creating the volume on the +DATA diskgroup but +RECO would work fine too if you have it. We’re giving the volume a name of “cloudfs1” and we’ve chosen to size it at 100GB. The space will be immediately consumed from the diskgroup, and in this case picks up the default NORMAL redundancy.

$ asmcmd
ASMCMD> volcreate -G DATA -s 100G cloudfs1
ASMCMD> volinfo -G data cloudfs1

Now you need to know the device name for this volume. Run the following command, and you can see in our case the device name is “/dev/asm/cloudfs1-12”.

ASMCMD> volinfo -G data cloudfs1
Diskgroup Name: DATA

Volume Name: CLOUDFS1
Volume Device: /dev/asm/cloudfs1-12
Size (MB): 102400
Resize Unit (MB): 32
Redundancy: MIRROR
Stripe Columns: 4
Stripe Width (K): 128

Next we create a file system on this volume. This can still be run as “grid”. We have to supply the device name discovered in the previous step.

$ /sbin/mkfs -t acfs /dev/asm/cloudfs1-12
mkfs.acfs: version =
mkfs.acfs: on-disk version = 39.0
mkfs.acfs: volume = /dev/asm/cloudfs1-12
mkfs.acfs: volume size = 107374182400
mkfs.acfs: Format complete.

Now we have a volume and a file system, and could simply mount this straight away if we wanted. In our case, we want clusterware to automatically mount the file system on all nodes. We accomplish this by adding the volume to the registry as follows (we’re choosing to mount it as /cloudfs) –

$ /sbin/acfsutil registry -a /dev/asm/cloudfs1-12 /cloudfs
acfsutil registry: mount point /cloudfs successfully added to Oracle Registry

It takes up to 30 seconds for the file system to be automatically mounted on all nodes, after which you can see the file system mounted –

[root@oak1 ~]# df -h /cloudfs
Filesystem Size Used Avail Use% Mounted on
/dev/asm/cloudfs1-12 100G 268M 100G 1% /cloudfs

Finally as root you need to set permissions on this mount. This is persistent after reboot and takes effect on all nodes too, so you only need to run it on node 1 –

# chown oracle:dba /cloudfs

That’s it! Your RMAN and Data Pump jobs will benefit from the files already being in ASM and everything remains self-enclosed within the ODA.

By the way, Oracle have confirmed that at the moment, ACFS (CloudFS) isn’t supported on Exadata.

Post a comment or leave a trackback: Trackback URL.


  • Gary  On January 26, 2013 at 2:08 PM

    I have a question. Two options

    1. Why don’t you use asmcmd
    asmcmd -p
    asmcmd>cd +DATA
    asmcmd>mkdir exports

    2. use DBFS

    What is advantage of using ACFS/CLOUDFS?


    • matthewdba  On January 27, 2013 at 2:56 PM

      Hi Gary!

      DBFS doesn’t work out of the box on ODA. You need the Fuse client but in order to install that, you need the kernel-devel package for your particular patch version. Oracle Development would rather people used CloudFS on the ODA because it is one less customisation away from the standard installation, and one less thing to go wrong.

      The other reason is simplicity. CloudFS doesn’t require the database instance which DBFS requires, and it takes just 2-3 commands to mount your ASM disk space across the entire cluster. The process is much more complicated with DBFS, more time consuming, more distinct layers, you need to follow the steps separately on all cluster nodes, and more things which can go wrong going forward.

      In practice there isn’t much choice on engineered systems anyway. DBFS doesn’t work on ODA, and CloudFS isn’t supported on Exadata.

  • Weidong Zhou  On August 24, 2013 at 12:52 PM

    Interesting article. Just curious. Have you run into any issues in CloudFS? Also have you done resize CloudFS to a smaller size, for example, reduce the size of CloudFS from 800G to 300G, and move the save space to the rest of RECO disk group?

    • matthewdba  On August 24, 2013 at 1:23 PM

      Actually resizing is discussed in 1437717.1. It works quite nicely –

      [root@oda-nodea ~]# df -h /cloudfs
      Filesystem Size Used Avail Use% Mounted on
      /dev/asm/acfsvol-201 50G 230M 50G 1% /cloudfs

      [grid@oda-nodea ~]$ /sbin/acfsutil size -20G /cloudfs
      acfsutil size: new file system size: 32212254720 (30720MB)

      [grid@oda-nodea ~]$ df -h /cloudfs
      Filesystem Size Used Avail Use% Mounted on
      /dev/asm/acfsvol-201 30G 230M 30G 1% /cloudfs

      ASMCMD> volinfo -a
      Diskgroup Name: RECO

      Volume Name: ACFSVOL
      Volume Device: /dev/asm/acfsvol-201
      State: ENABLED
      Size (MB): 30720
      Resize Unit (MB): 32
      Redundancy: MIRROR
      Stripe Columns: 4
      Stripe Width (K): 128
      Usage: ACFS
      Mountpath: /cloudfs

  • Weidong Zhou  On August 24, 2013 at 2:29 PM

    Cool. Thanks a lot.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: