Hello dear all,

Abstractly spoken I need a concept for my Tier 2 to be able to write file 
volumes to more than just 1 (HDD) Device (or MediaType), filling the HDDs up 
one after the other. By this I mean that the individual HDDs are -NOT- 
abstracted away by a logical layer device such as some RAID level (in such a 
case we would just have 1 Device (or MediaType)).

(How) can this be done with Bacula?

To give you a different perspective on the problem that I am trying to solve:

If I use physical tape drives and autochangers I can always buy more tapes to 
expand my storage. If the changer would only work with a limited set of tapes 
(lets say tapes in a magazine that the autochanger can mechanically change 
without human/manual help) it is more like the situation with volumes in files 
instead of tapes. The autochanger can write to volumes until the HDD is full, 
then the auto changing is limited to the set of files held by this HDD. New 
backups can only be written if volumes get recycled.

And then comes the day when the HDD is full and the retention does not yet 
allow for recycling.
This is where I am today.

What I tried so far: (- and it does not work for me-)       (at the bottom of 
this email please find attached all my directives for storage for my Director 
und my SD (both on the same machine, same container).

I have structured my storage into tiers, where Tier 1 is held on internal SATA 
HDDs and Tier 2 is held on external HDDs connected via USB3. 

I would like to focus on Tier 2 storage for this posting (Tier 1 is not a 
problem as it is held on a HDD array that can be expanded by replacing smaller 
HDDs with larger HDDs without impacting existing file volumes.)

Tier 2 storage is declared as follows in the director:

Storage {
  Name = "tier2-storage"
  SdPort = 9103
  Address = "redacted"
  Password = "redacted"
  Device = "tier2-ext-usb-changer"
  MediaType = "tier2-ext-usb1-folder1-file"
  Autochanger = yes
  MaximumConcurrentJobs = 10
}
 
The device tier2-ext-usb1-folder1-file is an autochanger that has access to two 
file volume changer devices, where /mnt/tier2-01 is on USB HDD 1 and 
/mnt/tier2-02 is on USB HDD 2. These HDDs 1 and 2 are held in the same USB 
case, but are addressed individually, they are explicitly not combined in a 
RAID and (I would like to keep it this way).

Autochanger {
Name = "tier2-ext-usb-changer"
Device = "Tier2-FileChgr1-Dev1"
Device = "Tier2-FileChgr1-Dev2"
ChangerDevice = "/dev/null"
ChangerCommand = "/dev/null”
}

Device {
Name = "Tier2-FileChgr1-Dev1"
MediaType = "tier2-ext-usb1-folder1-file"
DeviceType = "File"
ArchiveDevice = "/mnt/tier2-01"
RemovableMedia = no
RandomAccess = yes
AutomaticMount = yes
LabelMedia = yes
AlwaysOpen = no
Autochanger = yes
MaximumConcurrentJobs = 5
}

Device {
Name = "Tier2-FileChgr1-Dev2"
MediaType = "tier2-ext-usb2-folder1-file"
DeviceType = "File"
ArchiveDevice = "/mnt/tier2-02"
RemovableMedia = no
RandomAccess = yes
AutomaticMount = yes
LabelMedia = yes
AlwaysOpen = no
Autochanger = yes
MaximumConcurrentJobs = 5
}

As in the Director Storage directive declared due to MediaType = 
"tier2-ext-usb1-folder1-file” merely HDD 1 is used (and the MediaType directive 
is mandatory for Storage in the Director).

Is there a way to allow the autochanger tier2-ext-usb-changer to also create 
und use volumes on HDD2? This autochanger actually comprises of 2 “File” 
devices, but now can only use one of them due to the different media types (and 
I understand that the changing is meant regarding the volumes within each 
“File" device, meaning for file volumes, that it can create/access the file 
volumes within a given folder. What I imagine is that it could use file volumes 
from any of the 2 Devices Tier2-FileChgr1-Dev1 and Tier2-FileChgr1-Dev2).

If there is no way to get this to work as I imagine it?

If not so, what is the correct way to handle my current situation: HDD 1 is 
full now, no further volumes can be written to HDD1, only existing volumes on 
HDD 1 could be recycled, but the retention time does not yet allow this. 

How can I expand my USB-based Tier 2 storage to hold further volumes? 
Note: I already have HDD 2 there in the same USB case waiting to be filled. 
Adding further HDDs in the same USB case is not a problem, but each HDD must be 
addressed individually (the USB case intentionally is not using a RAID 
controller).

Coming back to the tape magazine analogy, I now have an autochanger where 1 
magazine is full and it has a second magazine with empty tapes, but both 
magazines have a different MediaType. Is there a chance that the second 
magazine gets used?

All the best,
 J/C


For completeness sake all relevant directives for the described situation:

========================================
bacula-sd.conf
========================================

