侵权投诉

评估K8s可用的最常见的存储解决方案

存储社区 2021-01-03 10:37 次阅读

如果你正在运行K8s,其中最大的难题之一是如何为k8s集群选择正确的存储技术,你可能会考虑使用通过动态预配置的块存储。实际上,这很大程度上取决于您要运行的工作负载的类型。本篇文章的目标主要是评估K8s可用的最常见的存储解决方案,并进行基本性能测试

目前CNCF的存储格局和解决方案已经更新,它已从2019年的30个解决方案增长到目前的45个解决方案,还进行了公共云集成的管理扩展,例如AWSEBS,Google永久磁盘或Azure磁盘存储。一些新解决方案像Alluxio一样,更侧重于分布式文件系统或对象存储。

本文的目标是采用K8s可用的最常见的存储解决方案,并准备基本的性能比较。文章使用以下后端在AzureAKS上执行所有测试:

  • AKSnativestorageclass—Azurenativepremium

  • AWScloudvolumemappedintoinstance—AzurehostPathwithattachedAzuremanageddisk

  • OpenEBSwithcStorbackend

  • OpenEBSMayaStor

  • Portworx

  • GlustermanagedbyHeketi

  • CephmanagedbyRook

  • Longhorn

相比于19年的存储方案,GlusterFSHeketi在性能结果上排名倒数第二,它的改进为零,并且大多数情况下是一个沉寂的项目(Heketi作为REST协调器而不是GlusterFS本身)。如果查看它们的官方GitHub,您会发现他们近乎将其置于维护模式,并且云本地存储功能没有任何更新。

另外根据GIGAOM2020报告,PortWorx仍然是K8s的顶级商业存储解决方案。但是,从性能的角度来看,版本2.0和2.5之间的发行说明中并没有重大的技术或体系结构更改。最好的开源存储,是通过Rook精心策划的CEPH,他发布了2个新版本,并推出了一个新的CEPH版本,称为Octopus。Octopus对缓存机制进行了一些优化,并使用了更现代的内核接口。今年唯一的主要体系结构更改发生在OpenEBS中,它引入了一个称为MayaStor的新后端。这个后端看起来非常有前途。这些k8s常用的解决方案性能到底怎么样了?我们一起来看下。

本机Azure存储

之所以选择该存储类,是为了获得所有测试的基准。此存储类应提供最佳性能。Azure动态创建托管磁盘,并将其映射到具有k8s作为Pod卷的VM。

81534c9c-4655-11eb-8b86-12bb97331649.png

无需使用任何特殊功能。当您配置新的AKS群集时,将自动预定义2个存储类,分别称为“默认”和“高级托管”。高级类对卷使用基于SSD的高性能和低延迟磁盘。

优点

  • AKS上的默认设置无需执行任何操作。

缺点

  • 故障转移情况下非常慢,有时需要将近10分钟才能将卷重新连接到其他节点上的Pod。

$kubectlgetstorageclassesNAMEPROVISIONERAGEdefault(default)kubernetes.io/azure-disk8mmanaged-premiumkubernetes.io/azure-disk8m$kubectlgetpvcNAMESTATUSVOLUMECAPACITYACCESSMODESSTORAGECLASSAGEdbench-pv-claimBoundpvc-e7bd34a4-1dbd-11e9-8726-ae508476e8ad1000GiRWOmanaged-premium10s$kubectlgetpoNAMEREADYSTATUSRESTARTSAGEdbench-w7nqf0/1ContainerCreating029s

OpenEBS

OpenEBS代表了新的容器附加存储(CAS)概念,其中是单个基于微服务的存储控制器和多个基于微服务的存储副本。它与Portworx一起属于云本机存储类别。

81d4be9e-4655-11eb-8b86-12bb97331649.png

它是完全开源的,目前提供2个后端,分别是Jiva和cStor。我从Jiva开始,然后切换到cStor。cStor进行了一些改进,因为控制器及其副本部署在单个名称空间(安装openebs的名称空间)中,或者它使用原始磁盘而不是格式化分区。每个k8s卷都有其自己的存储控制器,该存储可以在节点上可用存储容量的允许范围内进行扩展。

如何在AKS上获取它?在AKS上安装其实非常容易。

1.我必须连接到所有k8s节点的控制台并安装iSCSI,因为它使用iSCSI协议在Pod和存储控制器与k8s节点之间进行连接。

apt-getupdateaptinstall-yopen-iscsi

2.然后,我将单个YAML定义应用于我的k8s集群

kubectlapply-fhttps://openebs.github.io/charts/openebs-operator-0.8.0.yaml

3.下一步,OpenEBS控制器在底层节点发现了我所有的磁盘。但是我必须手动确定附加的AWS托管磁盘。

kubectlgetdiskNAMEAGEdisk-184d99015253054c48c4aa3f17d137b15mdisk-2f6bced7ba9b2be230ca5138fd0b07f15mdisk-806d3e77dd2e38f188fdaf9c46020bdc5m

4.然后,将这些磁盘添加到标准StorageClass引用的自定义k8s资源StoragePoolClaim中。

---apiVersion:storage.k8s.io/v1kind:StorageClassmetadata:name:openebs-customannotations:openebs.io/cas-type:cstorcas.openebs.io/config:|-name:StoragePoolClaimvalue:"cstor-disk"provisioner:openebs.io/provisioner-iscsi---apiVersion:openebs.io/v1alpha1kind:StoragePoolClaimmetadata:name:cstor-diskspec:name:cstor-disktype:diskmaxPools:3poolSpec:poolType:stripeddisks:diskList:-disk-2f6bced7ba9b2be230ca5138fd0b07f1-disk-806d3e77dd2e38f188fdaf9c46020bdc-disk-184d99015253054c48c4aa3f17d137b1

完成这些步骤后,我便能够通过k8sPVC动态配置新卷。

优点

  • 开源的

  • Maya在资源使用可视化方面做得很好。您可以轻松地在k8s集群中部署多个服务,并轻松设置监视和日志记录以收集集群的所有重要方面。这是调试的理想工具。

  • 总的来说,CAS概念–我非常喜欢容器存储背后的想法,并且我相信会有未来。

  • OpenEBS背后的社区—我能够在几分钟内解决任何问题。Slack上的团队非常有帮助。

缺点

  • 不成熟-OpenEBS是一个相当新的项目,尚未达到稳定版本。核心团队仍在进行后端优化,这将在接下来的几个月中显著提高性能。

  • Kubelet和存储控制器之间的iSCSI连接由k8s服务实现,这在某些覆盖网络CNI插件(例如TungstenFabric)中可能是一个问题。

  • 需要在Kubernetes节点上安装其他软件(iSCSI),这使其在托管Kubernetes集群的情况下不切实际。

