Hello Kern,

Thank you for all info. I needed to install cloud plugin (yum install bacula-cloud-storage) in order to use this configuration. Relevant part of bacula-sd.conf is pasted bellow. Files did get uploaded to Oracle object storage.

I intend to use lifecycle policy on the cloud bucket. It will archive 60days old files to a 10times cheaper storage. For bacula that means that some fileparts will not be available until I manually restore them (after 60 days status will change from available to archived).

Do you expect that this will represent any kind of problem for backup job? Perhaps fileparts of the last full backup need to be available at local folder in order to run incremental backup?

What about restore procedure (eg. from 90 days old incremental backup)? Will bacula notify me which fileparts are missing at local folder in order to complete the restore?

I will continue with my tests and hopefully move to production in a month or two. I intend to publish on the bacula-users list, if everything worked for me. If I forget, do not hesitate to ask me about that.

Kind regards,
Ziga

Relevant part of bacula-sd.conf:

Device {
  Name = FSOciCloudStandard
  Device type = Cloud
  Cloud = OracleViaStorageGateway
#  Maximum Part Size = 100 MB
  Media Type = File1
  Archive Device = /mnt/backup_bacula/backup
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}

Cloud {
  Name = OracleViaStorageGateway
  Driver = "File"
  HostName = "/mnt/baculatest_standard/backup"
  BucketName = "DummyBucket"
  AccessKey = "DummyAccessKey"
  SecretKey = "DummySecretKey"
  Protocol = HTTPS
  UriStyle = VirtualHost
}



On 08/07/2020 16:32, Kern Sibbald wrote:

Hello Ziga,

Yes, you might be able to do what you want using a "debug" feature of the Bacula Cloud driver.  It is not very well documented, but there is one section "3 File Driver for the Cloud" in the "Bacula Cloud Backup" that mentions it.

Basically instead of using the "S3" driver in the Cloud resource of your Storage Daemon, you use "File" and the HostName becomes the path where the Cloud volumes (directories + parts) will be written.  For example, I use the following for writing to disk instead of an S3 cloud.

Cloud {
  Name = DummyCloud
  Driver = "File"
  HostName = "/home/kern/bacula/k/regress/tmp/cloud"
  BucketName = "DummyBucket"
  AccessKey = "DummyAccessKey"
  SecretKey = "DummySecretKey"
  Protocol = HTTPS
  UriStyle = VirtualHost
}

The Device resource looks like:

Device {
  Name = FileStorage1
  Media Type = File1
  Archive Device = /home/kern/bacula/k/regress/tmp
  LabelMedia = yes;                   # lets Bacula label unlabelled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;

  Device Type = Cloud

  Cloud = DummyCloud
}

I know the code runs and produces correct output, but I am not sure how it will work in your environment.  If it works, great.  If it doesn't work, for the near future, unfortunately I cannot provide support, but at some point (probably 3-6 months) the project may support this feature.

Note: the next version of Bacula coming in a few months will have a good number of new features and improvements to the Cloud driver (more bconsole commands for example).

Good luck, and best regards,

Kern

PS: If it does work for you, I would appreciate it if you would document it and publish it on the bacula-users list so others can use the Oracle cloud.



On 7/8/20 3:41 PM, Žiga Žvan wrote:

Hi Mr. Kern,

My question was a bit different. I have noticed that Oracle S3 is not compatible, therefore I have implemented Oracle Storage gateway (a docker image that uses local filesystem as a cache and moves the data automatically to oracle cloud). I have this filesystem mounted (nfsv4) on bacula server and I am able to backup data to this storage (and hence in cloud).

I have around 1 TB data daily and I'm a bit concerned about the bandwidth. It will take app. 4 hours to sync to the cloud and I need to count in the future growth. As long as bacula writes data to one file/volume, where it stores full and incremental backups, this is not optimal for the cloud (the file will change and all the data will upload each day). I have noticed that bacula stores data differently in the cloud configuration. Volume is not a file, but a folder with fileparts. This would be better for me, because only some fileparts would change and move to the cloud via Storage gateway. So the question is: Can I configure bacula-sd to store data in fileparts, without actual cloud sync? Is this possible? I have tried several configurations of a bacula-sd device with no luck. Should  I configure some dummy cloud resource?

Kind regards,

Ziga Zvan


On 07/07/2020 14:40, Kern Sibbald wrote:

Hello,

Oracle S3 is not compatible with Amazon S3 or at least with the libs3 that we use to interface to AWS and other compatible S3 cloud offerings.

Yes, Bacula Enterprise has a separate Oracle cloud driver that they wrote.  There are no plans at the moment to backport it to the community version.

Best regards,

Kern

On 7/7/20 8:43 AM, Žiga Žvan wrote:

Dear all,

I'm testing communty version of bacula in order to change backup sw for app. 100 virtual and physical hosts. I would like to move all the data to local storage and then move them to public cloud (Oracle Object storage).

I believe that community version of the software suites our needs. I have installed:
-version 9.6.5 of bacula on centos 7 computer
-oracle storage gateway (similar to aws SG - it moves data to object storage and exposes it localy as nfsv4; for bacula this is backup destination).

I have read this two documents regarding bacula and cloud
https://blog.bacula.org/whitepapers/CloudBackup.pdf
https://blog.bacula.org/whitepapers/ObjectStorage.pdf

It is mentioned it the document above, that Oracle Object storage is not supported at the moment. Is it possible to *configure* bacula Storage device in a way that uses *Cloud media format* (directory with file parts as a volume, instead of a single file as a volume) *without actual cloud sync* (Storage Gateway does this in my case)? I am experimenting with variations of the definition bellow, but I am unable to solve this issue for now (it tries to initialize cloud plugin or it writes to a file, instead of a directory).

Device {
  Name = FSOciCloudStandard
#  Device type = Cloud
  Device type = File
#  Cloud = OracleViaStorageGateway
  Maximum Part Size = 100 MB
#  Media Type = File
  Media Type = CloudType
  Archive Device = /mnt/baculatest_standard/backup
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}

Is there any plan to support oracle object storage in near future? It has S3 compatible API and bacula enterprise supports it...
Kind regards,
Ziga Zvan


_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to