Storage {
Name = "bacula-sd"
WorkingDirectory = "/opt/bacula/working"
PidDirectory = "/opt/bacula/working"
PluginDirectory = "/opt/bacula/plugins"
MaximumConcurrentJobs = 20
}
Device {
Name = "Restore-FileChgr1-Dev99"
MediaType = "restore-int-user0-folder1"
DeviceType = "File"
ArchiveDevice = "/mnt/restore"
RemovableMedia = no
RandomAccess = yes
AutomaticMount = yes
LabelMedia = yes
Autochanger = no
AutoSelect = no
DriveIndex = 99
}
Device {
Name = "Tier1-FileChgr1-Dev1"
MediaType = "tier1-int-user0-folder1-file"
DeviceType = "File"
ArchiveDevice = "/mnt/tier1-01"
RemovableMedia = no
RandomAccess = yes
AutomaticMount = yes
LabelMedia = yes
AlwaysOpen = no
Autochanger = yes
MaximumConcurrentJobs = 5
}
Device {
Name = "Tier1-FileChgr1-Dev2"
MediaType = "tier1-int-user0-folder2-file"
DeviceType = "File"
ArchiveDevice = "/mnt/tier1-02"
RemovableMedia = no
RandomAccess = yes
AutomaticMount = yes
LabelMedia = yes
AlwaysOpen = no
Autochanger = yes
MaximumConcurrentJobs = 5
DriveIndex = 1
}
Device {
Name = "Tier2-FileChgr1-Dev1"
MediaType = "tier2-ext-usb1-folder1-file"
DeviceType = "File"
ArchiveDevice = "/mnt/tier2-01"
RemovableMedia = no
RandomAccess = yes
AutomaticMount = yes
LabelMedia = yes
AlwaysOpen = no
Autochanger = yes
MaximumConcurrentJobs = 5
}
Device {
Name = "Tier2-FileChgr1-Dev2"
MediaType = "tier2-ext-usb2-folder1-file"
DeviceType = "File"
ArchiveDevice = "/mnt/tier2-02"
RemovableMedia = no
RandomAccess = yes
AutomaticMount = yes
LabelMedia = yes
AlwaysOpen = no
Autochanger = yes
MaximumConcurrentJobs = 5
}
Autochanger {
Name = "tier1-int-user0-folder-changer"
Device = "Restore-FileChgr1-Dev99"
Device = "Tier1-FileChgr1-Dev1"
Device = "Tier1-FileChgr1-Dev2"
ChangerDevice = "/dev/null"
ChangerCommand = "/dev/null"
}
Autochanger {
Name = "tier2-ext-usb-changer"
Device = "Tier2-FileChgr1-Dev1"
Device = "Tier2-FileChgr1-Dev2"
ChangerDevice = "/dev/null"
ChangerCommand = "/dev/null”
}

========================================
bacula-dir.conf
========================================

Storage {
  Name = "unraid-tier1-restore"
  SdPort = 9103
  Address = "redacted"
  Password = "redacted"
  Device = "Restore-FileChgr1-Dev99"
  MediaType = "tier1-int-user0-folder1-file"
  Autochanger = yes
  MaximumConcurrentJobs = 10
}
Storage {
  Name = "unraid-tier1-storage"
  SdPort = 9103
  Address = "redacted"
  Password = "redacted"
  Device = "tier1-int-user0-folder-changer"
  MediaType = "tier1-int-user0-folder1-file"
  Autochanger = yes
  MaximumConcurrentJobs = 10
}
Storage {
  Name = "unraid-tier2-storage"
  SdPort = 9103
  Address = "redacted"
  Password = "redacted"
  Device = "tier2-ext-usb-changer"
  MediaType = "tier2-ext-usb1-folder1-file"
  Autochanger = yes
  MaximumConcurrentJobs = 10
}
Pool {
  Name = "Default"
  PoolType = "Backup"
  MaximumVolumes = 10
  MaximumVolumeBytes = 1073741824
  VolumeRetention = 86400
  AutoPrune = yes
  Recycle = yes
}
Pool {
  Name = "Scratch"
  PoolType = "Backup"
}
Pool {
  Name = "unraid-appdata-full-tier1"
  PoolType = "Backup"
  LabelFormat = "unraid-appdata-full-tier1-vol-"
  ActionOnPurge = "Truncate"
  MaximumVolumes = 100
  MaximumVolumeJobs = 1
  MaximumVolumeBytes = 50000000000
  VolumeRetention = 6048000
  AutoPrune = no
  Catalog = "MyCatalog"
}
Pool {
  Name = "unraid-appdata-full-tier2"
  PoolType = "Backup"
  LabelFormat = "unraid-appdata-full-tier2-vol-"
  ActionOnPurge = "Truncate"
  MaximumVolumes = 100
  MaximumVolumeJobs = 1
  MaximumVolumeBytes = 50000000000
  VolumeRetention = 6048000
  AutoPrune = no
  Catalog = "MyCatalog"
}
Pool {
  Name = "unraid-appdata-incr-tier1"
  PoolType = "Backup"
  LabelFormat = "unraid-appdata-incr-tier1-vol-"
  ActionOnPurge = "Truncate"
  MaximumVolumes = 175
  MaximumVolumeJobs = 6
  MaximumVolumeBytes = 50000000000
  VolumeRetention = 6048000
  AutoPrune = no
  Catalog = "MyCatalog"
}
Pool {
  Name = "unraid-appdata-incr-tier2"
  PoolType = "Backup"
  LabelFormat = "unraid-appdata-incr-tier2-vol-"
  ActionOnPurge = "Truncate"
  MaximumVolumes = 175
  MaximumVolumeJobs = 6
  MaximumVolumeBytes = 50000000000
  VolumeRetention = 6048000
  AutoPrune = no
  Catalog = "MyCatalog”
}







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

Reply via email to