注意:OpenEBS团队在文档中调整了相关的测试用例场景

https://github.com/kmova/openebs/tree/fio-perf-tests/k8s/demo/dbench

Portworx

唯一的不开源的存储解决方案。但是,它免费提供3个节点试用版。

82288704-4655-11eb-8b86-12bb97331649.png

如何在AKS上安装它?在AKS上安装也非常容易。我使用了可在其网站上找到的Kubernetesspec生成器。

1.首选,我选择了Portworx托管的etcd来简化设置,并填充了k8s1.11.4版本。

2.我必须将数据网络接口修改为azure0,因为我使用的是具有高级联网功能的Azurecni。否则,Portworx将使用来自dockerbridge的IP地址而不是VM接口。

3.最后一步,网站生成器向我提供了渲染的k8sYAML清单以应用于我的集群。

4.引导后,我在每个k8s节点上运行了PortworxPod

root@aks-agentpool-20273348-0:~#kubectlgetpods-owide-nkube-system-lname=portworxNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATEDNODEportworx-g9csq1/1Running014m10.0.1.66aks-agentpool-20273348-2<none>portworx-nt2lq1/1Running014m10.0.1.4aks-agentpool-20273348-0<none>portworx-wcjnx1/1Running014m10.0.1.35aks-agentpool-20273348-1<none>

我创建了具有高优先级和3个副本的StorageClass,然后可以配置k8spvc。

优点

  • 易于部署-具有详细配置的网站配置器。

  • AKS集群的配置器,不需要任何其他步骤,如ceph或glusterfs。

  • 云原生存储,它可以在硬件集群和公共云上运行。

  • 存储感知的服务等级(COS)和应用感知的I/O调整

缺点

  • 闭源,专有供应商解决方案。

GlusterFSHeketi

GlusterFS是众所周知的开源存储解决方案。它沿用Ceph,这是RedHat支持的传统开源存储之一。Heketi是用于GlusterFS的RESTful卷管理接口。它提供了一种释放动态配置的GlusterFS卷功能的便捷方法。如果没有此访问权限,则必须手动创建GlusterFS卷并将其映射到k8spv。

8296ef46-4655-11eb-8b86-12bb97331649.png

如何在AKS上安装它?我使用了默认的Heketi快速入门指南。

  1. 首先,我基于示例一创建了一个拓扑文件,其中包含磁盘和主机名。

https://github.com/gluster/gluster-kubernetes/blob/master/deploy/topology.json.sample

2.由于Heketi主要是在基于RHEL的操作系统上开发和测试的,因此我在使用Ubuntu主机的AKS上遇到了一个问题,该内核路径错误。这是解决此问题的PR。

https://github.com/gluster/gluster-kubernetes/pull/557
+++b/deploy/kube-templates/glusterfs-daemonset.yaml@@-67,7+67,7@@spec:mountPath:"/etc/ssl"readOnly:true-name:kernel-modules-mountPath:"/usr/lib/modules"+mountPath:"/lib/modules"readOnly:truesecurityContext:capabilities:{}@@-131,4+131,4@@spec:path:"/etc/ssl"-name:kernel-moduleshostPath:-path:"/usr/lib/modules"+path:"/lib/modules"

3.我遇到的AKS的另一个问题是非空磁盘,因此我使用了擦拭来清理glusterfs的磁盘。该磁盘以前没有用于其他任何用途。

wipefs-a/dev/sdc/dev/sdc:8byteswereerasedatoffset0x00000218(LVM2_member):4c564d3220303031

4.最后一步,我运行命令gk-deploy-g-ttopology.json,该命令在由heketi控制器控制的每个节点上部署了glusterfspod。

root@aks-agentpool-20273348-0:~#kubectlgetpo-owideNAMEREADYSTATUSRESTARTSIPNODENOMINATEDNODEglusterfs-fgc8f1/1Running010.0.1.35aks-agentpool-20273348-1glusterfs-g8ht61/1Running010.0.1.4aks-agentpool-20273348-0glusterfs-wpzzp1/1Running010.0.1.66aks-agentpool-20273348-2heketi-86f98754c-n8qfb1/1Running010.0.1.69aks-agentpool-20273348-2

然后,我面临着动态配置的问题。HeketirestURL对k8s控制平面不可用。我尝试了kubedns记录,podIP和svcIP。两者都不起作用。因此,我不得不通过HeketiCLI手动创建卷。

root@aks-agentpool-20273348-0:~#exportHEKETI_CLI_SERVER=http://10.0.1.69:8080root@aks-agentpool-20273348-0:~#heketi-clivolumecreate--size=10--persistent-volume--persistent-volume-endpoint=heketi-storage-endpoints|kubectlcreate-f-persistentvolume/glusterfs-efb3b155createdroot@aks-agentpool-20273348-0:~#kubectlgetpvNAMECAPACITYACCESSMODESRECLAIMPOLICYSTATUSCLAIMSTORAGECLASSREASONAGEglusterfs-efb3b15510GiRWXRetainAvailable19s

然后,必须为我的dbench工具将现有的PV映射到PVC。

kind:PersistentVolumeClaimapiVersion:v1metadata:name:glusterfs-efb3b155spec:accessModes:-ReadWriteManystorageClassName:""resources:requests:storage:10GivolumeName:glusterfs-efb3b155kubectlgetpvcNAMESTATUSVOLUMECAPACITYACCESSMODESSTORAGECLASSAGEglusterfs-efb3b155Boundglusterfs-efb3b15510GiRWX36m

从k8s上的HeketiGluster安装获得更多输出。

glustervolumeinfovol_efb3b15529aa9aba889d7900f0ce9849VolumeName:vol_efb3b15529aa9aba889d7900f0ce9849Type:ReplicateVolumeID:96fde36b-e389-4dbe-887b-baae32789436Status:StartedSnapshotCount:0NumberofBricks:1x3=3Transport-type:tcpBricks:Brick1:10.0.1.66:/var/lib/heketi/mounts/vg_5413895eade683e1ca035760c1e0ffd0/brick_cd7c419bc4f4ff38bbc100c6d7b93605/brickBrick2:10.0.1.35:/var/lib/heketi/mounts/vg_3277c6764dbce56b5a01426088901f6d/brick_6cbd74e9bed4758110c67cfe4d4edb53/brickBrick3:10.0.1.4:/var/lib/heketi/mounts/vg_29d6152eeafc57a707bef56f091afe44/brick_4856d63b721d794e7a4cbb4a6f048d96/brickOptionsReconfigured:transport.address-family:inetnfs.disable:onperformance.client-io-threads:offkubectlgetsvcNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEheketiClusterIP192.168.101.758080/TCP5hheketi-storage-endpointsClusterIP192.168.103.661/TCP5hroot@aks-agentpool-20273348-0:~#kubectlgetendpointsNAMEENDPOINTSAGEheketi10.0.1.69:80805hheketi-storage-endpoints10.0.1.35:1,10.0.1.4:1,10.0.1.66:15hkubernetes172.31.22.152:4431droot@aks-agentpool-20273348-0:~#kubectlgetendpointsheketi-storage-endpoints-oyamlapiVersion:v1kind:Endpointsmetadata:creationTimestamp:2019-01-29T15:14:28Zname:heketi-storage-endpointsnamespace:defaultresourceVersion:"142212"selfLink:/api/v1/namespaces/default/endpoints/heketi-storage-endpointsuid:91f802eb-23d8-11e9-bfcb-a23b1ec87092subsets:-addresses:-ip:10.0.1.35-ip:10.0.1.4-ip:10.0.1.66ports:-port:1protocol:TCP

