专栏名称: 分布式实验室
最专业的Docker文章,最权威的Docker新闻。关注容器生态圈的发展。
目录
相关文章推荐
51好读  ›  专栏  ›  分布式实验室

挂载点:三种Jelastic容器的数据分享

分布式实验室  · 公众号  · 后端  · 2016-09-18 07:46

正文


在之前的文章中,我们开始挖掘数据存储容器的关键潜能,分享了五种用容器存储数据的方式,之后又进一步深入,谈到了Jelastic专用贮存容器。

以下我们将描述如何简捷地使用容器挂载数据。

挂载点本来是用于管理服务器数据存储容器链接的。在内置的配置管理器的同名部分,你可以定义当前容器可以获取到的其他远程节点的目录。

存储数据时,可以使用你的账户中或者外部NFS服务器中的任意容器。如果选择Jelastic容器 ,所有必要的配置(如安装NFS的相关软件、为指定文件设置输出参数)都可以自动实现,对人工操作零要求。

注意

  • 挂载点的功能是为Jelastic节点提供的;但如果使用基于Docker的容器操作,还可以使用数据卷来管理挂载,并且本地存储的选项也可用。这样,在容器的生命周期中,即使是存储在同一个容器中的数据也不会受到任何影响。

  • 基于alpine或Ubuntu 14.04版本以下操作系统发行版的Docker容器,由于NFS服务器功能不受支持,只能用作数据存储客户机(如仅可使用远程数据但不能分享自身数据)。

将数据挂载到容器中,点击已选定容器或层的Config按钮,在打开的配置管理器(Configuration Manager)选项卡中,切换到左边菜单的挂载点(Mount Points)部分。


然后在顶部窗格中选择挂载(Mount)按钮,并选择下列类型之一:

  • 主容器

  • 数据容器

  • 外部服务器

提示:除此之外,在导出(Export)选项(左下菜单项),你可以管理文件夹和审查文件的列表,这些文件由当前服务器共享(即其他节点可以访问的数据)。

下面,我们将深入探讨上述操作类型以及他们各自最适合的分享类型。

挂载主容器

主容器(Master Container)挂载适合于分享单层同类节点的内容。主节点(Master Node),也就是最初创建的容器,可以定义同一层中其他节点的数据。

1. 在“添加挂载点”窗体中,可以看到所需的主容器选项默认为开。


这里需要指定:

  • 挂载点:主容器所在文件夹路径,该路径同时被同层的所有节点共享(也被客户机自动识别为远程路径)。

  • 只读:限制在客户端节点对挂载数据的编辑权限(默认提供读写权限)。

剩下的数据可以被自动读取和替换,只要点添加(add)就行了。

请注意,如果同时建立多个相同节点的环境(但没有添加),某层的主容器是被随机选取的。因此,该节点的id未必是最小的,进行手动操作的时候一定要注意这一点。主节点标识可以在上述界面的NFS服务器中看到。

2. 相应的记录会显示在客户端节点的挂载点列表以及主容器的的导出(export)部分。

现在,就可以开始利用链接文件夹作为该层的数据存储——举个例子,在里面创建一个新的文件/目录,然后去其他节点中查看是否可以获取的到。

挂载数据容器

最常见的数据挂载的例子是,客户端和服务器位于同一Jelastic平台内。

提示:如果需要从运行在另外一个Jelastic上的容器挂载数据,必须预先将其设置为外部NFS服务器。

1. 在添加挂载点的窗口中,切换数据容器选项卡,填写需要的字段。


如下参数需被定义:

  • 挂载点:显示挂载内容的本地文件夹路径。

注意:如果指定目录不存在,将会自动创建。同时,路径不能以 /proc, /dev, /sys, /run 开头,也不能与如下名重复/, /bin, /lib, /lib64, /lib32, /usr, /usr/bin,/usr/sbin, /usr/lib or /usr/lib64(这些名字可能与使用者提供的设置相关)

  • NFS服务器:账户中可扩展的节点列表,可以用作数据存储容器。

注意:不能从导出(exported)过的同一节点挂载数据,例如,创建交叉挂载。这条限制也同样适用于多个节点组成闭环的情况。

  • 远程路径: 远程容器上的路径位置(可以手动输入也可以在下拉菜单中选择自动获取的节点位置)。

  • 挂载到所有节点: 设置同层中所有节点添加相同挂载。

  • 只读: 限制在客户端节点对挂载数据的编辑权限(默认提供读写权限)。

点击添加继续。

注意:如果没有选择专用存储容器作为数据容器,由于NFS软件安装要求,可能会出现数分钟的时间延迟。

2. 之后,装载点将被创建并添加到列表中。如有必要,可以导航到目录(双击相应的记录)或者卸载(使用工具窗格中的卸载按钮)。


另外,上述两步都可以通过Additionally列表实现。

3. 在导航内部,可以看到与存储中相同的内容


由于在例子中提到的一些设置(打开mount to all 节点选项和关闭只读选项)挂载内容可以由该层所有容器获取和编辑。可以通过使用左边菜单上的下拉列表进行检查。

考虑到为了编辑(如果客户端有读写权),从存储文件夹挂载的内容应该对统一客户节点上的统一用户拥有相同的权限设置(默认的用户名可能由于服务器不同产生偏差——如root和 Jelastic)。

需要的话,在存储服务器通过SSH连接时执行以下命令可以修正权限:

chown {uid}:{gid} {path}

具体的,

  • {uid}:用户ID,可以在文件 /etc/passwd 中找到

  • {gid}:组标识符,在文件/etc/group 中

  • {path}:想要更改的目录或文件的路径。

     

从外部服务器挂载数据

Jelastic 允许从平台外部挂载数据(如从外部NFS服务器挂载数据——自定义的或者另一个Jelastic 上的容器)。

注意:在挂载之前,自定义的存储实例需要进行特殊调整。

如果已经熟悉了NFS服务器配置,只需要按照下面继续挂载,否则请查看链接。

1. 在“添加挂载点”部分,切换到外部服务器选项卡


指定以下数据

  • 挂载点: 显示挂载内容的本地文件夹路径。

注意:如果指定目录不存在,将会自动创建。同时,路径不能以 /proc, /dev, /sys, /run 开头,也不能与如下名重复/, /bin, /lib, /lib64, /lib32, /usr, /usr/bin,/usr/sbin, /usr/lib or /usr/lib64(这些名字可能与使用者提供的设置相关)。

  • NFS 服务器:数据存储服务器的外部IP或者自定义域名。

  • 远程路径:导出文件所在的NFS服务器。

  • 挂载到所有节点:设置同层中所有节点添加相同挂载。

  • 只读: 限制在客户端节点对挂载数据的编辑权限(默认提供读写权限)。

点击添加确认。

2. 接下来,数据将被挂载,记录会出现在列表中。


现在,就可以使用基于指定权限的导出数据。

继续尝试免费挂载数据——只要选择托管服务商即可( Jelastic4.7以上版本),体验更好的数据管理与控制解决方案。

本文为翻译文章,点击阅读原文链接可查看原文。