Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

CDSW installation: Entries in DOCKER_BLOCK_DEVICES must only be block devices

avatar
Contributor

Hello guys,

 

I have a problem by adding CDS 1.4 as service on my CDH 5.14.
The error-message is: 

ERROR:: Entries in DOCKER_BLOCK_DEVICES must only be block devices: [/dev/xvde]: 1

ERROR:: Unable to create storage for docker.: 1

 

What I did so far or tried out:

  1. Added two new Hosts to my Cluster (Master and Worder for CDSW)
  2. Installed CDSW successfully with Cloudera Manager
  3. Formatted and mounted one block device to /var/lib/cdsw for the Application Block Device (CDSW Documentation Page 45)
  4. At this point I am not sure what to paste in during the installation for DOCKER_BLOCK_DEVICES
    Block_Device.png
    I tried here severl paths without success.
    As I understood I can choose myself here a path for instance /dev/xvde (Example can be found on CDSW documentation page 48) and the installer will do the work (format and mount Docker on each gateway host)

Full-Log from Cloudera Manager after the installation aborts:

 

Mi 10. Okt 11:26:24 CEST 2018
Current working directory: /run/cloudera-scm-agent/process/2762-cdsw-CDSW_DOCKER-prepare_node
Launching one-off process: /usr/lib64/cmf/service/csd/csd.sh prepare_node true
Mi 10. Okt 11:26:24 CEST 2018
JAVA_HOME=/usr/java/jdk1.8.0_181
Using /run/cloudera-scm-agent/process/2762-cdsw-CDSW_DOCKER-prepare_node as conf dir
Using scripts/control.sh as process script
CONF_DIR=/run/cloudera-scm-agent/process/2762-cdsw-CDSW_DOCKER-prepare_node
CMF_CONF_DIR=/etc/cloudera-scm-agent
Checking if [nfs-utils.x86_64] is installed...OK
Checking if [redhat-lsb-core.x86_64] is installed...OK
Checking if [nmap-ncat.x86_64] is installed...OK
Checking if [selinux-policy-targeted.noarch] is installed...OK
Checking if [libtool-ltdl.x86_64] is installed...OK
Checking if [libcgroup.x86_64] is installed...OK
Checking if [libseccomp.x86_64] is installed...OK
Checking if [lvm2.x86_64] is installed...OK
Checking if [bridge-utils.x86_64] is installed...OK
Checking if [policycoreutils-python.x86_64] is installed...OK
Checking if [ntp.x86_64] is installed...OK
Checking if [ebtables.x86_64] is installed...OK
Checking if [bind-utils.x86_64] is installed...OK
Checking if [openssl.x86_64] is installed...OK
Checking if [e2fsprogs.x86_64] is installed...OK
Checking if [rsync.x86_64] is installed...OK
Checking if [selinux-policy.noarch] is installed...OK
Checking if [gawk.x86_64] is installed...OK
Checking if [sed.x86_64] is installed...OK
Checking if [coreutils.x86_64] is installed...OK
Checking if [util-linux.x86_64] is installed...OK
Checking if [ncurses.x86_64] is installed...OK
Checking if [socat.x86_64] is installed...OK
Setting up docker storage.

ERROR:: Entries in DOCKER_BLOCK_DEVICES must only be block devices: [/dev/xvde]: 1

ERROR:: Unable to create storage for docker.: 1
Exit code: 1

Grateful for any help!

 

1 ACCEPTED SOLUTION

avatar
Contributor

I could solve the problem myself. As written in the documentation you have to have a block device for Docker. This can be either a second hard drive or a file which works as a block device.

Since I have only one hard drive on every CDSW-Host I had to create a block device as a file.
Following steps might be helpful for someone:

  • Creating a file (300GB) out of our aivalable block device (hard drive) under /home/myBlockDevice :
    dd if=/dev/sda of=/home/myBlockDevice bs=1M count=300000
  • Format file with ext4:
    mkfs.ext4 /home/myBlockDevice
  • Bind file with loop device loop0:
    losetup /dev/loop0 /home/myBlockDevice

Do the following if you wish to bind your newely created block-device after a reboot of your host with the loop device:

  • nano /etc/rc.local
  • Paste: losetup /dev/loop0 /home/myBlockDevice
  • Safe file and close
  • Run following comment on shell  to ensure that the script will be executed during boot:
    chmod +x /etc/rc.d/rc.local

In this example the path of DOCKER_BLOCK_DEVICES during the installation of CDSW will be /dev/loop0

 

View solution in original post

2 REPLIES 2

avatar
Contributor

I could solve the problem myself. As written in the documentation you have to have a block device for Docker. This can be either a second hard drive or a file which works as a block device.

Since I have only one hard drive on every CDSW-Host I had to create a block device as a file.
Following steps might be helpful for someone:

  • Creating a file (300GB) out of our aivalable block device (hard drive) under /home/myBlockDevice :
    dd if=/dev/sda of=/home/myBlockDevice bs=1M count=300000
  • Format file with ext4:
    mkfs.ext4 /home/myBlockDevice
  • Bind file with loop device loop0:
    losetup /dev/loop0 /home/myBlockDevice

Do the following if you wish to bind your newely created block-device after a reboot of your host with the loop device:

  • nano /etc/rc.local
  • Paste: losetup /dev/loop0 /home/myBlockDevice
  • Safe file and close
  • Run following comment on shell  to ensure that the script will be executed during boot:
    chmod +x /etc/rc.d/rc.local

In this example the path of DOCKER_BLOCK_DEVICES during the installation of CDSW will be /dev/loop0

 

avatar
Contributor

Thanks Boris for the below information. Will try the same.