Description
I tried to install the HANA Express Docker on a Debian 9 system where all storage is zfs. The creation of the docker failed when creating the persistence layer. See below for the actual output from the failure.
Suspecting that the problem was with lack of support for ZFS, I created a sparse image file on the zfs system, mounted it, changed the ownership of the mount point to hxeadm.sapsys (12000.79) and the docker creation completed.
The commands to create and mount the file are:
dd if=/dev/zero of=HANA.img bs=128k seek=819200 count=0
mkfs.ext4 HANA.img
mount HANA.img HANA
chown hxeadm.sapsys HANA
This creates and mounts a 100G sparse file, I chose bs based upon zfs recordsize on underlying filesystem
I suggest documentation to show what the filesystems are supported as persistence layers. I was unable to find this information from my searches.
Cheers,
lbe
Error Message on zfs:
Initializing persistence for first start of HANA (system db) ...
nameserver localhost:39001 not responding.
creating persistence ...
assign failed with persistence startup error. exception 1: no.2000004 (Basis/IO/FileAccess/impl/FileDescriptors.cpp:328)
Cannot open file ""/datavolume_0000.dat" ((closed, mode= RW, access= rw-rw-r--, flags= DIRECT|LOCK), factory= (root= "/hana/mounts/data/mnt00001/hdb00001/" (access= rw-rw-r--, flags= AUTOCREATE_DIRECTORY, usage= DATA, fs= UNKNOWN (zfs), config= (async_write_submit_active=on,async_write_submit_blocks=all,async_read_submit=on,num_submit_queues=1,num_completion_queues=1,size_kernel_io_queue=512,max_parallel_io_requests=64,min_submit_batch_size=16,max_submit_batch_size=64))", rc=22: Invalid argument
exception throw location:
1: 0x00007fd814b03b5b in FileAccess::FileAccessor::getAccessRights(ltt::basic_string<char, ltt::char_traits, ltt::integer_constant<64> > const&) const+0x1757 (libhdbbasis.so)
2: 0x00007fd814b263a3 in FileAccess::IoThreadHandler::~IoThreadHandler()+0x34f0 (libhdbbasis.so)
3: 0x00007fd814b268b8 in FileAccess::IoThreadHandler::~IoThreadHandler()+0x3a04 (libhdbbasis.so)
4: 0x00007fd814b331eb in FileAccess::DiskFullEvent::printEvent(ltt::basic_ostream<char, ltt::char_traits >&) const+0x5c97 (libhdbbasis.so)
5: 0x00007fd828e74936 in PageAccess::ReclaimDataVolumeTraceCallback::notifyFail(unsigned int, char const*)+0x8662 (libhdbdataaccess.so)
6: 0x00007fd828e76675 in PageAccess::DataVolume::createInstance(ltt::allocator&, Configuration::ConfigurationHandler&, Diagnose::StatisticsData const*, PageAccess::PageIO const&, PageAccess::ExtendedDataVolumeInfo const&, bool, bool)+0x141 (libhdbdataaccess.so)
7: 0x00007fd828e7e350 in PageAccess::DataVolumesSPI::forEachDataVolume(PageAccess::DataVolumeWriteFunctor&)+0xa00 (libhdbdataaccess.so)
8: 0x00007fd828e7f723 in PageAccess::DataVolumesSPI::forEachDataVolume(PageAccess::DataVolumeWriteFunctor&)+0x1dd0 (libhdbdataaccess.so)
9: 0x00007fd828e816d1 in PageAccess::DataVolumesSPI::forDataVolume(unsigned int, PageAccess::DataVolumeReadFunctor&) const+0xd30 (libhdbdataaccess.so)
10: 0x00007fd828e81d32 in PageAccess::DataVolumesSPI::createInstance(ltt::allocator&, Configuration::ConfigurationHandler&, Diagnose::StatisticsData const*, PageAccess::PageIO const&, PageAccess::ExtendedDataVolumesInfo const&)+0xb0 (libhdbdataaccess.so)
11: 0x00007fd828ec0345 in PageAccess::PageIOSPI::collectAndCheckPages(unsigned long&, unsigned long&, unsigned long*, unsigned long&, unsigned long*, unsigned long&, unsigned long*, ltt::vectorPageAccess::PhysPageNo, unsigned long&, unsigned long, ltt::vectorPageAccess::PhysPageNo) const+0xd1 (libhdbdataaccess.so)
12: 0x00007fd828ec400a in PageAccess::PageIO::createInstance(ltt::allocator&, Configuration::ConfigurationHandler&, Diagnose::StatisticsData const, PageAccess::ExtendedDataVolumesInfo const&)+0xb6 (libhdbdataaccess.so)
13: 0x00007fd828b5dfde in DataAccess::PersistenceManagerImpl::resetAfterIncompleteRecovery(DataAccess::SavepointVersion, bool)+0x169a (libhdbdataaccess.so)
14: 0x00007fd828b5ed71 in DataAccess::PersistenceManagerImpl::resetAfterIncompleteRecovery(DataAccess::SavepointVersion, bool)+0x2430 (libhdbdataaccess.so)
15: 0x00007fd828b5f12d in DataAccess::PersistenceManagerImpl::resetAfterIncompleteRecovery(DataAccess::SavepointVersion, bool)+0x27e9 (libhdbdataaccess.so)
16: 0x00007fd828b34f2b in DataAccess::PersistenceManager::create(ltt::refcounted_handleDataAccess::PersistenceConfiguration const&)+0x7 (libhdbdataaccess.so)
17: 0x00007fd82b676572 in PersistenceLayer::PersistenceSystem::initialize(NameServer::ServiceStartInfo const&, bool, PersistenceLayer::PERSISTENCE_MODE)+0x780 (libhdbpersistence.so)
18: 0x00007fd82b6b5b06 in PersistenceLayer::PersistenceFactory::initPersistence(PersistenceLayer::PERSISTENCE_MODE, DataAccess::TransactionCallback*, NameServer::ServiceStartInfo&, ltt::refcounted_handleTransactionManager::TransactionControlBlockFactory&, bool, ltt::smartptr_handleDataAccess::DisasterRecoverySecondaryCallback&)+0x3d2 (libhdbpersistence.so)
19: 0x00007fd83160065b in PersistenceController::startup(PersistenceLayer::PERSISTENCE_MODE, NameServer::ServiceStartInfo*, bool, DataAccess::TablePreloadWriteCallback*, DataAccess::TablePreloadReadCallback*, Backup::RecoverCbc_Federation*)+0x2157 (libhdblogger.so)
20: 0x00007fd830e99808 in NameServer::Topology::initPersistence(NameServer::ServiceStartInfo&, bool, bool, TREX_ERROR::TRexError*, bool, ltt_adp::basic_string<char, ltt::char_traits, ltt::integral_constant<bool, true> >, NameServer::ServiceStartInfo::RequestAction)+0x254 (libhdbns.so)
21: 0x00007fd830e9284a in NameServer::Topology::initPersistence(bool, bool, TREX_ERROR::TRexError*, bool, ltt_adp::basic_string<char, ltt::char_traits, ltt::integral_constant<bool, true> >, NameServer::ServiceStartInfo::RequestAction)+0x2e6 (libhdbns.so)
22: 0x000055fe12cc0314 in NameServer::HADRProviderManager::~HADRProviderManager()+0xb2c0 (hdbnsutil)
23: 0x000055fe12ccaf20 in config::IniFile::setValue(ltt_adp::basic_string<char, ltt::char_traits, ltt::integral_constant<bool, true> > const&, ltt_adp::basic_string<char, ltt::char_traits, ltt::integral_constant<bool, true> > const&, char const*)+0x79b0 (hdbnsutil)
24: 0x000055fe12cf9829 in NameServer::ServerInfo::operator=(NameServer::ServerInfo const&)+0x98f5 (hdbnsutil)
25: 0x000055fe12c59d20 in +0x0 (hdbnsutil)
26: 0x00007fd814da2034 in mainInitialPhase+0x2b40 (libhdbbasis.so)stopping service...
error: Unknown persistence layer error
failed. trace file nameserver_localhost.00000.000.trc may contain more error details.