优点

  • 成熟的存储解决方案

  • 比Ceph更轻

缺点

  • Heketi不是为公共管理的k8设计的。它与HW群集配合使用,安装更容易。

  • 并非真正为“结构化数据”设计的,如SQL数据库。但是,您可以使用Gluster备份和还原数据库。

CephRook

OpenStack私有云常见和Ceph进行搭配。它始终需要设计特定的硬件配置,根据数据类型生成pg组,配置日志SSD分区(在bluestore之前)并定义CrushMap。因此,当我第一次听说在3节点k8s集群中使用Ceph时,我不敢相信它实际上可以工作。但是,Rook编排工具给我留下了深刻的印象,该工具为我完成了所有痛苦的步骤,并且与k8s编排一起提供了一种非常简单的方法来处理整个存储集群的安装。

82f1800a-4655-11eb-8b86-12bb97331649.png

如何在AKS上安装它?在默认安装中,Rook不需要任何特殊步骤,并且如果您不希望使用高级配置,它会非常平滑。

1.我使用了Ceph快速入门指南

https://github.com/rook/rook/blob/master/Documentation/ceph-quickstart.md#ceph-storage-quickstart

2.我必须配置特定于AKS的FLEXVOLUME_DIR_PATH,因为它们使用/etc/kubernetes/volumeplugins/而不是默认的Ubuntu/usr/libexec。没有此更改,kubelet无法安装pvc。

diff--gita/cluster/examples/kubernetes/ceph/operator.yamlb/cluster/examples/kubernetes/ceph/operator.yamlindex73cde2e..33f45c8100755---a/cluster/examples/kubernetes/ceph/operator.yaml+++b/cluster/examples/kubernetes/ceph/operator.yaml@@-431,8+431,8@@spec:#-name:AGENT_MOUNT_SECURITY_MODE#value:"Any"#SetthepathwheretheRookagentcanfindtheflexvolumes-#-name:FLEXVOLUME_DIR_PATH-#value:""+-name:FLEXVOLUME_DIR_PATH+value:"/etc/kubernetes/volumeplugins"#Setthepathwherekernelmodulescanbefound#-name:LIB_MODULES_DIR_PATH#value:""

3.然后,我必须指定要在deviceFilter中使用的设备。我的附加磁盘始终位于/dev/sdc上

diff--gita/cluster/examples/kubernetes/ceph/cluster.yamlb/cluster/examples/kubernetes/ceph/cluster.yamlindex48cfeeb..0c91c48100755---a/cluster/examples/kubernetes/ceph/cluster.yaml+++b/cluster/examples/kubernetes/ceph/cluster.yaml@@-227,7+227,7@@spec:storage:#clusterlevelstorageconfigurationandselectionuseAllNodes:trueuseAllDevices:false-deviceFilter:+deviceFilter:"^sdc"location:config:

4.安装后,我使用以下配置创建了Ceph块池和存储类

apiVersion:ceph.rook.io/v1kind:CephBlockPoolmetadata:name:replicapoolnamespace:rook-cephspec:failureDomain:hostreplicated:size:3---apiVersion:storage.k8s.io/v1kind:StorageClassmetadata:name:rook-ceph-blockprovisioner:ceph.rook.io/blockparameters:blockPool:replicapoolclusterNamespace:rook-cephfstype:xfsreclaimPolicy:Retain

5。最后,我通过以下部署工具检查状态:https://github.com/rook/rook/blob/master/Documentation/ceph-toolbox.md

cephstatuscluster:id:bee70a10-dce1-4725-9285-b9ec5d0c3a5ehealth:HEALTH_OKservices:mon:3daemons,quorumc,b,amgr:a(active)osd:3osds:3up,3indata:pools:0pools,0pgsobjects:0objects,0Busage:3.0GiBused,3.0TiB/3.0TiBavailpgs:[root@aks-agentpool-27654233-0/]#[root@aks-agentpool-27654233-0/]#[root@aks-agentpool-27654233-0/]#cephosdstatus+----+--------------------------+-------+-------+--------+---------+--------+---------+-----------+|id|host|used|avail|wrops|wrdata|rdops|rddata|state|+----+--------------------------+-------+-------+--------+---------+--------+---------+-----------+|0|aks-agentpool-27654233-0|1025M|1021G|0|0|0|0|exists,up||1|aks-agentpool-27654233-1|1025M|1021G|0|0|0|0|exists,up||2|aks-agentpool-27654233-2|1025M|1021G|0|0|0|0|exists,up|+----+--------------------------+-------+-------+--------+---------+--------+---------+-----------+

优点

  • 在大型生产环境中运行的强大存储

  • Rook使生命周期管理变得更加简单。

缺点

  • 复杂且更重,甚至不适合在公共云中运行。最好只在配置正确的硬件群集上运行。

    Longhorn

Longhorn是Rancher开发的用于K8s的云原生分布式块存储。它主要是为微服务用例设计的。它为每个块设备卷创建一个专用的存储控制器,并跨存储在多个节点上的多个副本同步复制该卷。Longhorn在附加了卷的节点上创建了LonghornEngine,并在复制了卷的节点上创建了副本。与其他存储方案类似,整个控制平面正常运行,而数据平面由K8s编排。它是完全开源的。有趣的是,OpenEBSJiva后端实际上是基于Longhorn的,或者至少最初是基于Longhorn的。主要区别在于Longhorn使用TCMULinux驱动程序,而OpenEBSJiva使用的是gotgt。

8355ae9a-4655-11eb-8b86-12bb97331649.jpg

如何在AKS上获取它?当然也可以轻松安装到AKS,只需要运行一个命令,它将所有组件安装到我的AKS集群中

