Problem solved.
Actually when I did the db2start without changing anything it did include this line:
Disk: 4K Device Support: NONE(This does not show up when the container ist started...)
Then looking at db2set revealed that it hat not picked up
DB2_4K_DEVICE_SUPPORT=ON from my docker-compose definition
environment:
LICENSE: accept
...
DB2_4K_DEVICE_SUPPORT: 'ON'
so I did it from inside the container with db2set followed by db2stop/restart and voila:
dbstart now logs:
Disk: 4K Device Support: ENGINE,LOB,BACKUP,RESTOREThanks for pointing me towards that solution.
:)
------------------------------
uli
------------------------------
Original Message:
Sent: Wed November 18, 2020 09:58 AM
From: Matthew Emmerton
Subject: docker install on 4K sector disk produces error
Uli,
I agree that this is a problem. From the debug data here, this particular I/O request does not meet the requirements of Direct I/O on 4K sector devices.
Adjacent to this error message, there should be a stack dump. Can you post it? This will be most helpful in determining where we are generating this bad I/O request.
Another thing to confirm - after setting the DB2_4K_DEVICE_SUPPORT registry variable, you must restart the instance (db2stop/db2start) for it to take effect.
Regards,
--
Matt Emmerton, Db2 Data Management, Platform and OS
------------------------------
Matthew Emmerton
Original Message:
Sent: Fri November 13, 2020 04:22 PM
From: Ulrich Stuessel
Subject: docker install on 4K sector disk produces error
I was trying to get the standard db2 docker container to work on my 4K sector size disk (Ubuntu 20.04.1 LTS).
Could anyone describe how this would work on docker ? I did set an environment variable DB2_4K_DEVICE_SUPPORT=ON, but am not sure I did it right as Db2 fails to allocate any tablespace.
The first error I get is this:
2020-11-13-21.07.49.536080+000 E256207E1669 LEVEL: Error (OS)
mydb2_1 | PID : 16006 TID : 140386970363648 PROC : db2sysc 0
mydb2_1 | INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
mydb2_1 | APPHDL : 0-8 APPID: *LOCAL.db2inst1.201113210749
mydb2_1 | AUTHID : DB2INST1 HOSTNAME: d27418451922
mydb2_1 | EDUID : 23 EDUNAME: db2agent (SAMPLE) 0
mydb2_1 | FUNCTION: DB2 UDB, oper system services, sqloseekwrite64, probe:50
mydb2_1 | MESSAGE : ZRC=0x870F0002=-2029060094=SQLO_BPSE "Debug logic error detected"
mydb2_1 | DIA8501C A buffer pool logic error has occurred.
mydb2_1 | CALLED : OS, -, pwrite OSERR: EINVAL (22)
mydb2_1 | DATA #1 : File handle, PD_TYPE_SQO_FILE_HDL, 8 bytes
mydb2_1 | File Handle = 22
mydb2_1 | File System Block Size = 4096 bytes
mydb2_1 | File System Type = ext4
mydb2_1 | Storage Sector Size = UNKNOWN
mydb2_1 | File Handle Flags :
mydb2_1 | Require Sector Align = No
mydb2_1 | DIO/CIO Mode = Yes
mydb2_1 | Raw Block Device = No
mydb2_1 | Reserved Handle = No
mydb2_1 | Flush On Close = Yes
mydb2_1 | Thread-Level Lock = No
mydb2_1 | Write-through Mode = No
mydb2_1 | File Not Tracked = No
mydb2_1 | Remote Storage Read = No
mydb2_1 | Remote Storage Write = No
mydb2_1 | Extended File Handle = No
mydb2_1 | Use Local, No Delete = No
mydb2_1 | DATA #2 : signed integer, 8 bytes
mydb2_1 | 512
mydb2_1 | DATA #3 : unsigned integer, 8 bytes
mydb2_1 | 32256
mydb2_1 | DATA #4 : signed integer, 8 bytes
mydb2_1 | -1
mydb2_1 | DATA #5 : String, 258 bytes
mydb2_1 | Possible reasons for EINVAL from write():
mydb2_1 | 1. Misaligned IO due to an unsupported block size. Run blockdev (Linux) or similar to confirm.
mydb2_1 | 2. Invalid parameters to the API.
mydb2_1 | 3. The file size / offset specified is > 2G but the file system does not support > 2G.
Thanks in advance
------------------------------
uli
------------------------------
#Db2