注意

本文档适用于 Ceph 开发版本。

使用SMB协议的文件系统共享

可以使用SMB协议向客户端提供CephFS访问通过Samba套件samba-container镜像 - 由Ceph管理Samba suitesamba-containerimages - 由Ceph管理

The smbmanager模块为部署和控制Samba服务集群以及管理SMB共享提供接口。在manager模块中,集群是一个逻辑管理单元,它可以映射到一个或多个管理的Samba服务 - 单独一个集群可能使用也可能不使用任何高可用性机制。smb manager module a cluster is a logical management unit that may map to one or more managed Samba service - by itself a cluster may or may not be using any high-availability mechanisms.

如果您的集群尚未启用该模块,可以通过运行以下命令来启用它ceph mgr module enable smb.

与模块交互有两种方式。imperative方法使用命令,对于在命令行上使用Ceph的manager模块的用户来说应该非常熟悉。声明式方法使用命令来处理在YAML或JSON中指定的“资源描述”。这种方法应该熟悉使用cephadm进行Ceph编排的用户,只是使用特定的SMB资源类型。smb module. The imperative method uses commands like ceph smb cluster create ...ceph smb share rm ... and should be very familiar to those who have used Ceph’s nfs manager module on the command line. The declarative method uses the command ceph smb apply to process “resource descriptions” specified in YAML or JSON. This method should be familiar to those who have used Ceph orchestration with cephadm, just using SMB specific resource types.

Note

Ceph管理的Samba仅支持协议的SMB2和SMB3版本。协议的SMB1版本,有时称为CIFS,不受支持。某些系统,如Linux内核,在CIFS名称下提供SMB1和SMB2+的工具。检查所使用软件包的文档,以确保它们支持SMB2+,无论工具如何命名。

Note

目前,该模块需要cephadm编排。如果没有编排,它将无法工作。smb module requires cephadm orchestration. It does not function without orchestration.

管理命令 - 命令式风格

集群命令

创建集群

$ ceph smb cluster create <cluster_id> {user|active-directory} [--domain-realm=<domain_realm>] [--domain-join-user-pass=<domain_join_user_pass>] [--define-user-pass=<define_user_pass>] [--custom-dns=<custom_dns>] [--placement=<placement>] [--clustering=<clustering>] [--password-filter=<password_filter>] [--password-filter-out=<password_filter_out>]

创建一个新的逻辑集群,由集群ID值标识。集群创建命令必须指定集群将使用的认证模式。这可能要么是以下之一:

  • 自定义用户和组,也称为独立服务器,使用关键字user keyword

  • An Active Directory (AD) 域成员服务器,使用关键字active-directory keyword

选项:

cluster_id

一个短字符串,唯一标识集群

auth_mode

一个useractive-directory

domain_realm

识别AD域的域/Realm值。选择时需要active-directory

domain_join_user_pass

一个字符串,形式为<username>%<password>将用于将Samba服务器加入AD域。

define_user_pass

一个字符串,形式为<username>%<password>将用于userauth_mode.中的认证。

custom_dns

可选。可以多次指定。一个或多个IP地址将应用于Samba容器,以覆盖默认的DNS解析器。当主机Ceph节点未配置为解析AD域中的DNS条目时,此选项用于这种情况。

placement

一个Ceph编排位置指定符

clustering

可选。控制集群抽象是否实际使用Samba的集群机制。值可以是default, alwaysnever。一个default值表示如果位置计数值不是1,则应启用集群。一个值always无论位置计数如何,都会启用集群。一个值never无论位置计数如何,都会禁用集群。如果未指定,则假定default

public_addrs

可选。形式为<ipaddress/prefixlength>[%<目标接口>]的字符串。仅在使用Samba集群时支持。分配由集群子系统管理的“虚拟”IP地址,这些地址可能会自动在运行Samba容器的节点之间移动。

password_filter

一个nonebase64。如果过滤器是none,则假定命令行上的密码值是明文。如果过滤器是base64,则假定密码值是用base64编码的字符串。如果--password-filter-out未指定,此过滤器也将应用于输出。

password_filter_out

一个none, base64hidden。如果过滤器是none,则输出中的密码字段将作为明文发出。如果过滤器是base64,则密码字段将被base64编码的字符串遮蔽。如果过滤器是hidden,则密码值将被一个仅包含星号的有效通用替换字符串替换。