$kubectlapply-fhttps://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml$kubectl-nlonghorn-systemgetpoNAMEREADYSTATUSRESTARTSAGEcsi-attacher-7965bb8b59-c4g2c1/1Running0116scsi-attacher-7965bb8b59-jqk9t1/1Running0116scsi-attacher-7965bb8b59-qrxl61/1Running0116scsi-provisioner-5896666d9b-9lss21/1Running0115scsi-provisioner-5896666d9b-v7wwd1/1Running0115scsi-provisioner-5896666d9b-vsq6v1/1Running0115scsi-resizer-98674fffd-27wgb1/1Running0115scsi-resizer-98674fffd-q6scx1/1Running0115scsi-resizer-98674fffd-rr7qc1/1Running0115sengine-image-ei-ee18f965-5npvk1/1Running02m44sengine-image-ei-ee18f965-9lp7w1/1Running02m44sengine-image-ei-ee18f965-h7b4x1/1Running02m44sinstance-manager-e-271467771/1Running02m42sinstance-manager-e-583628311/1Running02m40sinstance-manager-e-6043871c1/1Running02m43sinstance-manager-r-5cdb90bf1/1Running02m40sinstance-manager-r-cb47162a1/1Running02m41sinstance-manager-r-edd5778b1/1Running02m42slonghorn-csi-plugin-7xzw92/2Running0115slonghorn-csi-plugin-m8cp42/2Running0115slonghorn-csi-plugin-wzgp82/2Running0115slonghorn-driver-deployer-699db744fd-8j6q61/1Running03m8slonghorn-manager-c56471/1Running13m10slonghorn-manager-dlsmc1/1Running03m10slonghorn-manager-jrnfx1/1Running13m10slonghorn-ui-64bd57fb9d-qjmsl1/1Running03m9s

2.将带有ext4文件系统的/dev/sdc1挂载到/var/lib/longhorn,这是卷存储的默认路径。最好在Longhorn安装之前将磁盘安装到那里。

83b2503c-4655-11eb-8b86-12bb97331649.png

Longhorn中节点磁盘配置的屏幕截图

3.最后一步是创建一个具有3个副本定义的默认存储类。

#kubectlcreate-fhttps://raw.githubusercontent.com/longhorn/longhorn/master/examples/storageclass.yamlkind:StorageClassapiVersion:storage.k8s.io/v1metadata:name:longhornprovisioner:driver.longhorn.ioallowVolumeExpansion:trueparameters:numberOfReplicas:"3"staleReplicaTimeout:"2880"#48hoursinminutesfromBackup:""

优点

  • 开源的

  • 云原生存储,它可以在硬件集群和公共云上运行。

  • 易于部署,它只需要一个命令,并且“开箱即用”。

  • 自动卷备份/还原到S3

缺点

  • 它使用标准文件系统(ext4或xfs)到/var/lib/longhorn的挂载点。每个卷就像一个磁盘文件。它可以随着许多控制器副本进行扩展,从而带来额外的网络开销。类似于我为OpenEBSJiva描述的内容。

  • 卷的挂载有时会花费很长时间(几分钟),并且会显示最终从中恢复的错误。

OpenEBSMayaStor

上文有介绍OpenEBS使用cStor的方案,其性能结果确实很差。但是一年半后的时间,OpenEBS团队引入了一个名为MayStor的新后端。

这是用Rust编写的云原生声明性数据平面,由2个组件组成:

  • 以CSI概念和数据平面实现的控制平面。与以前的后端相比,主要区别在于利用NVMe而不是NVMe-oF,这有望为存储敏感型工作负载提供更好的IOPS和延迟价值。

  • 这种存储设计的另一个优点是,它在主机用户空间中完全用尽了内核,并消除了由不同Linux发行版中可用的各种内核引起的差异。它根本不依赖于内核进行访问。下面的链接中,详细介绍了MayStor的设计说明。

https://blog.mayadata.io/openebs/mayastor-crossing-the-chasm-to-nvmf-infinity-and-beyond

如何在AKS上获取它?在AKS上进行安装也非常简单,我遵循了他们的快速入门指南

  1. 我必须在AKS群集中的每个节点上用512个数字配置2MB的大页面。

echo512|sudotee/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

但是我决定通过下面的k8sdaemonset强制执行它们,而不是通过ssh进入我的每个实例。

apiVersion:apps/v1kind:DaemonSetmetadata:name:hugepages-ensurenamespace:mayastorlabels:app:hugepages-ensurespec:selector:matchLabels:name:hugepages-ensureupdateStrategy:type:OnDeletetemplate:metadata:name:hugepages-ensurelabels:name:hugepages-ensureapp:hugepages-ensurespec:containers:-name:shellimage:busybox:latestimagePullPolicy:IfNotPresentcommand:-/bin/shargs:--c-"whiletrue;doecho512|tee/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages;grepHugePages/proc/meminfo;sleep6000;done"volumeMounts:-mountPath:/host-rootname:host-rootsecurityContext:privileged:truednsPolicy:ClusterFirstWithHostNethostNetwork:truevolumes:-name:host-roothostPath:path:/

2.我必须标记我的存储节点VM。

kubectllabelnodeaks-agentpool-13651304-0openebs.io/engine=mayastornode/aks-agentpool-13651304-0labeledkubectllabelnodeaks-agentpool-13651304-1openebs.io/engine=mayastornode/aks-agentpool-13651304-1labeledkubectllabelnodeaks-agentpool-13651304-2openebs.io/engine=mayastornode/aks-agentpool-13651304-2labeled

3.然后,我应用了MayaStor存储库中指定的所有清单。

https://github.com/openebs/Mayastor/tree/develop/deploy
kubectlcreate-fnats-deployment.yamlkubectlcreate-fcsi-daemonset.yamlkubectlcreate-fmayastorpoolcrd.yamlkubectlcreate-fmoac-rbac.yamlkubectlcreate-fmoac-deployment.yamlkubectlcreate-fmayastor-daemonset.yamlkubectlgetpo-nmayastorNAMEREADYSTATUSRESTARTSAGEhugepages-ensure-5dr261/1Running047hhugepages-ensure-tpth61/1Running047hhugepages-ensure-z9mmh1/1Running047hmayastor-csi-7rf2l2/2Running047hmayastor-csi-hbqlb2/2Running047hmayastor-csi-jdw7k2/2Running047hmayastor-g9gnl1/1Running747hmayastor-j7j4q1/1Running447hmayastor-kws9r1/1Running447hmoac-7d487fd5b5-hfvhq3/3Running041hnats-b4cbb6c96-8drv41/1Running047h

4.当所有内容都在运行时,您可以开始创建用于卷置备的存储池。在我的情况下,我创建了3个存储池,每个节点有一个磁盘。

