首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

IBM dashDB Local 从入门到精通,第 4 部分 dashDB local MPP Linux 安装指南(10)

IBM dashDB Local 从入门到精通,第 4 部分 dashDB local MPP Linux 安装指南(10)

操作系统要求你可以在 Docker 支持的所有 Linux 发行版本环境安装 dashDB Local,下边列出了支持的部分 Linux 发行版本:
  • Arch Linux
  • CentOS
  • CRUX Linux
  • Debian
  • Fedora
  • Gentoo
  • Oracle Linux
  • Red Hat Enterprise Linux
  • openSUSE and SUSE Linux Enterprise
  • Ubuntu ,一些限制:
    • 如果使用 Ubuntu 14.04,, Linux kernel 版本必须至少是 3.16 或更高。
    • Docker 容器不能使用 AUFS 做为存储驱动器。我们需要使用 Docker 支持的其他存储驱动器。从性能角度考虑,建议采用 Device Mapper                  storage driver (devicemapper)并采用 direct-lvm storage pool 配置。
针对一些 Linux 发行版本,部署 dashDB Local 之前,需要关闭并禁用一些安全特性:
  • SELinux (RHEL or CentOS)
  • AppArmor (Ubuntu)
  • Firewalld (CentOS)
本指南,我们主要基于 CentOS 7.2 操作系统为例讲述 dashDB local 安装方法,其他 Linux 版本,可能部分操作系统命令有些不同。
  • Docker 需要 64                位操作系统,Linux kernel 版本                3.10 或更高。
我们可以使用下述命令检查系统当前 Linux kernel 版本:
1
2
3
[root@i-8t7n6xp2 ~]# uname -r<br>
3.10.0-327.28.3.el7.x86_64<br>
[root@i-8t7n6xp2 ~]#




  • Redhat 使用了 SELinux                来增强安全,我们可以使用下述命令关闭该功能
1. 永久有效
修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。
1
2
3
4
5
6
7
8
9
10
11
# This file controls the state of SELinux on the system.<br>
# SELINUX= can take one of these three values:<br>
# enforcing - SELinux security policy is enforced.<br>
# permissive - SELinux prints warnings instead of enforcing.<br>
# disabled - No SELinux policy is loaded.<br>
SELINUX=disable<br>
# SELINUXTYPE= can take one of three two values:<br>
# targeted - Targeted processes are protected,<br>
# minimum - Modification of targeted policy.Only selected processes are protected.<br>
# mls - Multi Level Security protection.<br>
SELINUXTYPE=disabled




2. 即时生效
1
[root@i-8t7n6xp2 ~]# setenforce 0




  • 我们使用下述方法关闭防火墙:
1
2
3
4
5
6
7
8
9
[root@i-8t7n6xp2 ~]# <strong>systemctl stop firewalld.service</strong><br>
[root@i-8t7n6xp2 ~]# <strong>systemctl disable firewalld.service</strong><br>
[root@i-8t7n6xp2~]# <strong>systemctl status firewalld.service</strong><br>
firewalld.service - firewalld - dynamic firewall daemon<br>
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)<br>
Active:inactive (dead)<br>
Oct 06 05:00:34 dashdb systemd[1]: Stopped firewalld - dynamic firewall daemon.<br>
Hint: Some lines were ellipsized, use -l to show in full.<br>
[root@i-8t7n6xp2~]#




Docker 要求必须安装 Docker Engine 1.12.6,同时要使用 Device Mapper storage driver            (devicemapper),不要使用其他存储驱动器。
在生产环境,需要配置 direct-lvm mode,具体配置方法,可以参考Configure direct-lvm mode for production
IBM 负责 dashDB Local Docker container 产品支持,用户需要负责 Docker Engine 部分支持。
配置并访问共享存储设备本次示例,我们通过青云的 SDS(软件定义存储)技术,搭建了基于 iSCSI 协议的 Virtual SAN 服务,并分配了 200GB 存储空间。Virtual SAN            服务的 IP 地址为 192.168.1.2。
配置 iSCSI 客户端
在 CentOS 7.2 环境,我们通过如下命令配置 iSCSI 客户端来访问 Virtual SAN:
  • 安装客户端软件
1
yum install -y iscsi-initiator-utils




  • 配置 initiator name
可以用 iscsi-iname 命令生成一个 initiator name,并编辑/etc/iscsi/initiatorname.iscsi,加入            InitiatorName:
1
2
3
iscsi-iname (以缺省前缀生成名称)<br>
[root@i-8t7n6xp2 ~]# vi /etc/iscsi/initiatorname.iscsi<br>
InitiatorName=iqn.1994-05.com.redhat:5ccad0ae5bb3




  • 发现目标
默认情况下,iSCSI 发起方和目标方之间通过端口 3260 连接。
1
2
3
4
[root@i-8t7n6xp2 ~]# iscsiadm -m discovery -t st -p 192.168.1.2<br>
192.168.1.2:3260,1 iqn.2014-12.com.qingcloud.s2:sn.data<br>
[root@i-8t7n6xp2 ~]# iscsiadm -m node<br>
192.168.1.2:3260,1 iqn.2014-12.com.qingcloud.s2:sn.data




iSCSI 发起方和目标方建立连接以后,可以进行登录节点操作。
  • 登录到目标
1
2
3
4
5
[root@i-8t7n6xp2 ~]# iscsiadm -m node -T iqn.2014-12.com.qingcloud.s2:sn.data-p 192.168.1.2 –login<br>
Logging in to [iface: default, target: iqn.2014-12.com.qingcloud.s2:sn.data, portal:192.168.1.2,3260] (multiple)<br>
Login to [iface: default, target:iqn.2014-12.com.qingcloud.s2:sn.data, portal: 192.168.1.2,3260] successful.<br>
[root@i-8t7n6xp2 ~]# iscsiadm -m session<br>
tcp: [1] 192.168.1.2:3260,1 iqn.2014-12.com.qingcloud.s2:sn.data (non-flash)