删除集群

$ ceph smb cluster rm <cluster_id> [--password-filter=<password_filter>]

从Ceph集群中删除一个逻辑SMB集群。

选项:

cluster_id

A cluster_id识别集群资源的值。

password_filter

一个none, base64hidden。如果过滤器是none,则输出中的密码字段将作为明文发出。如果过滤器是base64,则密码字段将被base64编码的字符串遮蔽。如果过滤器是hidden,则密码值将被一个仅包含星号的有效通用替换字符串替换。

列出集群

$ ceph smb cluster ls [--format=<format>]

打印集群ID列表。输出默认为JSON,使用--format=yaml option.

Share Commands

创建共享

$ ceph smb share create <cluster_id> <share_id> <cephfs_volume> <path> [--share-name=<share_name>] [--subvolume=<subvolume>] [--readonly]

创建一个新的SMB共享,由命名的集群托管,映射到给定的CephFS卷和路径。

选项:

cluster_id

一个短字符串,唯一标识集群

share_id

一个短字符串,唯一标识共享

cephfs_volume

要共享的cephfs卷的名称

path

相对于卷根或子卷的路径

share_name

可选。共享的公共名称,对客户端可见。如果未提供,将自动使用share_id

subvolume

可选。形式为[<subvolumegroup>/]<subvolume>的子卷名称。此选项导致路径相对于指定的CephFS子卷。

readonly

创建只读共享

删除共享

$ ceph smb share rm <cluster_id> <share_id>

从集群中删除一个SMB共享。

列出共享

$ ceph smb share ls <cluster_id> [--format=<format>]

打印共享ID列表。输出默认为JSON,使用--format=yaml option.

管理命令 - 声明式风格

除了基本的imperative管理命令外,manager模块还支持使用声明式资源规范进行配置。资源规范可以写成JSON或YAML。这些资源规范可以使用smb manager module supports configuration using declarative resource specifications. Resource specifications can be written in either JSON or YAML. These resource specifications can be applied to the cluster using the ceph smb apply命令应用于集群,例如:

$ ceph smb apply -i /path/to/resources.yaml

除了资源规范外,apply子命令还接受控制命令输入和输出行为的选项:

$ ceph smb apply [--format=<format>] [--password-filter=<password_filter>] [--password-filter-out=<password_filter_out>] -i <input>

选项:

format

一个json(默认)或yaml。输出格式可以独立于输入格式选择。

password_filter

一个nonebase64。如果过滤器是none,则假定输入中的密码字段是明文。如果过滤器是base64,则假定密码字段是用base64编码的字符串。如果--password-filter-out未指定,此过滤器也将应用于输出。

password_filter_out

一个none, base64hidden。如果过滤器是none,则输出中的密码字段将作为明文发出。如果过滤器是base64,则密码字段将被base64编码的字符串遮蔽。如果过滤器是hidden,则密码值将被一个仅包含星号的有效通用替换字符串替换。

input

一个文件名或-使用stdin。

已经应用于Ceph集群配置的资源可以使用ceph smb show命令查看。例如:

$ ceph smb show ceph.smb.cluster.cluster1

The show命令可以显示所有资源、给定类型的资源或特定资源项。可以提供选项来控制命令的输出。

$ ceph smb show [resource_name...] [--format=<format>] [--results=<results>] [--password-filter=<password_filter>]

选项:

resource_name

一个或多个指定资源或资源类型的字符串。见下文描述。

format

一个json(默认)或yaml.

results

一个collapsed(默认)或full。当设置为collapsed时,如果找到一个项,命令的输出将只显示该单个项的资源JSON/YAML。当设置为full时,即使找到一个项,输出也始终包括一个包装对象,如(伪JSON):{"resources": [...Resource objects...]}.

password_filter

一个none, base64hidden。如果过滤器是none,则输出中的密码字段将作为明文发出。如果过滤器是base64,则密码字段将被base64编码的字符串遮蔽。如果过滤器是hidden,则密码值将被一个仅包含星号的有效通用替换字符串替换。