cat<apiVersion:openebs.io/v1alpha1kind:MayastorPoolmetadata:name:pool-on-node-1namespace:mayastorspec:disks:-/dev/sdcnode:aks-agentpool-13651304-1EOFkubectl-nmayastorgetMayastorPoolNAMENODESTATEAGEpool-on-node-0aks-agentpool-13651304-0online40hpool-on-node-1aks-agentpool-13651304-1online46hpool-on-node-2aks-agentpool-13651304-2online46h

5.在继续进行StorageClass定义之前,检查每个存储池的状态很重要。状态必须可见。

kubectl-nmayastordescribemsppool-on-node-1Name:pool-on-node-1Namespace:mayastorLabels:APIVersion:openebs.io/v1alpha1Kind:MayastorPoolMetadata:CreationTimestamp:2020-08-19T0852ZGeneration:1ResourceVersion:45513SelfLink:/apis/openebs.io/v1alpha1/namespaces/mayastor/mayastorpools/pool-on-node-1UID:5330a0be-bebe-445a-9285-856511e318dcSpec:Disks:/dev/sdcNode:aks-agentpool-13651304-1Status:Capacity:1098433691648Disks:aio:///dev/sdcReason:State:onlineUsed:1073741824Events:

6.该过程的最后一步是StorageClass定义,在其中,我配置了3个副本以具有与之前的存储解决方案相同的测试环境。

cat<kind:StorageClassapiVersion:storage.k8s.io/v1metadata:name:mayastorparameters:repl:'3'protocol:'iscsi'provisioner:io.openebs.csi-mayastorEOF

完成这些步骤后,我便能够通过K8sPVC动态预配新卷。

优点

  • 具有强大社区支持的开源

  • 云原生存储,它可以在硬件集群和公共云上运行。

  • 与仅具有一个队列的SCSI相比,NVMe的使用旨在实现高度并行性,并且可以具有64K队列。

  • 它使用NVMe-oF作为传输方式,可以在各种传输方式(nvmf,uring,pcie)上工作,并且完全在用户空间(目标用户和发起者)中完成。在用户空间中运行可以避免进行大量的系统调用,避免后期崩溃/崩溃等。而且它与内核无关,因此跨云或物理环境的linux类型之间没有区别。

缺点

  • 早期版本-OpenEBSMayaStor的版本为0.3,因此它仍然存在一些限制和稳定性问题。但是,它们走在正确的轨道上,并且在几个月后,它可能是在K8中存储的首选。

  • 需要在Kubernetes节点上支持2MB的大页面。但是,与1GB的大页面相比,几乎在所有物理或虚拟环境中都可用。

性能测试结果

重要说明:单个存储性能测试的结果无法单独评估,但必须将测量结果相互比较。这里多种执行比较测试的方法是相对比较简单的。

为了进行验证,我使用了与AzureAKS3节点群集和每个实例均附有1TB高级SSD托管磁盘的完全相同的实验室。

为了运行测试,我决定使用称为Dbench的负载测试器。这是Pod的K8s部署清单,在其中运行FIO,这是带有8个测试用例的FlexibleIOTester。在Docker映像的入口点中指定了测试:

  • 随机读写带宽

  • 随机读写IOPS

  • 读写延迟

  • 顺序读/写

  • 混合读/写IOPS

首先,我运行了AzurePVC测试以获得与去年进行比较的基准。结果几乎相同,因此我们可以假设条件保持不变,并且使用相同的存储版本将获得相同的数量。可从https://gist.github.com/pupapaik/76c5b7f124dbb69080840f01bf71f924获得来自2019年所有测试的更新的完整测试输出以及新的MayStor和Longhorn测试

随机读写带宽

随机读取测试表明,GlusterFS,Ceph和Portworx的读取性能比Azure本地磁盘上的主机路径好几倍。OpenEBS和Longhorn的性能几乎是本地磁盘的两倍。原因是读取缓存。对于OpenEBS,写入速度最快,但是Longhorn和GlusterFS的值也几乎与本地磁盘相同。

83f92c5a-4655-11eb-8b86-12bb97331649.png

843dc644-4655-11eb-8b86-12bb97331649.png

随机读写IOPS

Portworx和OpenEBS在随机IOPS测试中表现出最好的结果。这次,OpenEBS在写入方面的IOPS比本地AzurePVC更好,这在技术上几乎是不可能的。它很可能与在测试用例运行的不同时间处的Azure存储负载有关。

848acc50-4655-11eb-8b86-12bb97331649.png

84d47328-4655-11eb-8b86-12bb97331649.png

读写延迟

延迟读取获胜者与上次相同。LongHorn和OpenEBS几乎是PortWorx的两倍。这仍然不错,因为本机Azurepvc比大多数其他经过测试的存储要慢。但是,在OpenEBS和Longhorn上写入期间的延迟更好。GlusterFS仍然比其他存储要好。

85132a32-4655-11eb-8b86-12bb97331649.png

8574de3a-4655-11eb-8b86-12bb97331649.png

顺序读/写

顺序读/写测试显示的结果与随机测试相似,但是Ceph的读性能比GlusterFS高2倍。写入结果几乎都处于同一水平,OpenEBS和Longhorn达到了相同的水平。

85c0e802-4655-11eb-8b86-12bb97331649.png

862ab3e0-4655-11eb-8b86-12bb97331649.png

混合读/写IOPS

最后一个测试用例验证了混合读写IOPS,在读写方面,OpenEBS交付的速度几乎是PortWorx或Longhorn的两倍。

897613d2-4655-11eb-8b86-12bb97331649.png

89cd2ec4-4655-11eb-8b86-12bb97331649.png

结论

该文章验证了一个开放源代码项目在一年内可以有多大的变化!作为演示,让我们看一下在完全相同的环境下,OpenEBScStor和OpenEBSMayaStor的IOPS的比较。

8a03a8f0-4655-11eb-8b86-12bb97331649.png

OpenEBScStor和MayaStor之间的混合读写IOPS比较

在选择存储空间时,请仅将结果作为标准之一,不要仅根据文章做出最终判断。我们可以从上述的测试中得出以下结论:

  • Portworx和OpenEBS是AKS上最快的容器存储。

  • 围绕NVMe的稳健设计,OpenEBS似乎已成为最好的开源容器存储选项之一。

  • 对于硬件集群,Ceph是最好的开源后端存储。对于公共云而言,操作过于复杂,最终与默认的云存储类相比并没有增加太多价值。

  • 对于简单的块存储用例,Longhorn绝对是有效的选择,它与OpenEBSJiva后端非常相似。

