010-68421378
sales@cogitosoft.com
当前您所在的位置:首页>新闻中心>行业动态

在Azure上使用MapR持久应用程序客户端容器部署MSSQL

发布时间:2018/03/16 浏览量:4331
在Azure上使用MapR持久应用程序客户端容器部署MSSQL 介绍 MapR持久应用程序客户端容器(PACCs) 通过为容器提供从任何地方持久的...

Azure上使用MapR持久应用程序客户端容器部署MSSQL

https://mapr.com/blog/deploying-mssql-with-mapr-persistent-application-client-containers-on-azure/assets/microsoft-azure-logo.png

介绍

MapR持久应用程序客户端容器 (PACCs) 通过为容器提供从任何地方持久的数据访问来支持现有和新的应用程序的集装箱化。为了连接到MapR服务,特地建造了PACCs。它们在容器级别提供安全的身份验证和连接,为应用程序层提供可扩展的支持,并且可以在Docker Hub中进行定制和发布。

适用于Linux的Microsoft SQL Server 2017提供了在Linux环境中运行MSSQL的灵活性。像所有RDBM一样,它也需要一个强大的存储平台来坚持数据库的安全管理和保护。

通过将MSSQL与MapR PACC集成,客户可以将MSSQL,MapR和Docker的所有优点结合在一起。在这里,MSSQL提供强大的RDBM服务,将数据保存到MapR中,用于灾难恢复和数据保护,同时利用Docker技术实现可扩展性和敏捷性。下图显示了我们演示的架构:Azure Cloud

前提

一个MapR Cluster
在部署容器之前,您需要一个MapR Cluster来保存数据。有多种方式可以部署MapR Cluster。您可以使用沙箱,也可以使用MapR安装程序进行本地或云部署。在Azure上部署MapR的最简单方法是通过MapR Azure Marketplace。一旦你注册了Azure,购买一个拥有足够配额的订阅,比如CPU核心和存储,然后填写一个表单来回答关于基础设施和MapR的一些基本问题,然后点击一个按钮就离开你。完全部署的MapR集群应该在20分钟内触手可及。

Docker CE / EE运行的VM

其次,您需要在MapR集群所在的同一个VNet或子网中启动一个虚拟机。 Docker CE / EE是必需的。. Docker支持多种操作系统平台。 我们使用CentOS进行演示。

部署MSSQL容器

一旦你运行MapR Cluster和虚拟机,你可以启动你的容器部署。

第一步 -建立一个Docker镜像

以root身份登录到您的VM并运行以下命令:

curl -L https://raw.githubusercontent.com/jsunmapr/pacc-mssql/master/build | bash

几分钟后,你会看到类似的消息,表明构建成功了:

Successful Build

执行以下命令以验证映像(mapr-azure / pacc-mssql:latest)确实存储在本地Docker存储库中:

Verify the Image

第二步MSSQL创建一个卷

在启动容器之前,您需要在MapR集群上创建一个卷来保存数据库。以“mapr”用户的身份登录MapR,运行以下命令创建一个卷,例如安装在文件系统的path / vol1上的vol1:

maprcli volume create –path /vol1 –name vol1

您可以通过执行以下命令获取群集名称:

maprcli dashboard info -json | grep name

第三步启动容器

运行以下命令以使用上面步骤1中创建的映像启动容器:

# docker run --rm --name pacc-mssql -it \
--cap-add SYS_ADMIN \
--cap-add SYS_RESOURCE \
--device /dev/fuse \
--security-opt apparmor:unconfined \
--memory 0 \
--network=bridge \
-e ACCEPT_EULA=Y \
-e SA_PASSWORD=m@prr0cks \
-e MAPR_CLUSTER=mapr522 \
-e MSSQL_BASE_DIR=/mapr/mapr522/vol1 \
-e MAPR_CLDB_HOSTS=172.31.35.153 \
-e MAPR_MOUNT_PATH=/mapr \
-e MAPR_TZ=Etc/UTC \
-e MAPR_CONTAINER_USER=root \
-e MAPR_CONTAINER_UID=0 \
-e MAPR_CONTAINER_GROUP=root \
-e MAPR_CONTAINER_GID=0 \
-p 1433:1433 \
mapr-azure/pacc-mssql:latest

请注意,您可以在第一行中将-it替换为-d,以使启动进程在后台运行。

您可以自定义以上红色的环境变量以适应您的环境。变量SA_PASSWORD是MSSQL管理员用户。 MAPR_CLUSTER是集群名称。 MSSQL_BASE_DIR是MSSQL将保存其数据的MapR-XD的路径。路径通常采用/mapr/名称>/名称>.的形式。 MAPR_CLDB_HOSTS是MapR集群中的cldb主机的IP地址。在我们的案例中,我们只有一个节点Cluster,所以只有一个IP被使用。最后,默认的MSSQL端口是1433。您可以使用Docker中的-poption将其公开到VM主机上您选择的端口。 我们在演示中选择了相同的端口1433。

还有其他环境变量可以传递给MapR PACC。

几分钟后,您应该看到如下所示的消息,表示MSSQL服务器已准备就绪:


2017-11-16 22:54:30.49 spid19s SQL Server is now ready for client connections. This is an informational message; no user action is required.

第四步MSSQL中创建一个表并插入一些数据

现在您已准备好将一些示例数据插入到测试MSSQL数据库中。为此,通过发出以下命令找到正在运行的MSSQL容器的容器ID:

Find the container ID

然后使用docker exec命令登录到容器:

Login to the container

然后发出下面的命令,通过在启动容器时提供管理密码进入MSSQL提示符,如上面的步骤3所示:

Provide Admin Password

发出以下SQL语句来填充测试数据库中的清单表,然后查询该表:

Populate an Inventory Table

成功! 这意味着数据库已被保存到MapR卷中,现在由MapR-XD存储进行管理和保护。您可以通过在容器中发出此命令来验证,MSSQL日志和数据目录在vol1中显示:

Verify Database

第五步销毁当前容器并重新启动新容器并访问现有表

现在让我们销毁当前容器,通过发出以下命令来模拟服务器中断:

# docker rm –f c2e69e75b181

重复上述步骤3启动一个新的容器。 登录到容器并在新容器启动并运行时立即查询相同的清单表:

Query Inventory Table

松了口气,你看到以前输入的数据仍然存在,这要归功于MapR!

第六步把它扩大到超越

凭借集装箱技术的专业知识,一次旋转多个集装箱非常容易。只需重复步骤2和3,在MapR中为每个MSSQL容器分配一个新卷,然后关闭。

总结

在这个博客中,我们演示了如何使用MapR PACC对MSSQL进行容器化,并将其数据库保存到MapR中以进行数据保护和灾难恢复。对于许多其他需要可扩展且强大的存储层的应用程序来说,MapR PACC是一种很好的方式,可以管理和分发其数据以实现灾难恢复和可伸缩性。 MapR PACC还可以通过像Kubernetes,Mesos或Docker这样的协调器进行管理,以实现真正的可扩展性和高可用性。

 

 

下一篇:Nagios使用Sourceforge进行动态监测
上一篇:MapR和思科合作:数据密集型流媒体工作负载的性能

                               

 京ICP备09015132号-996网络文化经营许可证京网文[2017]4225-497号 | 违法和不良信息举报电话:4006561155

                                   © Copyright 2000-2023 北京哲想软件有限公司版权所有 | 地址:北京市海淀区西三环北路50号豪柏大厦C2座11层1105室

                         北京哲想软件集团旗下网站:哲想软件 | 哲想动画

                            华滋生物