resource_namearguments可以采取以下形式:

  • ceph.smb.cluster: 显示所有集群资源

  • ceph.smb.cluster.<cluster_id>: 显示具有给定集群ID的特定集群

  • ceph.smb.share: 显示所有共享资源

  • ceph.smb.share.<cluster_id>: 显示给定集群的所有共享资源部分

  • ceph.smb.share.<cluster_id>.<share_id>: 显示具有给定集群和共享ID的特定共享资源

  • ceph.smb.usersgroups: 显示所有用户和组资源

  • ceph.smb.usersgroups.<users_goups_id>: 显示特定用户和组资源

  • ceph.smb.join.auth: 显示所有加入认证资源

  • ceph.smb.join.auth.<auth_id>: 显示特定加入认证资源

例如:

$ ceph smb show ceph.smb.cluster.bob ceph.smb.share.bob

将为集群“bob”显示一个集群资源(如果存在),以及与集群“bob”关联的所有共享资源。

Note

The show子命令以与dd4b4c: 命令接受的相同形式打印资源,使得可以在show和apply之间“往返”值。apply command accepts, making it possible to “round-trip” values between show and apply.

组合资源规范

资源规范由一个或多个以JSON或YAML格式编写的Ceph SMB资源描述组成。如果资源包含在JSON/YAML中,可以指定多个资源列表,或一个包含键resources和相应列表值的JSON/YAML对象,其中包含资源。此外,YAML规范可以由一系列YAML文档组成,每个文档都包含一个资源。

一个基于YAML的简单列表示例如下:

- resource_type: ceph.smb.cluster
  cluster_id: rhumba
  # ... other fields skipped for brevity ...
- resource_type: ceph.smb.cluster
  cluster_id: salsa
  # ... other fields skipped for brevity ...
- resource_type: ceph.smb.share
  cluster_id: salsa
  share_id: foo
  # ... other fields skipped for brevity ...

一个基于JSON的简单列表示例如下:

[
  {"resource_type": "ceph.smb.cluster",
   "cluster_id": "rhumba",
   "...": "... other fields skipped for brevity ..."
  },
  {"resource_type": "ceph.smb.cluster",
   "cluster_id": "salsa",
   "...": "... other fields skipped for brevity ..."
  },
  {"resource_type": "ceph.smb.share",
   "cluster_id": "salsa",
   "share_id": "foo",
   "...": "... other fields skipped for brevity ..."
  }
]

一个基于YAML的资源列表示例如下:

resources:
  - resource_type: ceph.smb.cluster
    cluster_id: rhumba
    # ... other fields skipped for brevity ...
  - resource_type: ceph.smb.cluster
    cluster_id: salsa
    # ... other fields skipped for brevity ...
  - resource_type: ceph.smb.share
    cluster_id: salsa
    share_id: foo
    # ... other fields skipped for brevity ...

一个基于JSON的resoure列表示例如下:

{
  "resources": [
    {"resource_type": "ceph.smb.cluster",
     "cluster_id": "rhumba",
     "...": "... other fields skipped for brevity ..."
    },
    {"resource_type": "ceph.smb.cluster",
     "cluster_id": "salsa",
     "...": "... other fields skipped for brevity ..."
    },
    {"resource_type": "ceph.smb.share",
     "cluster_id": "salsa",
     "share_id": "foo",
     "...": "... other fields skipped for brevity ..."
    }
  ]
}

一个由多个文档组成的YAML资源列表示例如下:

---
resource_type: ceph.smb.cluster
cluster_id: rhumba
# ... other fields skipped for brevity ...
---
resource_type: ceph.smb.cluster
cluster_id: salsa
# ... other fields skipped for brevity ...
---
resource_type: ceph.smb.share
cluster_id: salsa
share_id: foo
# ... other fields skipped for brevity ...

每个单独的资源描述必须属于下面描述的类型之一。

Note

为简洁起见,所有以下示例都将仅使用YAML。假设等效的JSON形式是有效的。

集群资源

集群资源支持以下字段:

resource_type

一个文字字符串ceph.smb.cluster

cluster_id

一个短字符串,标识集群

auth_mode

一个useractive-directory

intent

一个presentremoved。如果未提供,present被假定。如果removed所有以下字段都是可选的

domain_settings

对象。对于userauth忽略/可选,对于active-directory必须提供。字段:

必要的字符串。AD域/Realm名称。

join_sources

必要的列表。每个元素都是一个对象,具有join source字段

user_group_settings

列表。对于active-directory忽略/可选。每个元素都是一个对象,具有user group source字段

custom_dns

可选。IP地址列表。IP地址将作为Samba容器中的DNS解析器使用,即使Ceph主机也不

