diff --git a/package.json b/package.json index 327e91e..19a731f 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "private": true, "hexo": { - "version": "3.6.0" + "version": "3.7.1" }, "dependencies": { "hexo": "^3.6.0", @@ -17,4 +17,4 @@ "hexo-renderer-stylus": "^0.3.1", "hexo-server": "^0.2.2" } -} +} \ No newline at end of file diff --git a/source/server/firstrun.md b/source/server/firstrun.md index 4e765e4..83d197c 100644 --- a/source/server/firstrun.md +++ b/source/server/firstrun.md @@ -12,8 +12,8 @@ related: # First deployment of a Spectrum Protect Server (in a container) > **NOTES**: -> * The following instructions are for a Spectrum Protect 8.1.8 instance. I used the same procedure described [here](/server) to build the Docker Image. The only difference is that I performed a new install using the installation media from the IBM public website. (Thus it was just an install, not an 8.1.0 install and followed by a 8.1.8 upgrade). -> * Make sure you follow the guidelines for space required as presented in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.8/srv.install/t_srv_plan_capacity-linux.html). +> * The following instructions are for a Spectrum Protect 8.1.9 instance. I used the same procedure described [here](/server) to build the Docker Image. The only difference is that I performed a new install using the installation media from the IBM public website. (Thus it was just an install, not an 8.1.0 install and followed by a 8.1.9 upgrade). +> * Make sure you follow the guidelines for space required as presented in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.9/srv.install/t_srv_plan_capacity-linux.html). Our Docker Image will have the SP database in `/database`, the instance user in `/tsm` and storage pools in `/data`. Ultimately these will be volumes provisioned from the host and using host storage, or your preferred Docker persistent volume storage technology. > * The storage used in the example below is from the host file systems, passed to the container with Docker's `-v` option. > * This implementation is using DISK or CLOUD storage pool storage. While accessing tape should be possible, I haven't explored what is required for that to work. @@ -25,14 +25,14 @@ Our configuration will use these defaults SP_DB=/srv/sp/database SP_USER=/srv/sp/user SP_DATA=/srv/sp/data -SP_IMAGE=ibm/spectrumprotect:8.1.8 +SP_IMAGE=ibm/spectrumprotect:8.1.9 ``` * **SP_DB** is where the TSM Database will be stored on the Docker Host, and will be passed to the container with `-v ${SP_DB}:/database` * **SP_USER** is where the TSM Instance user's home directory is on the Docker Host, and will be passed to the container with `-v ${SP_USER}:/tsm` * **SP_DATA** is where the TSM Disk based storage pools are stored on the Docker Host, and will be passed to the container with `-v ${SP_DATA}:/data` If data is stored in a cloud pool, then this would be where the acceleration pool is holding data before it gets sent to the cloud. Make sure that this directory is owned by your SP instance user ID that you used in the [DockerFile](/server/#Spectrum-Protect-Post-Installation) when you built the container. -* **SP_IMAGE** is the name of your docker image (if you followed the instructions on this site it is `ibm/spectrumprotect:8.1.8` +* **SP_IMAGE** is the name of your docker image (if you followed the instructions on this site it is `ibm/spectrumprotect:8.1.9` ## First Run Init #1 @@ -82,6 +82,6 @@ ANR1912I Stopping the activity log because of a server shutdown. ANR0369I Stopping the database manager because of a server shutdown. ``` -**NOTE**: With 8.1.8 I noticed a lot of `DBI1306N` messages floating up the screen. That doesn't appear to be an actual problem. +**NOTE**: With 8.1.9 I noticed a lot of `DBI1306N` messages floating up the screen. That doesn't appear to be an actual problem. The "init" steps will only need to be run the once for any "new" instance of SP. Thereafter, you'll start SP using the Normal steps documented [here](normalrun.html). diff --git a/source/server/index.md b/source/server/index.md index 63f6432..cafe736 100644 --- a/source/server/index.md +++ b/source/server/index.md @@ -11,9 +11,9 @@ related: - { page: "runoc", title: "Running OC in a container" } - { page: "/client/index", title: "Admin Client in a container" } --- -# Putting Spectrum Protect into a Container Updated -*Tested with Spectrum Protect 8.1.8!* -Just replace any reference to 8.1.7 with 8.1.8! +# Putting Spectrum Protect into a Container Updated for 8.1.9 +*Tested with Spectrum Protect 8.1.9!* +Just replace any reference to 8.1.7 with 8.1.9! (These instructions as based on Spectrum Protect 8.1.7. References to *SP* means Spectrum Protect.) @@ -50,6 +50,8 @@ RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7. ### Spectrum Protect Installation +Since the source image for Spectrum Protect is quite large, we'll perform the install by "downloading" the source image during the build process (instead of copying it into the image during build). Since it is quite large, it would be a good idea to download it somewhere locally, and be able to serve it via a webserver locally. (Details on how to do that are not covered here.) + Now copy in our silent install configuration files. These files are based on the silent install XML files that come on the installation media. Some details on these files are also in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.7/srv.install/t_srv_inst_silently-linux.html) ```Dockerfile @@ -79,6 +81,7 @@ RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \ ``` > **NOTE**: Some information on what is occurring here. +> * Change *YOUR_SITE_URL_HERE* to a valid web URL (ideally something local). > * This is an "new install" (lines 1-5) then followed by an "upgrade" (lines 6-8). The reason for the new install first, is that the Spectrum Protect license files and license libraries are not available in upgrades (from Fix Central). So you'll need to install from your downloaded media from Passport Advantage, and then upgrade it to the latest release from Fix Central. > If you sourced your installation media from Passport Advantage, then the license files and libraries are probably in that installation media, you can exclude lines 6-8. > * To avoid the resulting Docker Image being too large, we download the installation media from a web server (Line 3) and then delete it after it has been expanded. We also do the same for up upgrade package (line 7). @@ -160,7 +163,7 @@ RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime ## Build your Image -A complete Dockerfile is available [here](http://dev.leenooks.net/deon/spdocker/blob/master/Dockerfile) if you need one as a starting point. Once you have your images loaded on a web server, and the supporting build files run `docker build -t ibm/spectrumprotect:8.1.x .` +A complete Dockerfile is available [here](http://dev.leenooks.net/deon/spdocker/blob/master/Dockerfile) if you need one as a starting point (including supporting config and macro files). Once you have your images loaded on a web server, and the supporting build files run `docker build -t ibm/spectrumprotect:8.1.x` (replacing `x` for the SP version number). If your final build is successful, you should see a Docker Image that is about 3GB. diff --git a/source/server/normalrun.md b/source/server/normalrun.md index 15825b8..2d35563 100644 --- a/source/server/normalrun.md +++ b/source/server/normalrun.md @@ -9,8 +9,7 @@ related: - { page: "upgrade", title: "Upgrading SP" } - { page: "recover", title: "Recovering the SP Database" } --- -# Normal Run of a Spectrum Protect Server (in a container) -*Updated for Spectrum Protect 8.1.8!* +# Normal Run of a Spectrum Protect Server (in a container) Updated for 8.1.9 > **NOTES**: > * The storage used in the example below is from the host file systems, passed to the container with Docker's `-v` option. @@ -24,20 +23,20 @@ Our configuration will use these defaults SP_DB=/srv/sp/database SP_USER=/srv/sp/user SP_DATA=/srv/sp/data -SP_IMAGE=ibm/spectrumprotect:8.1.8 +SP_IMAGE=ibm/spectrumprotect:8.1.9 ``` * **SP_DB** is where the TSM Database will be stored on the Docker Host, and will be passed to the container with `-v ${SP_DB}:/database` * **SP_USER** is where the TSM Instance user's home directory is on the Docker Host, and will be passed to the container with `-v ${SP_USER}:/tsm` * **SP_DATA** is where the TSM Disk based storage pools are stored on the Docker Host, and will be passed to the container with `-v ${SP_DATA}:/data` If data is stored in a cloud pool, then this would be where the acceleration pool is holding data before it gets sent to the cloud. Make sure that this directory is owned by your SP instance user ID that you used in the [DockerFile](/server/#Spectrum-Protect-Post-Installation) when you built the container. -* **SP_IMAGE** is the name of your docker image (if you followed the instructions on this site it is `ibm/spectrumprotect:8.1.8` +* **SP_IMAGE** is the name of your docker image (if you followed the instructions on this site it is `ibm/spectrumprotect:8.1.9` # Normal Run Starting SP for normal operations. -`docker run --detach=true --hostname=tsm --interactive=false -v ${SP_USER}:/tsm -v ${SP_DB}:/database -v ${SP_DATA}:/data --memory=16g -p 1500:1500 -p 1543:1543 --privileged=true --rm=false --restart=no --tty=false --stop-timeout=300 --name=spectrumprotect ${SP_IMAGE}` +`docker run --detach=true --hostname=tsm --interactive=false -v ${SP_USER}:/tsm -v ${SP_DB}:/database -v ${SP_DATA}:/data --memory=16g --ipc=host -p 1500:1500 -p 1543:1543 --privileged=true --rm=false --restart=no --tty=false --stop-timeout=300 --name=spectrumprotect ${SP_IMAGE}` ```tsm Expected Startup, viewable by doing docker log -f spectrumprotect ANR7800I DSMSERV generated at 00:18:30 on Feb 5 2019. @@ -67,6 +66,14 @@ You should now be able to connect with the Admin Client. > * You should be able to run many SP instances on the same host (or swarm) even at different version levels. In container, they can all respond to port 1500, and outside the container, they'll need to have unique ports EG: `-p 1501:1500`, `-p 1502:1500`, etc. (Just remember to think about resource requirements and potential resource contention.) > * Use the same `--hostname=` setting that you used when running the *init* steps above. DB2 is sensitive to hostname changes. > * Spectrum Scale makes a great persistent storage file system for Docker containers, and gives you great options for Spectrum Protect. For example, you could move SP to different hosts very easily (stop on hosta, start on hostb - if both hosts see the same Spectrum Scale file system and your database/data are on it). +> * Starting with 8.1.8 - Spectrum Protect needs some kernel tuning with regards to semaphores, etc. So, I use `--ipc=host` so that the container uses the hosts semaphore configuration, and I use the following configuration: +> ```kernel.msgmax = 65536 +kernel.msgmnb = 65536 +kernel.msgmni = 131072 +kernel.sem = 250 1024000 32 4096 +kernel.shmall = 18446744073692774399 +kernel.shmmax = 18446744073692774399 +kernel.shmmni = 32768``` # Shutting down Spectrum Protect diff --git a/source/server/registry.md b/source/server/registry.md index 48c5b8e..6321c60 100644 --- a/source/server/registry.md +++ b/source/server/registry.md @@ -6,12 +6,12 @@ related: - { page: "firstrun", title: "Initial Container Setup" } - { page: "normalrun", title: "Normal Run of Container" } --- -# Spectrum Protect Server Updated to 8.1.8 +# Spectrum Protect Server Updated for 8.1.9 ```Dockerfile Server Dockerfile # NAME deon/spdocker/server -# VERSION 8.1.8 -# BUILD docker build -t="deon/spdocker/server:8.1.8" . +# VERSION 8.1.9 +# BUILD docker build -t="deon/spdocker/server:8.1.9" . # Since SP is supported on RHEL and its not available in docker, we'll use CentOS. FROM centos:7 @@ -22,10 +22,10 @@ RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7. # Installation COPY install.xml install-fp.xml /tmp/ -# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.8.000/x86_64/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow). +# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.9.000/x86_64/8.1.9.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow). RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \ mkdir -p /tmp/build && cd /tmp/build && \ - curl -SL ${SOURCE_URL}/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ + curl -SL ${SOURCE_URL}/8.1.9.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ ./install.sh -s -input /tmp/install-fp.xml -acceptLicense && \ rm -rf /tmp/build /tmp/install*xml @@ -66,7 +66,7 @@ RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime > **NOTES**: > * I use the install-fp.xml which doesnt install the license libraries - since they are not available in the public download. -> * You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/server:8.1.8` to get it - feel free to try it. +> * You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/server:8.1.9` to get it - feel free to try it. > * The supporting files are in my [gitlab](http://dev.leenooks.net/deon/spdocker/tree/master) > * *And Importantly* Dont forget that the first time you use this image, you need to initialise SP - details are [here](firstrun.html) @@ -74,8 +74,8 @@ RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime ```Dockerfile Operations Center Dockerfile # NAME deon/spdocker/oc -# VERSION 8.1.8 -# BUILD docker build -t="deon/spdocker/oc:8.1.8" . +# VERSION 8.1.9 +# BUILD docker build -t="deon/spdocker/oc:8.1.9" . # Since SP is supported on RHEL and its not available in docker, we'll use CentOS. FROM centos:7 @@ -86,10 +86,10 @@ RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7. COPY install-oc.xml /tmp/ # Installation -# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.8.000/x86_64/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow). +# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.9.000/x86_64/8.1.9.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow). RUN SOURCE_URL=http://SOURCE_URL && \ mkdir -p /tmp/build && cd /tmp/build && \ - curl -SL ${SOURCE_URL}/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ + curl -SL ${SOURCE_URL}/8.1.9.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ ./install.sh -s -input /tmp/install-oc.xml -acceptLicense && \ rm -rf /tmp/build /tmp/install*xml @@ -105,5 +105,5 @@ RUN sed -i 's#^installPath=#installPath=/opt/tivoli/tsm/ui#' /opt/tivoli/tsm/ui/ ``` > **NOTES**: -> * You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/oc:8.1.8` to get it - feel free to try it. +> * You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/oc:8.1.9` to get it - feel free to try it. > * The supporting files are in my [gitlab](http://dev.leenooks.net/deon/spdocker/tree/oc)