当然,以上只是评测容器存储选项的一种方法。存储评测应该还包括缩放和稳定性等。后期将密切关注CNCF存储领域中其他正在发展的项目,并从性能测试和扩展中带来跟多有趣的更新。

参考链接

1.https://medium.com/volterra-io/kubernetes-storage-performance-comparison-9e993cb27271

2.https://medium.com/volterra-io/kubernetes-storage-performance-comparison-v2-2020-updated-1c0b69f0dcf4

责任编辑:xj

原文标题:K8s最常见的存储解决方案之性能评测

文章出处:【微信公众号:存储社区】欢迎添加关注!文章转载请注明出处。


原文标题:K8s最常见的存储解决方案之性能评测

文章出处:【微信号:TopStorage,微信公众号:存储社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

如何通过YARN设计分布式资源动态调度协同分配系统

  Storm on yarn是目前主流的分布式资源调度框架,但其存在需要人工干预和无法根据资源可用....
发表于 03-09 17:29 2次 阅读
如何通过YARN设计分布式资源动态调度协同分配系统

CCUS技术对于降低全球二氧化碳排放量至关重要

英国知名研究公司IDTechEx在本报告中全面介绍了全球CCUS产业,并对未来20年影响该产业的技术....
的头像 MEMS 发表于 03-09 14:35 95次 阅读
CCUS技术对于降低全球二氧化碳排放量至关重要

分布式存储可解决新基建的数据挑战

我国5G已正式进入规模化商用阶段,边缘侧连接需求较大的业务场景迎来蓬勃发展的新契机。
的头像 如意 发表于 02-17 16:23 491次 阅读
分布式存储可解决新基建的数据挑战

详解四种软件架构的应用和优缺点

如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了....
的头像 如意 发表于 02-15 15:04 490次 阅读
详解四种软件架构的应用和优缺点

这8个因素会导致HPC存储成本增加