placement

可选。一个Ceph编排位置指定符。如果未提供,则默认为单个主机。

clustering

可选。控制集群抽象是否实际使用Samba的集群机制。值可以是default, alwaysnever。一个default值表示如果位置计数值不是1,则应启用集群。一个值always无论位置计数如何,都会启用集群。一个值never无论位置计数如何,都会禁用集群。如果未指定,则假定default

public_addrs

对象列表;可选。仅在使用Samba集群时支持。分配“虚拟”IP地址,这些地址将由集群子系统管理,并且可以自动在运行Samba容器的节点之间移动。

address

必须的字符串。一个IP地址,具有必需的前缀长度(示例:734af8:)。此地址将分配给主机的一个网络设备,并自动管理。192.168.4.51/24). This address will be assigned to one of the host’s network devices and managed automatically.

destination

可选。字符串或字符串列表。一个destination定义系统将管理IP地址的位置。每个字符串值必须是一个网络地址(示例192.168.4.0/24)。可以提供一个或多个目标。典型情况是使用恰好一个目标,因此值可以作为字符串提供,而不是作为具有单个元素的列表。每个目标网络将映射到主机上的一个设备。运行cephadm list-networks以了解这些映射的示例。

custom_smb_global_options

可选映射。指定将直接添加到Samba服务全局smb.conf选项(或等效)的键值对。除非您准备自行调试Samba实例,否则请不要使用此选项。firefly 发布。Firefly 将延迟至少另一个冲刺,以便我们可以对新代码进行一些操作经验,并进行一些额外的测试,然后再承诺长期支持。 use this option unless you are prepared to debug the Samba instances yourself.

此选项供开发人员、功能调查员和其他高级用户使用,以便在不修改Ceph代码库的情况下对共享的选项进行更直接的控制。此映射中的条目应与smb.conf和其值中的参数匹配。必须在此映射中的某个位置出现一个特殊键_allow_customization,其值为i-take-responsibility-for-all-samba-configuration-errors作为用户了解使用此选项可能会以Ceph团队无法帮助的方式轻易破坏事情的指示。此特殊键将自动从传递给Samba的选项列表中删除。

警告

设置clusteringoption允许管理员选择何时使用Samba的CTDB集群。默认情况下,Samba集群的使用来自placement计数。如果您选择设置clustering,请确保您了解集群如何与放置交互。特别是,要注意在未启用集群的情况下运行同一smb服务多个实例可能会导致意外行为。

一个加入认证对象支持以下字段:

source_type

可选。如果指定,则必须为resource

ref

字符串。对于source_type: resource必须引用一个ceph.smb.join.auth资源的ID

一个用户组源对象支持以下字段:

source_type

可选。一个resource(默认)或empty

ref

字符串。对于source_type: resource必须引用一个ceph.smb.join.auth资源的ID

Note

The source_type empty通常仅用于调试和测试模块,不应在生产部署中需要。

以下是一个配置为AD成员的集群的示例:

resource_type: ceph.smb.cluster
cluster_id: tango
auth_mode: active-directory
domain_settings:
  realm: DOMAIN1.SINK.TEST
  join_sources:
    # this join source refers to a join auth resource with id "join1-admin"
    - source_type: resource
      ref: join1-admin
custom_dns:
  - "192.168.76.204"
placement:
  count: 1

以下是一个配置为独立操作的集群的示例:

resource_type: ceph.smb.cluster
cluster_id: rhumba
auth_mode: user
user_group_settings:
  - source_type: resource
    ref: ug1
placement:
  hosts:
    - node6.mycluster.sink.test

一个意图为移除的集群资源示例:

resource_type: ceph.smb.cluster
cluster_id: rhumba
intent: removed

共享资源

一个共享资源支持以下字段:

resource_type

一个文字字符串ceph.smb.share

cluster_id

一个短字符串,标识集群

share_id

一个短字符串,标识共享。必须在集群内唯一

intent

一个presentremoved。如果未提供,present被假定。如果removed所有以下字段都是可选的

name

可选字符串。一个更长的名称,可以支持空格和其他字符,将显示给SMB客户端

readonly

可选布尔值,默认为false。如果为true,则不允许任何客户端写入共享

browseable

可选布尔值,默认为true。如果为true,则共享将包含对客户端可见的共享列表

