vchanger is designed to implement a disk-based virtual autochanger device for use with Bacula(TM), an open-source network backup solution.
Please see the vchangerHowto.html in the doc directory of the vchanger source for further documentation and installation instructions.
I've made a bit change in function CreateVolumes to modify the way to generate volume names, because by default when vchanger creates volumes doesn't keep the correct order in "list media"
Before changes:
vchanger /etc/vchanger/vchanger.conf createvols 3 15 1
Pool: Scratch
+---------+----------------------------+-----------+
| MediaId | VolumeName | VolStatus |
+---------+----------------------------+-----------+
| 111 | StorageVirtualChanger_3_1 | Append |
| 112 | StorageVirtualChanger_3_10 | Append |
| 113 | StorageVirtualChanger_3_11 | Append |
| 114 | StorageVirtualChanger_3_12 | Append |
| 115 | StorageVirtualChanger_3_13 | Append |
| 116 | StorageVirtualChanger_3_14 | Append |
| 117 | StorageVirtualChanger_3_15 | Append |
| 118 | StorageVirtualChanger_3_2 | Append |
| 119 | StorageVirtualChanger_3_3 | Append |
| 120 | StorageVirtualChanger_3_4 | Append |
| 121 | StorageVirtualChanger_3_5 | Append |
| 122 | StorageVirtualChanger_3_6 | Append |
| 123 | StorageVirtualChanger_3_7 | Append |
| 124 | StorageVirtualChanger_3_8 | Append |
| 125 | StorageVirtualChanger_3_9 | Append |
+---------+----------------------------+-----------+
vchanger /etc/vchanger/vchanger.conf createvols 3 15 1 --label=Volume-Daily
Pool: Scratch
+---------+-----------------+-----------+
| MediaId | VolumeName | VolStatus |
+---------+-----------------+-----------+
| 126 | Volume-Daily_1 | Append |
| 127 | Volume-Daily_10 | Append |
| 128 | Volume-Daily_11 | Append |
| 129 | Volume-Daily_12 | Append |
| 130 | Volume-Daily_13 | Append |
| 131 | Volume-Daily_14 | Append |
| 132 | Volume-Daily_15 | Append |
| 133 | Volume-Daily_2 | Append |
| 134 | Volume-Daily_3 | Append |
| 135 | Volume-Daily_4 | Append |
| 136 | Volume-Daily_5 | Append |
| 137 | Volume-Daily_6 | Append |
| 138 | Volume-Daily_7 | Append |
| 139 | Volume-Daily_8 | Append |
| 140 | Volume-Daily_9 | Append |
+---------+-----------------+-----------+
After changes:
vchanger /etc/vchanger/vchanger.conf createvols 3 15 1
Pool: Scratch
+---------+------------------------------+-----------+
| MediaId | VolumeName | VolStatus |
+---------+------------------------------+-----------+
| 156 | StorageVirtualChanger_3_0001 | Append |
| 157 | StorageVirtualChanger_3_0002 | Append |
| 158 | StorageVirtualChanger_3_0003 | Append |
| 159 | StorageVirtualChanger_3_0004 | Append |
| 160 | StorageVirtualChanger_3_0005 | Append |
| 161 | StorageVirtualChanger_3_0006 | Append |
| 162 | StorageVirtualChanger_3_0007 | Append |
| 163 | StorageVirtualChanger_3_0008 | Append |
| 164 | StorageVirtualChanger_3_0009 | Append |
| 165 | StorageVirtualChanger_3_0010 | Append |
| 166 | StorageVirtualChanger_3_0011 | Append |
| 167 | StorageVirtualChanger_3_0012 | Append |
| 168 | StorageVirtualChanger_3_0013 | Append |
| 169 | StorageVirtualChanger_3_0014 | Append |
| 170 | StorageVirtualChanger_3_0015 | Append |
+---------+------------------------------+-----------+
*
This way I can define if I use "-" (hyphen) or "_" (underscore) to label volumes and the volume numbers stay in correct order.
vchanger /etc/vchanger/vchanger.conf createvols 3 15 1 --label=Volume-Daily-
Pool: Scratch
+---------+-------------------+-----------+
| MediaId | VolumeName | VolStatus |
+---------+-------------------+-----------+
| 171 | Volume-Daily-0004 | Append |
| 172 | Volume-Daily-0005 | Append |
| 173 | Volume-Daily-0006 | Append |
| 174 | Volume-Daily-0007 | Append |
| 175 | Volume-Daily-0008 | Append |
| 176 | Volume-Daily-0009 | Append |
| 177 | Volume-Daily-0010 | Append |
| 178 | Volume-Daily-0011 | Append |
| 179 | Volume-Daily-0012 | Append |
| 180 | Volume-Daily-0013 | Append |
| 181 | Volume-Daily-0014 | Append |
| 182 | Volume-Daily-0015 | Append |
+---------+-------------------+-----------+
*
This way I can define if I use "-" (hyphen) or "_" (underscore) to label volumes and the volume numbers are in correct order.
vchanger /etc/vchanger/vchanger.conf createvols 3 15 1 --label=Volume_Daily_
Pool: Scratch
+---------+-------------------+-----------+
| MediaId | VolumeName | VolStatus |
+---------+-------------------+-----------+
| 183 | Volume_Daily_0001 | Append |
| 184 | Volume_Daily_0002 | Append |
| 185 | Volume_Daily_0003 | Append |
| 186 | Volume_Daily_0004 | Append |
| 187 | Volume_Daily_0005 | Append |
| 188 | Volume_Daily_0006 | Append |
| 189 | Volume_Daily_0007 | Append |
| 190 | Volume_Daily_0008 | Append |
| 191 | Volume_Daily_0009 | Append |
| 192 | Volume_Daily_0010 | Append |
| 193 | Volume_Daily_0011 | Append |
| 194 | Volume_Daily_0012 | Append |
| 195 | Volume_Daily_0013 | Append |
| 196 | Volume_Daily_0014 | Append |
| 197 | Volume_Daily_0015 | Append |
+---------+-------------------+-----------+