高性能计算要求存储系统具有必要的性能和容量,以确保可靠的操作,但是这些系统的价格很高。 高性能计算(....
的头像 存储D1net 发表于 02-13 11:58 220次 阅读
这8个因素会导致HPC存储成本增加

挖掘&quot;泰州队列&quot;数据价值,曙光ParaStor构建存储底座

  十余年前,复旦大学教授在泰州启动“泰州队列”项目,旨在建立一个国际领先的高质量、高标准的人群资源....
的头像 电子发烧友网工程师 发表于 02-13 09:52 331次 阅读
挖掘&quot;泰州队列&quot;数据价值,曙光ParaStor构建存储底座

在复杂的多云部署中,数据存储的最佳实践是什么

在复杂的多云部署中,数据存储的最佳实践是什么?哪种数据存储基础设施更能满足多云的需求? 多云部署为很....
的头像 Les 发表于 02-12 15:26 128次 阅读
在复杂的多云部署中,数据存储的最佳实践是什么

金泰克:专注存储20年,抓住信创机遇

1月16日,2021中国半导体投资联盟年会暨中国IC风云榜颁奖典礼在北京举办。深圳市金泰克半导体有限....
的头像 Les 发表于 02-02 16:14 388次 阅读
金泰克:专注存储20年,抓住信创机遇

新技术将氨无缝转化成氢 可直接用于燃料电池

据报道,西北大学的研究人员已经开发出了一种高效、环保的方法来将氨转化为氢。该研究成果已于近日被刊登在....
的头像 工程师邓生 发表于 01-31 11:44 1225次 阅读
新技术将氨无缝转化成氢 可直接用于燃料电池

华为鸿蒙系统之分布式游戏详解

“鸿蒙”(Harmony)无疑是近期以来最为热点的话题之一,而在技术层面上,“分布式”又是鸿蒙最核心....
的头像 如意 发表于 01-30 10:42 822次 阅读
华为鸿蒙系统之分布式游戏详解

OPPO公开与汽车相关的新专利

企查查信息显示,OPPO广东移动通信有限公司日前新增多条专利信息,其中一条与汽车相关,名称为“汽车、....
的头像 Les 发表于 01-28 16:45 428次 阅读
OPPO公开与汽车相关的新专利

美光:市场对DRAM的需求将有增无减,供需紧张的情况将延续好几年

集微网消息,据MoneyDJ报道,存储器大厂美光执行副总裁兼首席商务官Sumit Sadana表示,....
的头像 Les 发表于 01-28 15:54 565次 阅读
美光:市场对DRAM的需求将有增无减,供需紧张的情况将延续好几年

SDS加快侵蚀传统存储份额,中国SDS市场迎来井喷行情

2020年已经过去了,但是,疫情的影响还是严重影响了全球人民的生活,我都一年没有见到海外上学的闺女了....
的头像 高端存储知识 发表于 01-27 16:12 433次 阅读
SDS加快侵蚀传统存储份额,中国SDS市场迎来井喷行情

2021年28家顶级企业数据存储公司榜单

  企业数据存储是一个集中的信息存储库,通常提供数据管理,保护和共享功能。由于企业处理海量的关键业务....
的头像 存储社区 发表于 01-27 16:08 763次 阅读
2021年28家顶级企业数据存储公司榜单

2021年14个最佳的超融合基础架构解决方案供应商

  本文列出的顶级超融合基础设施顶级供应商是一种年度混合产品,最能代表当前的市场状况。文章基于每个平....
的头像 存储社区 发表于 01-27 16:01 521次 阅读
2021年14个最佳的超融合基础架构解决方案供应商

2020年全球主流存储厂商全面盘点

2020年由于疫情,我们渡过了不平凡的一年,上半年全球存储市场受到了一定影响,但也加速了远程办公等企....
的头像 存储社区 发表于 01-27 15:58 773次 阅读
2020年全球主流存储厂商全面盘点

你需要部署这块芯片 引领SSD创新,满足下一代云数据中心需求

数据中心建设全面加速,未来面临巨大能耗挑战。在采用新型制冷方式以及高密度计算,以减低数据中心能耗之时....
的头像 大普微 发表于 01-27 15:11 443次 阅读
你需要部署这块芯片 引领SSD创新,满足下一代云数据中心需求

基于5G的无线分布式将成智能电网的未来

5G的全称是第五代移动通信技术,是最新一代的数字蜂窝网络技术,于2019年开始在世界各地进行大规模部....
发表于 01-25 16:55 494次 阅读
基于5G的无线分布式将成智能电网的未来

龙源电力与联盛、傲普携手开创分布式能源领域的新篇章

2021年1月21日上午,乌兰察布市兴和县县委书记付海青、龙源电力集团计划部主任李予州、龙源内蒙公司....
的头像 Les 发表于 01-22 17:23 407次 阅读
龙源电力与联盛、傲普携手开创分布式能源领域的新篇章

讯维分布式可视化显控系统软件2.0版本 全新升级优化上线

近日,讯维对其核心产品—分布式可视化显控系统的2.0版本控制软件进行了全新的升级与优化,并于2021....
的头像 讯维官方公众号 发表于 01-22 15:42 327次 阅读
讯维分布式可视化显控系统软件2.0版本 全新升级优化上线

智能化,存储发展的又一风向标

如果将工业设备与一台闪存阵列放在一起,会发生什么?你可能想象不到,日久天长,闪存控制器中的线路板可能....
的头像 Les 发表于 01-22 11:38 700次 阅读
智能化,存储发展的又一风向标

国内半导体业又站在了新的历史交叉点上,该如何砥砺前行

2021开局的一系列变局,让国内半导体业又站在了新的历史交叉点上,该如何砥砺前行? 2021年1月1....
的头像 Les 发表于 01-22 09:44 644次 阅读
国内半导体业又站在了新的历史交叉点上,该如何砥砺前行

过去一年中,服务器与存储领域的热门趋势都有哪些

回顾2020年,我们的工作和生活模式发生了重大变化,一场突如其来的疫情加速了企业数字化转型的脚步,远....
的头像 Les 发表于 01-21 17:16 408次 阅读
过去一年中,服务器与存储领域的热门趋势都有哪些

分布式光伏将会是有着万亿级市场潜力的新蓝海

过去的2020年,我国的光伏行业并未因疫情影响而放慢脚步,而是保持平稳增长态势。2021年中国进入“....
的头像 Les 发表于 01-19 17:28 369次 阅读
分布式光伏将会是有着万亿级市场潜力的新蓝海

中国移动采购与招标网发布“2020年至2022年磁盘阵列集中采购中标候选人公示”

浪潮存储在本次集采中的入围型号是高端存储AS6800G5和中高端存储AS5500G5,这两款存储也是....
的头像 浪潮存储 发表于 01-18 16:08 996次 阅读
中国移动采购与招标网发布“2020年至2022年磁盘阵列集中采购中标候选人公示”

华为鸿蒙系统 HarmonyOS 2.0 京东、美团、优酷等软件,分布式跨设备交互演示及简单说明

华为鸿蒙系统 HarmonyOS 2.0  京东、美团、优酷等软件,分布式跨设备交互演示及简单说明 ...
发表于 01-14 09:52 404次 阅读
华为鸿蒙系统 HarmonyOS 2.0  京东、美团、优酷等软件,分布式跨设备交互演示及简单说明

电动汽车中的分布式电池管理系统

在电动汽车应用中,为了满足交流电机负载的严苛要求,内部电池组电压不低于 800V。这相当于在汽车底盘....
的头像 德州仪器 发表于 01-13 13:50 363次 阅读
电动汽车中的分布式电池管理系统

鸿蒙和LiteOS的内核都是一样的名字,可它们究竟有什么不同呢?

分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理....
的头像 电子发烧友网工程师 发表于 01-13 10:17 537次 阅读
鸿蒙和LiteOS的内核都是一样的名字,可它们究竟有什么不同呢?

2021年的数字存储预测第二部分:磁记录的预测

  这是2021年数字存储和存储器行业的最新状态和预测的第二部分。第一部分涉及磁记录的预测(HDD和....
的头像 存储社区 发表于 01-12 09:27 443次 阅读
2021年的数字存储预测第二部分:磁记录的预测

2021年的数字存储预测第一部分:磁记录方面的进展

  本篇文章是关于数字存储和内存以及使用这些技术构建系统的三部分中的第一部分,将讨论磁记录方面的进展....
的头像 存储社区 发表于 01-12 09:21 362次 阅读
2021年的数字存储预测第一部分:磁记录方面的进展

Pure Storage或被戴尔、联想收购 其股价应声上涨,涨幅5.2%

  据外媒Seeking Alpha消息,Betaville上个月曾在PSTG上进行过推测,猜测Pu....
的头像 存储社区 发表于 01-12 09:11 640次 阅读
Pure Storage或被戴尔、联想收购 其股价应声上涨,涨幅5.2%

服务器渠道转型做存储是否还有机会 如果有机会,如何做

前言 大家都知道,服务器的毛利是比较薄的,最少相对存储来说是这样的。因此,每年都有很多IT渠道转型,....
的头像 高端存储知识 发表于 01-12 09:08 479次 阅读
服务器渠道转型做存储是否还有机会 如果有机会,如何做

海康存储Elite 7移动固态硬盘(PSSD)的使用测评

  大家好,我是黄昏百分百,今天为大家带来的是海康存储 Elite 7 移动固态硬盘(PSSD)的使....
的头像 海康存储 发表于 01-12 09:04 574次 阅读
海康存储Elite 7移动固态硬盘(PSSD)的使用测评

雅典娜云池将投资50亿元参与区块链存储项目的生态建设

  日前,在2020年度成都分布式存储峰会上,雅典娜云池与合作伙伴共同宣布,将投资50亿元参与区块链....
的头像 电子发烧友网工程师 发表于 01-07 17:24 544次 阅读
雅典娜云池将投资50亿元参与区块链存储项目的生态建设

基于Labview多通道数据采集系统

  多通道数据采集系统包括采集温度、转速等信号,具有登录、数据采集、数据存储、数据分析等; 数据存储....
的头像 labview学习日记 发表于 01-07 09:17 646次 阅读
基于Labview多通道数据采集系统

IPFS存储的选型问题

做SDS存储的都知道,现在IPFS挖矿项目很多。虽然西瓜哥平时不太关心区块链的东西,但IPFS挖矿,....
的头像 高端存储知识 发表于 01-06 17:52 311次 阅读
IPFS存储的选型问题

2021年最热门的云原生存储解决方案之一:容器原生存储

  存储是“容器即服务”平台最关键的组件之一。容器原生存储将基础存储服务公开给容器和微服务。像软件定....
的头像 存储社区 发表于 01-06 17:48 488次 阅读
2021年最热门的云原生存储解决方案之一:容器原生存储

NetApp和Hammerspace最近开始谈论“无存储” 是个噱头吗

  存储圈有两个厂商NetApp和Hammerspace最近开始谈论“无存储”。这是从无服务器计算中....
的头像 存储社区 发表于 01-06 17:44 396次 阅读
NetApp和Hammerspace最近开始谈论“无存储” 是个噱头吗

AWS Outposts对本地存储供应商构成了生存威胁吗

  去年年底,亚马逊推出了AWS Outposts,这是一项基于融合基础架构机架的完全托管服务,包括....
的头像 存储社区 发表于 01-06 17:37 582次 阅读
AWS Outposts对本地存储供应商构成了生存威胁吗

分布式光纤测温系统DTS-BLY-5S介绍

分布式光纤测温系统DTS-BLY-5S
发表于 01-06 07:45 0次 阅读
分布式光纤测温系统DTS-BLY-5S介绍

分布式文件系统主从式的伸缩性架构设计

Hadoop当中负责分布式存储的HDFS,被定义为分布式文件系统,对于进入到平台当中的数据,提供高效....
发表于 01-05 10:42 200次 阅读
分布式文件系统主从式的伸缩性架构设计

教你用蒲公英X1零基础搭建一个云盘

现在手机在工作生活中的地位越来越高,用一段时间就会存储大量资料和数据,所以虽然现在手机的存储空间越来....
的头像 Les 发表于 01-03 11:20 580次 阅读
教你用蒲公英X1零基础搭建一个云盘

2021年,非结构化数据的对象和文件存储的融合将有所增加

  容器将改变存储解决方案架构。它们的影响将与服务器虚拟化和云计算相当。混合云的灾难恢复方案将节省数....
的头像 存储社区 发表于 01-03 10:43 695次 阅读
2021年,非结构化数据的对象和文件存储的融合将有所增加

浪潮存储:加大对全闪存储的投入,拥抱未来智能世界

智慧时代的来临意味着算力将成为企业在未来决胜的关键因素。现在,数据已经成为重要的生产要素,不仅类型增....
的头像 Les 发表于 12-31 14:00 362次 阅读
浪潮存储:加大对全闪存储的投入,拥抱未来智能世界

补贴来临 分布式光伏的风口又起

近年来,随着我国光伏行业的快速发展,光伏发电已经慢慢过渡到“平价上网”时代。技术的持续创新,推动发电....
的头像 Les 发表于 12-30 14:26 580次 阅读
补贴来临 分布式光伏的风口又起

华为针对数据存储两大业界难题,发布了2021年奥林帕斯悬红

12月29日,华为针对数据存储两大业界难题,发布了2021年奥林帕斯悬红,奖励全球在数据存储领域取得....
的头像 Les 发表于 12-30 13:39 679次 阅读
华为针对数据存储两大业界难题,发布了2021年奥林帕斯悬红

曙光存储支撑国家气象S2S研究:强大处理能力,支撑数值模式发展需求

  气候模式系统的研发与升级是当前气象界关注的焦点。作为国家气象科技创新工程的三大主要项目之一,由国....
的头像 电子发烧友网工程师 发表于 12-29 14:22 291次 阅读
曙光存储支撑国家气象S2S研究:强大处理能力,支撑数值模式发展需求

关于itc可视化分布式综合管理系统的核心技术分析

可视化分布式综合管理平台主要应用于指挥中心、监控中心、展厅等大型场所,可以让分布在不同地点的音视频信....
的头像 火花 发表于 12-28 15:39 415次 阅读
关于itc可视化分布式综合管理系统的核心技术分析

英特尔未来存储该如何发展

  在传出与SK海力士的交易之后,英特尔未来存储又该如何发展? 近日,英特尔在线上举办2020内存存....
的头像 高端存储知识 发表于 12-25 10:56 826次 阅读
英特尔未来存储该如何发展

分布式光伏的市场需求“变了”

12月12日,国家主席习近平在气候雄心峰会上通过视频发表题为《继往开来,开启全球应对气候变化新征程》....
发表于 12-23 16:40 190次 阅读
分布式光伏的市场需求“变了”

亚马逊宣布将推迟向第三方卖家增收储存和快递费用计划

12 月 23 日,美国当地时间周二,亚马逊宣布将推迟向第三方卖家增收储存和快递费用的计划,直到 2....
的头像 工程师邓生 发表于 12-23 09:11 379次 阅读
亚马逊宣布将推迟向第三方卖家增收储存和快递费用计划

分布式光纤测温系统DTS-BLY-5S介绍

分布式光纤测温系统DTS-BLY-5S系统的特点
发表于 12-22 06:49 0次 阅读
分布式光纤测温系统DTS-BLY-5S介绍

分布式声波传感系统DAS产品介绍

分布式声波传感系统DAS
发表于 12-21 07:48 0次 阅读
分布式声波传感系统DAS产品介绍

陈世卿:未来的超级计算都是分布式

12月18日-20日,2020网易未来大会在杭州盛大举行。大会以“洞觉·未见”为主题,汇聚了全球最强....
的头像 如意 发表于 12-18 14:13 329次 阅读
陈世卿:未来的超级计算都是分布式

分布式光纤应变传感器技术应用案例

 军用海光缆防锚害监测预警项目      胜利油田海底管道应变监测预警项目   由于海洋环境的特殊性,地震、地质沉降、锚...
发表于 12-17 16:35 1717次 阅读
分布式光纤应变传感器技术应用案例

跟阿斌一起学鸿蒙(4). 分布式Hello Harmony的N种写法

鸿蒙OS是一个分布式操作系统,而Ability作为它调度的基本单元,那么,一个分布式Hello Harmony可以有几种写法呢? # 分布式...
发表于 12-10 14:59 303次 阅读
跟阿斌一起学鸿蒙(4). 分布式Hello Harmony的N种写法

分布式数据采集系统同步的方法

本文介绍了基于SAR ADC的系统和基于sigma-delta (∑-Δ) ADC的分布式数据采集系统同步的传统方法,且探讨了这两种架构...
发表于 11-23 10:33 101次 阅读
分布式数据采集系统同步的方法

[文章] 【HarmonyOS HiSpark IPC DIY Camera试用连载 】鸿蒙OS内核如何启动第一个用户进程init_lite

1.  鸿蒙OS编译知识OpenHarmony源码编译原理(原理引自中科创达OpenHarmony研究组 鸿蒙OS开源代码精要解读之—...
发表于 11-20 16:44 202次 阅读
[文章] 【HarmonyOS HiSpark IPC DIY Camera试用连载 】鸿蒙OS内核如何启动第一个用户进程init_lite

【HarmonyOS HiSpark IPC DIY Camera试用连载 】鸿蒙OS内核如何启动第一个用户进程init_lite

1.  鸿蒙OS编译知识OpenHarmony源码编译原理(原理引自中科创达OpenHarmony研究组 鸿蒙OS开源代码精要解读之—...
发表于 11-20 10:27 101次 阅读
【HarmonyOS HiSpark IPC DIY Camera试用连载 】鸿蒙OS内核如何启动第一个用户进程init_lite

HarmonyOS应用开发-分布式设计

设计理念HarmonyOS 是面向未来全场景智慧生活方式的分布式操作系统。对消费者而言,HarmonyOS 将生活场景中的各类终端进行...
发表于 09-22 17:11 404次 阅读
HarmonyOS应用开发-分布式设计