cephfs

必要的对象。字段:

volume

必要的字符串。要使用的cephfs卷的名称

path

必要的字符串。卷或子卷中的路径

subvolumegroup

可选字符串。要共享的子卷组名称

subvolume

可选字符串。要共享的子卷名称。如果subvolumegroup未设置,并且此值包含正好一个/字符,则自动将子卷字段分成<subvolumegroup>/<subvolume>部分以方便使用

provider

可选。选择如何将CephFS存储提供给共享。samba-vfs, samba-vfs/classic, samba-vfs/newsamba-vfs/proxied。如果未指定,则假定samba-vfs

选择samba-vfs/new选择新的Samba VFS插件以连接到CephFS并samba-vfs/proxied使用新的VFS插件但通过代理路由连接。使用代理允许共享有更多的同时客户端连接,但这会以性能为代价。samba-vfs/classic使用旧的Samba VFS插件连接到CephFS。samba-vfs自动选择首选的VFS基于实现,目前samba-vfs/proxied。此选项适用于大多数用例,大多数共享可以留空未指定。

restrict_access

可选布尔值,默认为false。如果为true,则共享将仅允许通过在login_control.

login_control中明确列出的用户访问

可选对象列表。字段:

name

Required string. 用户或组的名称。

category

可选。一个user(默认)或group.

access

一个read(aliasr),read-write(aliasrw),none,或admin。在登录到此共享时,向用户或组授予特定的访问级别。该none值无论restrict_access值如何,都会拒绝访问共享。

custom_smb_share_options

可选映射。指定将直接添加到smb.conf(或等效)的Samba服务中的键值对。除非您准备自行调试Samba实例,否则请不要使用此选项。firefly 发布。Firefly 将延迟至少另一个冲刺,以便我们可以对新代码进行一些操作经验,并进行一些额外的测试,然后再承诺长期支持。此选项供开发人员、功能调查员和其他高级用户使用,以便在不修改Ceph代码库的情况下对共享的选项进行更直接的控制。此映射中的条目应与

此选项供开发人员、功能调查员和其他高级用户使用,以便在不修改Ceph代码库的情况下对共享的选项进行更直接的控制。此映射中的条目应与smb.conf和其值中的参数匹配。必须在此映射中的某个位置出现一个特殊键_allow_customization,其值为i-take-responsibility-for-all-samba-configuration-errors作为用户了解使用此选项可能会以Ceph团队无法帮助的方式轻易破坏事情的指示。此特殊键将自动从传递给Samba的选项列表中删除。

一个共享示例:

resource_type: ceph.smb.share
cluster_id: tango
share_id: sp1
name: "Staff Pics"
cephfs:
  volume: cephfs
  path: /pics
  subvolumegroup: smbshares
  subvolume: staff

另一个示例,这次是一个意图为移除的共享示例:

resource_type: ceph.smb.share
cluster_id: tango
share_id: sp2
intent: removed

加入认证资源

一个加入认证资源支持以下字段:

resource_type

一个文字字符串ceph.smb.join.auth

auth_id

一个短字符串,标识加入认证资源

intent

一个presentremoved。如果未提供,present被假定。如果removed所有以下字段都是可选的

auth

必要的对象。字段:

用户名

Required string. 能够将系统加入AD的用户

password

Required string. AD用户的密码

linked_to_cluster:

可选。包含集群ID的字符串。如果设置,则此资源只能与链接的集群一起使用,并且当链接的集群被删除时将自动删除。

Example:

resource_type: ceph.smb.join.auth
auth_id: join1-admin
auth:
  username: Administrator
  password: Passw0rd

用户和组资源

一个用户和组资源支持以下字段:

resource_type

一个文字字符串ceph.smb.usersgroups

users_groups_id

一个短字符串,标识用户和组资源

intent

一个presentremoved。如果未提供,present被假定。如果removed所有以下字段都是可选的。

values

必要的对象。字段:

users

对象列表。字段:

name

用户名

password

密码

groups

对象列表。字段:

name

组名称

linked_to_cluster:

可选。包含集群ID的字符串。如果设置,则此资源只能与链接的集群一起使用,并且当链接的集群被删除时将自动删除。

Example:

resource_type: ceph.smb.usersgroups
users_groups_id: ug1
values:
  users:
    - name: chuckx
      password: 3xample101
    - name: steves
      password: F00Bar123
    groups: []

