3. Configure your first object storage
objbaker is the program that provides access to object storage for the cloud gateway software. To start with the configuration you would need access key and secret generated by your provider, if you are using object storage in multi-cloud environment or if the compute engine was not authorized to perform any S3 object access operations.
AWS EC2
For AWS EC2 instance created with IAM role that authorizes S3 operations it may not be required to configure the accessId and accessKey within the software. Instead use the option --accessEC2IAM=ROLE option with objbaker. This will acquire S3 credentials from EC2 machine via IAM role.
Create access file with credentials
Create file v:\etc\.s3wasabi_passwd using notepad and add the access information in this format accessId:accessKey. The accessId could be account ID, and the accessKey is base64 encoded secret.
By starting filename with dot you would avoid Windows adding any .txt extension to the above file. Also make sure there are no extraneous characters or newlines in this file. This file is accessed by Crossmeta programs as /etc/.s3wasabi_passwd, while WIN32 programs access as v:\etc\.s3wasabi_passwd
Location of SSL certficate bundle
For SSL to work the curl library needs to know the location of its CA CERT bundle, which is installed in c:\program files\crossmeta. When you run the objbaker this information is provided with --cacert=ca-bundle.crt option . While running interactively since the startup directory is c:\program files\crossmeta this would work. But when the program is running as NT service the startup directory would be c:\windows\syswow64. In that case either copy ca-bundle.crt to c:\windows\syswow64 or specify full pathname to --cacert option.List buckets with objbaker
Before configuring object disk with Windows, make sure objbaker can list the buckets from your storage account. The baseURL is the most important parameter and should match with access URL of the cloud provider. You should use HTTPS for secure SSL access.
AzureC:\Program Files\crossmeta>objbacker.exe --cacert=ca-bundle.crt --ssl --accessFile=/etc/.s3azure_passwd --s3Type=azure --baseURL=https://zfstest.blob.core.windows.net/ --bucketCommand=list
AWSC:\Program Files\crossmeta>objbacker.exe --cacert=ca-bundle.crt --ssl --accessFile=/etc/.s3amazon_passwd --authVersion=aws2 --baseURL=https://s3.us-west-1.wasabisys.com/ --bucketCommand=list
Google CloudC:\Program Files\crossmeta>objbacker.exe --cacert=ca-bundle.crt --ssl --accessFile=/etc/.s3google_passwd --s3Type=google_s3 --baseURL=https://storage.googleapis.com/ --bucketCommand=list
WasabiC:\Program Files\crossmeta>objbacker.exe --cacert=ca-bundle.crt --ssl --accessFile=/etc/.s3wasabi_passwd --baseURL=https://s3.us-west-1.wasabisys.com/ --bucketCommand=list
For troubleshooting add --debug-http to the above command to get detailed REST API output.Configure object storage as VHD
Before configuring object disk with Windows make sure the Crossmeta Fuse driver has started. If required start the driver as followsFUSEC:\Program Files\crossmeta>net start cxfuse The CROSSMETA FUSE kernel mode driver service was started successfully.
Options to objbaker
| Option | ||
|---|---|---|
| Logical size of VHDX up to 64TB allowed by Windows | 10T | --size=10T |
| Block size of object files. Large block size reduces object access costs. This should match file system allocation size for optimal performance | 1MB | --blockSize=1024K |
| Directory to use as mount point in Crossmeta drive | mnt | /mnt |
| No caching to prevent stale data | --directIo--blockCacheSize=100 | |
| Specify desired filename for object disk. This should have extension vhdx for Windows to use it | --filename=file.vhdx | |
| S3 access credential file name. Some file in Crossmeta drive. | accessId:accessKey | --accessFile=/etc/.s3wasabi_passwd |
| S3 Type option to identify cloud object storage api. The default is amazon_s3. Mandatory option for Azure Blobs | azure google_s3 amazon_s3 | --s3Type=azure |
| Region option. This option is mandatory for Amazon S3 | us-west-1 | --region=us-west-1 |
Access URL for the object storage. Must be specified for all S3 object provider other than Amazon Azure blobs contain the storage account name in the URL. | zfstest is the storage account name for Azure | --baseURL=https://zfstest.blob.core.windows.net/ |
- Mount object storage bucket in foreground to make sure it is working before configuring it as service.
C:\Program Files\crossmeta>objbacker.exe --cacert=ca-bundle.crt --accessFile=/etc/.s3wasabi_passwd --authVersion=aws2 --baseURL=https://s3.us-west-1.wasabisys.com/ --directIO --noAutoDetect --size=10T --timeout=30 --blockCacheSize=100 --blockCacheThreads=8 --minWriteDelay=5000 --md5CacheSize=1000000 --ssl --blockSize=1024K -o no_pagecache smbtest1 /mnt -f objbacker.exe: auto-detection disabled; using configured block size 1m and file size 10t INFO: s3backer process 5312 for /mnt started INFO: mounting /mnt
- Initialize VHDX on the object storage bucket using eemu-img program available in c:\program files\qemu
- Verifyu
cd c:\program files\qemu C:\Program Files\qemu> qemu-img create -f vhdx v:\mnt\file.vhdx 10T
- Verify VHDX file information
cd c:\program files\qemu C:\Program Files\qemu> qemu-img create -f vhdx v:\mnt\file.vhdx 10T
- Activate VHDX file as virtual disk in Windows
- Create a file system NTFS or ReFS
- Detach the virtual disk
- Stop the objbaker program to proceed configuration as service
- Register objdisk1 as NT service program
- Starting the objdisk1 service
- Stopping the objdisk service
Related pages