如果你想在客户端重启时自动登录,请执行下面的命令:
1
[root@i-8t7n6xp2 ~]# iscsiadm -m node -T iqn.2014-12.com.qingcloud.s2:sn.data -p 192.168.1.2 --op update -n node.startup -v automatic




  • 查看共享磁盘信息
1
2
3
4
5
[root@i-8t7n6xp2 ~]# lsblk<br> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT<br>
sda 8:0 0 20G 0 disk<br>
sda1 8:1 0 20G 0 part /<br>
sdb 8:16 0 8G 0 disk [SWAP]<br>
sdc 8:32 0 200G 0 disk




从上边显示我们看到,我们分配了/dev/sdc 设备共 200GB 的共享磁盘空间。
安装 IBM Spectrum Scale (GPFS) for IBM dashDB LocaldashDB Local MPP 需要部署 POSIX 兼容的集群文件系统,本次示例,我们安装 IBM Spectrum Scale (GPFS) 4.1.1.11。
  • 配置/etc/hosts(每台机器)
1
2
3
4
5
[root@i-si5oq07a ~]# more /etc/hosts<br>
127.0.0.1 localhost.localdomain localhost<br>
192.168.0.2 i-8t7n6xp2 i-8t7n6xp2<br>
192.168.0.3 i-oisebqqf i-oisebqqf<br>
192.168.0.4 i-si5oq07a i-si5oq07a<br>




  • 配置 root 用户 passwordless SSH
1. 配置/etc/ssh/sshd_config 文件(每台机器)
1
2
3
4
5
6
7
8
9
vi /etc/ssh/sshd_config<br>
PermitRootLogin yes<br>
StrictModes no<br>
RSAAuthentication yes<br>
PubkeyAuthentication yes<br>
AuthorizedKeysFile .ssh/authorized_keys<br>
# To disable tunneled clear text passwords, change to no here!<br>
PasswordAuthentication yes(否则 SCP 没权限执行,因为限制了不能用密码)<br>
重启 sshd 服务:systemctl restart sshd.service




2. 配置每个节点本身公钥和免密(每台机器)
1
2
[root@i-8t7n6xp2 ~]# ssh-keygen -t rsa<br>
[root@i-8t7n6xp2 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys




现在每台节点本身实现免密
3. 将除 i-8t7n6xp2 之外所有节点的公钥复制到 i-8t7n6xp2,这里是将 i-oisebqqf,i-si5oq07a 的公钥拷贝到 i-8t7n6xp2 的            authorized_keys,目的是实现 i-oisebqqf,i-si5oq07a 登录 i-8t7n6xp2 实现免密,而反过来不行。
1
2
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.0.2 # 在 i-oisebqqf 上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.0.2 # 在 i-si5oq07a 上执行




4. 实现最终集群所有节点互相免密
 现在 i-8t7n6xp2 保存了所有节点的公钥,那么这个时候应该发送 i-8t7n6xp2 上的 authorized_keys 到其他节点
1
2
scp ~/.ssh/authorized_keys 192.168.0.3:~/.ssh/# 在 i-8t7n6xp2 上执行
scp ~/.ssh/authorized_keys 192.168.0.4:~/.ssh/# 在 i-8t7n6xp2 上执行




至此集群 3 台主机任意节点之间免密完成
5. 测试集群 3 台主机任意节点之间可以免密访问
1
2
3
4
5
6
7
8
#!/bin/bash<br>
# Edit node list<br> nodes=" i-8t7n6xp2 i-oisebqqf i-si5oq07a"<br>
# Test ssh configuration<br>
for i in $nodes<br>
do for j in $nodes<br> do echo -n "Testing ${i} to ${j}: "<br>
ssh ${i} "ssh ${j} date"<br>
done<br>
done<br>




  • 安装 GPFS rpm(每台机器)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<strong>cd /root/download</strong><br><strong>tar xvfz gpfs-4.1.tar.gz</strong><br><strong>tar xvfz gpfs-4.1.1.11.tar.gz</strong><br>
echo========================================================<br>
echo Install GPFS GA RPMs<br>
echo ========================================================<br>
[root@i-si5oq07a products]#<strong>yum install -y libaio</strong><br>
[root@i-si5oq07a products]# <strong>yum install -yksh</strong><br>
[root@i-si5oq07a products]# <strong>yum install -y kernel-devel</strong><br>
[root@i-si5oq07a products]# <strong>rpm -qa|grep kernel-devel</strong><br>
kernel-devel-3.10.0-514.6.1.el7.x86_64<br> [root@i-si5oq07a products]# <strong>uname-r</strong><br>
3.10.0-514.6.1.el7.x86_64(版本号一定要一致,不一致 reboot 即可)<br>
[root@i-si5oq07a src]#<strong>yum install </strong><strong>-y</strong><strong> imake gcc-c++</strong><br>
[root@i-si5oq07a products]# <strong>rpm -ivh 4.1/*.rpm</strong><br>
[root@i-si5oq07a products]# <strong>rpm -Uvh 4.1.1.11/*.rpm</strong><br>
[root@i-si5oq07a products]# <strong>rpm-qa|grep gpfs</strong><br>
gpfs.base-4.1.1-11.x86_64<br> gpfs.gskit-8.0.50-47.x86_64<br>
gpfs.ext-4.1.1-11.x86_64<br> gpfs.gpl-4.1.1-11.noarch<br>
gpfs.msg.en_US-4.1.1-11.noarch

返回列表