声明式配置示例

使用上述资源描述,我们可以组合一个示例,该示例根据资源配置文件从头开始创建集群和共享。首先,创建一个包含以下内容的YAML:

resources:
  # Define an AD member server cluster
  - resource_type: ceph.smb.cluster
    cluster_id: tango
    auth_mode: active-directory
    domain_settings:
      realm: DOMAIN1.SINK.TEST
      join_sources:
        - source_type: resource
          ref: join1-admin
    custom_dns:
      - "192.168.76.204"
    # deploy 1 set of samba containers on a host labeled "ilovesmb"
    placement:
      count: 1
      label: ilovesmb
  # Define a join auth that our cluster will use to join AD
  # Warning: Typically you do not want to use the Administrator user
  # to perform joins on a production AD
  - resource_type: ceph.smb.join.auth
    auth_id: join1-admin
    auth:
      username: Administrator
      password: Passw0rd
  # A share that uses the root of a subvolume
  # The share name is the same as its id
  - resource_type: ceph.smb.share
    cluster_id: tango
    share_id: cache
    cephfs:
      volume: cephfs
      subvolumegroup: smb1
      subvolume: cache
      path: /
  # A share that uses the a sub-dir of a subvolume
  # The share name is not the same as its id
  - resource_type: ceph.smb.share
    cluster_id: tango
    share_id: sp1
    name: "Staff Pics"
    cephfs:
      volume: cephfs
      path: /pics
      subvolumegroup: smb1
      subvolume: staff

将此文本保存为名为resources.yaml的YAML文件,并在集群管理员主机上使其可用。然后运行:

$ ceph smb apply -i resources.yaml

该命令将打印所做的更改摘要,并开始自动部署所需的资源。有关如何测试此示例部署的更多信息,请参阅访问共享

后来,如果这些资源不再需要,则可以使用一个新文件removed.yaml一次性清理它们,其中包含:

resources:
  - resource_type: ceph.smb.cluster
    cluster_id: tango
    intent: removed
  - resource_type: ceph.smb.join.auth
    auth_id: join1-admin
    intent: removed
  - resource_type: ceph.smb.share
    cluster_id: tango
    share_id: cache
    intent: removed
  - resource_type: ceph.smb.share
    cluster_id: tango
    share_id: sp1
    intent: removed

通过发出命令:

$ ceph smb apply -i removed.yaml

SMB集群管理

The smb模块将自动在主机上部署逻辑集群,使用cephadm编排。当集群配置为至少一个共享时,编排会自动触发。集群资源的placement字段传递到编排层,并用于确定Samba容器将在Ceph集群的哪些节点上运行。

目前Samba服务只能监听端口445。由于此限制,一次只有一个Samba服务器,作为集群的一部分,可以在单个Ceph节点上运行。确保每个集群上的放置规范不重叠。

The smb集群之间完全隔离。这意味着,只要您的Ceph集群中有足够的资源,您就可以运行多个独立的集群,这些集群可能加入相同的AD域/森林,也可能不加入。但是,您不应该与多个不同的集群共享目录,这些集群可能有不同的认证模式和/或身份映射方案。

Note

未来版本的smb模块可能会尝试以编程方式防止这种情况。

访问共享

Once a cluster and it’s component Samba containers have been deployed and the shares have been configured clients may connect to the servers. Microsoft Windows systems have SMB support built in and using Windows Explorer a share can be specified like so: \\<hostname>\<sharename>从仓库中删除它。例如:\\ceph0.mycluster.sink.test\Staff Pics. The Windows node should automatically attempt to log into the share. If the cluster and Windows client are both configured for the same AD Domain then a password-less single sign-on login will automatically be performed. If the cluster is configured for user auth, a username and password prompt should appear. Enter one user name and password combination that was specified in the cluster and/or ceph.smb.usersgroups resource.

MacOS X systems and many Linux based systems also support connecting to SMB shares. Consult the documentation for those Operating Systems and Distributions for how to connect to SMB shares.

A Ceph cluster operator wanting to quickly test a share is functioning may want to install smbclient or use the Samba Client Container image available from the samba-container project with the image quay.io/samba.org/samba-client:latest. On a client or within the container run smbclient -U <username> //<hostname>/<sharename> and enter the password at the prompt. Refer to the smbclient documentation for more details.

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.