爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      【RDMA】14. RDMA之Memory Window

      首页 知识中心 其他 文章详情页

      【RDMA】14. RDMA之Memory Window

      2025-02-21 08:58:35 阅读次数:13

      Key,权限,绑定

      我们在Memory Region一文中介绍过Memory Region,它是一片由用户注册的特殊的内存区域:一方面其中的内容不会被换页到硬盘中,另一方面RDMA网卡中记录了它的地址转换关系,使得硬件拿到用户指定在WR中的虚拟地址之后找到对应的物理地址。

      本文我们来讲解Memory Window的概念,它是一种基于Memory Region的、更灵活的内存管理单元。除了MW的概念之外,本文也会更详细的介绍一些RDMA领域的内存相关概念,比如L_Key/R_Key等。本文配合Memory Region阅读效果更佳,建议先读者温习一下。

      Memory Window是什么

      Memory Window简称MW,中文就翻译成内存窗口吧。是一种由用户申请的,用于让远端节点访问本端内存区域的RDMA资源。每个MW都会绑定(称为bind)在一个已经注册的MR上,但是它相比于MR可以提供更灵活的权限控制。MW可以粗略理解为是MR的子集,一个MR上可以划分出很多MW,每个MW都可以设置自己的权限。MW和MR的关系如下图所示:

      【RDMA】14. RDMA之Memory Window

      MR与MW的关系

      内存的访问权限控制

      为了后文说明为何设计MW,我们先来把MR和MW都涉及的权限控制讲解一下。

      MR/MW的权限配置

      这里的权限,指的是本端/对端节点,对于本端内存的读/写权限,它们两两组合形成了四种权限:

        本端 对端
      读 Local Read Remote Read
      写 Local Write Remote Write

      除了这四种权限之外,还有Atomic权限等,不在本文讨论范围内。

      上表中这四种权限中最低的是本地读(Local Read),是用户必须赋予MR/MW的权限,因为如果一块内存本地的用户都无法访问的话,那就失去意义了;另外还有个限制,如果某个MR需要配置远端写(Remote Write)或者还没介绍的远端原子操作权限(Remote Atomic),那么也一定要配置本地写(Local Write)权限。在此约束之下,每个MR或者MW都可以按需配置权限,比如我们注册的一个MR需要允许远端节点写入数据,而不允许读,那么我们就打开Remote Write权限,关闭Remote Read权限。这样HCA(网卡)收到对端发起的对这个MR范围内的某个地址的WRITE请求之后,就可以予以放行;而HCA收到对端对这个MR的READ操作时,就会拒绝这个请求,并返回错误信息给对端。

      Memory Key

      上述的访问权限配置,并不能杜绝恶意用户对于本地或者远端内存的访问。比如某个节点给了一块内存区域的Remote Write权限,那么岂不是任意远端节点(进程)只要传入了合法的地址信息,都可以对这片区域进行写入了?因此,IB规范设计了Memory Key,简单理解它就是访问MR的钥匙机制,只有持有正确的钥匙,才能打开MR/MW的大门。

      Key是一串数字,由两部分组成:24bit的Index以及8bit的Key:

      【RDMA】14. RDMA之Memory Window

      L_Key/R_Key的组成

      其中,Index用于HCA快速索引到本地的虚拟-物理地址转换表等MR相关的信息,而Key用于校验整个字段的合法性,以防止未授权的用户任意传递Index。

      Memory Key按照用途分为两种,Local Key和Remote Key:

      L_Key

      即Local Key,关联到一个MR上,用于HCA访问本端内存。当本端的某个进程试图使用一个已经注册的MR的内存时,HCA会校验其传递的L_Key。并且利用L_Key中的索引查找地址转换表,把虚拟地址翻译成物理地址然后访问内存。

      我们在SRQ一文中描述过sge,sge由起始地址、长度和秘钥组成。用户在填写WR时,如果需要HCA访问本端内存,那么就需要通过一个sge的链表(sgl)来描述内存块,这里sge的秘钥填的就是L_Key,也就是下图中的key1和key3,他们分别是MR1的L_Key和MR2的L_Key。如果没有L_Key,那么任何一个本地用户进程都可以指挥硬件访问其他本地用户注册的MR的内容,硬件也难以高效的将虚拟地址翻译成物理地址。

      【RDMA】14. RDMA之Memory Window

      L_Key的作用

      R_Key

      即Remote Key,关联到一个MR或者MW上,用于远端节点访问本端内存。当远端节点试图访问本端的内存时,一方面本端的HCA会校验R_Key是否合法,另一方面会利用R_Key中的索引查地址转换表,把虚拟地址翻译成物理地址然后访问内存。

      凡是RDMA操作(即Write/Read/Atomic),用户都要在WR中携带远端内存区域的R_Key。

      【RDMA】14. RDMA之Memory Window

      R_Key的作用

      IB规范通过上述两种机制,来确保MR可以按照用户的期望被正确且安全的访问。我们用一个比喻来总结下MR/MW权限控制相关的内容:

      A给自己的房间(MR)配了两把钥匙(Memory Key),一把留作自用(L_Key),另一把钥匙(R_Key)邮寄(可以是任何通信方式)给了B。B可以在A不在家的时候(本端CPU不感知远端节点对本地内存的RDMA操作),通过钥匙(R_Key)打开门。打开门之后,可能B只能隔着玻璃查看房间的摆设(A只给了这个MR远程读权限),或者进入房间内发现漆黑一片什么也看不到,但是可以向房间里放物品(A只给了这个MR远程写权限),当然也有可能没有玻璃也开了灯(同时给了远程读写权限)。

      为什么要有MW

      简而言之,设计MW的目的就是想更灵活的控制内存的远程访问权限。

      Memory Region一文中我们介绍过用户注册MR的过程,需要从用户态陷入内核态,调用内核提供的函数pin住内存(防止换页),然后制作虚拟-物理地址映射表并下发给硬件。

      因为MR是由内核管理的,如果用户想修改一个已经存在的MR的信息,比如我想收回某个MR的远端写权限,只保留远端读权限;或者想要使一个之前已经授权给远端节点的R_Key失效,那么用户需要通过重注册MR(Reregister MR)接口来进行修改,该接口等价于先取消注册MR(Deregister MR),然后注册MR(Register MR)。上述流程需要陷入内核态来完成,而这个过程是耗时较长的。

      不同于需要通过控制路径修改权限的MR,MW在创建好之后,可以通过数据路径(即通过用户态直接下发WR到硬件的方式)动态的绑定到一个已经注册的MR上,并同时设置或者更改其访问权限,这个过程的速度远远超过重新注册MR的过程。

      那么现在为了使一片内存能够被远端节点进行RDMA WRITE/READ操作,我们就拥有了注册MR以及注册MW然后绑定到一个已注册的MR两种方式,它们都会产生一个R_Key来提供给远端节点。前一种方式准备阶段的步骤简单,但是不够灵活,一旦注册之后修改起来会比较麻烦;后一种方式相比前一种多了注册MW和绑定MW到MR两种操作,但是可以方便迅速的控制远端访问权限。

      MW和MR权限的关系

      也许有的读者会想到,MR申请时配置了自己的权限,MW绑定到MR时也会配置自己的权限,这两者的权限是什么关系呢?IB规范在10.6.7.2.2节有专门介绍:

      When binding a Memory Window, a Consumer can request any combination of remote access rights for the Window. However, if the associated Region does not have local write access enabled and the Consumer requests remote write or remote atomic access for the Window, the Channel Interface must return an error either at bind time or access time.

      总结来说,如果想要给MW配置远程写或者远程原子操作(Atomic)权限,那么它绑定到的MR必须有本地写权限,其他情况下两者权限互不干扰:远端用户用MW,就要遵循MW的权限配置;远端用户用MR,就要遵循MR的权限配置。

      用户接口

      老样子,用户接口时我们按照控制路径和数据路径来分类:

      控制路径

      MW支持增、删和查,不能直接修改:

      创建——Allocate MW

      申请MW,主要是创建MW相关的软件结构和让硬件做好准备,用户需要指定后文中介绍的MW的类型。这个接口会产生一个Memory Window的句柄,用户以后可以用这个句柄指代这个MW。

      注意此时MW没有绑定到MR上,处于不可从远端访问的状态。

      删除——Deallocate MW

      取消注册MW。很好理解,就是销毁相关资源。

      查询——Query MW

      查询MW的信息,包括R_Key及其状态、MW类型以及PD等。

      需要再次强调的是,虽然这个Verbs在IB规范中有描述,但是并没有在RDMA软件栈中实现相关的API。类似情况的Verbs接口还有不少,RDMA软件栈以实用为原则,没有用户需求的接口一般都没有实现。

      数据路径

      MW在数据路径有一套独特的接口,分为Bind和Invalidate两类:

      绑定——Bind

      Bind(ing)意为“绑定”,指的是将一个MW“关联”到一个已经注册的MR的指定范围上,并配置一定的读写权限。绑定的结果会产生一个R_key,用户可以把这个R_Key传递给远端节点用于远程访问。注意一个MW可以被多次绑定,一个MR上也可以绑定多个MW。如果一个MR还有被绑定的MW,那么这个MR是不能被取消注册的。

      【RDMA】14. RDMA之Memory Window

      Bind的软硬件交互

      Bind有两种方式,一种是调用Post Send接口下发Bind MW WR,一种是调用Bind MW接口。

      • Post Send Bind MW WR

      前文我们讲过,相比于MR,MW最大的优势就是可以从数据路径快速的配置权限。Post Send Bind MW WR操作,指的就是用户通过post send接口(比如ibv_post_send())下发一个WR到SQ中,这个WR的操作类型(比如SEND/RDMA WRITE/RDMA READ)被指定为BIND MW,此外WR中还携带有权限和要绑定到的MR的范围信息。与其他WR不同,下发Bind MW的WR之后,硬件并不会发送任何数据包,而是将MW绑定到了指定MR上。

      这种方式仅适用于后文介绍的Type 2的MW。

      • Bind MW

      虽然这是一个独立的接口,但是实际是在Post Send Bind MW WR外面又封装了一层。用户传入MW绑定的相关信息,包括权限及要绑定的MR的信息,驱动程序负责组装和下发WR到硬件中。该接口成功后,会将新生成的R_Key返回给用户。

      这种方式仅适用于后文介绍的Type 1的MW。

      上述两种操作的关系是这样的:

      【RDMA】14. RDMA之Memory Window

      两种Bind操作的关系

       

      无效化——Invalidate

      Invalidate意为无效化,指的是用户通过下发一个带有Invalidate操作码的WR到硬件而使一个R_Key无效的操作。

      需要强调的是,Invalidate操作的对象是R_Key而不是MW本身,即Invalidate之后的效果是:远端用户无法再使用这个R_Key访问对应的MW,而MW资源仍然存在,以后仍然可以生成新的R_Key给远端使用。

      Invalidate操作只能用于下文介绍的Type 2的MW。

      按照Invalidate操作的发起方不同,又可以进一步分成两种:

      • Local Invalidate

      本地无效操作。上层用户如果想在不回收MW资源的情况下,收回某个远端的用户的R_Key的权限。那么就可以下发一个Local Invalidate操作到SQ中,硬件收到之后会对相应的MR的配置进行修改。成功执行之后,如果持有这个R_Key的远端用户想要对MW进行RDMA操作,将会被本地的硬件拒绝并返回错误。

      因为是本地操作,所以硬件收到这个WR之后也不会发送消息到链路上。

      【RDMA】14. RDMA之Memory Window

      Local Invalidate操作的软硬件交互

      • Remote Invalidate

      远端无效操作。当一个远端用户不再使用一个R_Key之后,可以主动发送消息,让本端回收这个R_Key。远端用户下发一个带有此操作码的WR到SQ中,其硬件收到后,将会组装一个报文并发送到本端。本端硬件收到远端的Remote Invalidate操作之后,将会把对应的R_Key置为不可用状态。同Local Invalidate一样,此后对端将无法使用这个R_Key对对应的MW进行RDMA操作。

      【RDMA】14. RDMA之Memory Window

      Remote Invalidate操作的软硬件交互

      Invalidate操作也可以用在一些特殊的MR类型身上(并非常规用户通过ibv_reg_mr()注册的MR),但超出了本文讨论范围,暂且不表。

      MW的类型

      根据实现和应用场景的不同,IB规范对MW进行了分类:

      Type 1

      Type 1的MW通过PD和一个QP关联,不会绑定到一个QP上,所以也不会影响销毁同一个PD下的QP。

      Type 1的MW的R_Key的key域段由驱动和硬件掌握,这里“掌握”的意思是,由驱动和硬件分配key,而不是上层用户。这也是前文中说Type 1的MW不能被执行Invalidate操作的原因。如果Type 1 MW的用户想要使一个R_Key失效,那么重新通过Bind MW接口绑定一次这个MW,硬件或者驱动就回自动分配一个新的R_Key的key域段,原有的R_Key也就失效了。

      此外,如果用户暂时想要使一个MW不再绑定到任何MR,但是又想保留相关的资源而不是销毁这个MW,那么可以通过调用Bind MW接口,并将MW长度设置为0来实现。

      IB规范允许多个Type 1 MW绑定到同一个MR上,范围可以相互覆盖。

      Type 2

      Type 2的MW赋予了用户更大的自由度,其R_Key的key域段由用户掌握,即用户想怎么分配就怎么分配。前文已经讲过,用户通过Post Send Bind MW WR操作来进行绑定,这个过程并不会返回R_Key。用户必须记住Allocate MW时的index,并且和其选择的8 bit key组成R_Key并发送给对端。

      用户可以通过前文介绍过的Invalidate操作来使一个R_Key无效,如果想要分配一个新的R_Key到MW上,必须先通过Invalidate操作无效之前的R_Key。

      与Type 1不同,Type 2的MW不支持0长度的绑定。

      IB规范同样也允许多个Type 2绑定到同一个MR上,范围可以相互覆盖。

      此外,根据绑定关系不同,Type 2还可以分为两种实现方式,它们的差异仅在于和QP的绑定关系上。

      Type 2A

      通过QPN和一个QP关联,也就是说远端访问这个MW范围内的内存时候,除了R_Key之外,还必须指定正确的QPN。如果一个QP上还要绑定的Type 2A的MW,那么这个QP不可以被销毁。

      Type 2B

      通过QPN和PD与一个QP关联,比Type 2A多了个PD的校验,即远端通过RDMA操作访问MW的内存时,除了QPN要正确之外,其指定的本端QP的PD要与绑定这个MW时的PD相同。另外,与Type 2A不同,QP如果还有Type 2B MW绑定关系时是可以被销毁的。

      这里IB规范中原有的介绍就比较分散,我们来简单总结一下几种MW的异同:

        Type 1 Type 2A Type 2B
      关联关系 PD QP PD + QP
      R_Key的key域段归属 驱动+硬件 用户 用户
      绑定方式 Bind MW
      绑定后之前的R_Key自动失效
      Post Send Bind MW WR
      绑定前需要先使之前的R_Key无效化
      Post Send Bind MW WR
      绑定前需要先使之前的R_Key无效化
      是否支持零长度 是 否 否
      是否支持Invalidate 否 是 是
      关联的QP是否可以被销毁 - 否 是

      此外,IB规范中对上述几种类型还有如下描述:HCA必须实现Type 1的MW,另外可以仅选择实现Type 2A和2B中的一种。Type 1和Type 2的MW可以同时关联到同一个MR上。因为我了解到的应用程序中使用MW的情况不多,所以具体在什么场景下应该使用哪种MW也说不出所以然来,如果读者有对这方面的了解欢迎一起交流。

      好了,MW就讲到这里,到此为止RDMA技术中常见的资源就都介绍完了。

      鉴于一般支持RDMA的设备都比较昂贵,下一篇我将介绍如何通过软件模拟设备的方式——即Soft-RoCE进行一些编程实验。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/bandaoyu/article/details/120485072,作者:bandaoyu,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:【网络】如何判断网络达到瓶颈|网络查询命令

      下一篇:【Linux】CentOS、CentOS Stream、RedHat 和Fedora 之间的关系

      相关文章

      2025-05-14 10:33:16

      30天拿下Python之文件操作

      Python是一种高级编程语言,它提供了许多内置函数和模块来处理文件操作,主要包括:打开文件、读取文件、写入文件、关闭文件、获取目录列表等。

      2025-05-14 10:33:16
      Python , 使用 , 函数 , 文件 , 权限 , 目录
      2025-05-14 10:33:16

      30天拿下Rust之模式与模式匹配

      Rust语言以其强大的类型系统和所有权模型而著称,而模式与模式匹配则是Rust中一种非常强大且灵活的工具,它允许我们在编译时根据数据的结构进行条件分支处理。

      2025-05-14 10:33:16
      match , 代码 , 匹配 , 模式 , 模式匹配 , 绑定
      2025-05-14 10:03:05

      C++ 11新特性之bind

      std::bind是C++ 11中<functional>头文件提供的一个函数模板,它允许我们将函数或成员函数与其部分参数预先绑定在一起,形成一个新的可调用对象(英文为:Callable Object)。

      2025-05-14 10:03:05
      bind , std , 函数 , 参数 , 对象 , 绑定 , 调用
      2025-05-14 10:03:05

      C++ 11新特性之右值引用

      C++ 11中引入了一项关键特性——右值引用,极大地增强了C++在资源管理、性能优化和表达力方面的能力。通过理解并合理运用右值引用,我们可以编写出更高效、更简洁且不易出错的代码。

      2025-05-14 10:03:05
      右值 , 对象 , 常量 , 引用 , 构造函数 , 绑定
      2025-05-14 10:03:05

      Oracle数据库用户权限分析

      Oracle数据库用户权限分析

      2025-05-14 10:03:05
      Oracle , 分析 , 数据库 , 权限 , 用户
      2025-05-14 10:02:48

      SQL Server 账号管理1

      SQL Server 账号管理主要包含登录名、用户、架构、角色等管理。通过对账号的管理可以有效的提高数据库系统的安全性,规范运维及使用。

      2025-05-14 10:02:48
      Server , SQL , 对象 , 数据库 , 权限 , 用户
      2025-05-07 09:10:01

      基础—SQL—DCL(数据控制语言)之权限控制

      基础—SQL—DCL(数据控制语言)之权限控制

      2025-05-07 09:10:01
      主机名 , 数据库 , 权限 , 查询 , 用户
      2025-05-07 09:09:52

      基础—SQL—DCL(数据控制语言)之用户管理

      基础—SQL—DCL(数据控制语言)之用户管理

      2025-05-07 09:09:52
      mysql , 创建 , 数据库 , 权限 , 用户 , 访问
      2025-05-07 09:09:52

      基础—SQL—DCL(数据控制语言)小结

      基础—SQL—DCL(数据控制语言)小结

      2025-05-07 09:09:52
      mysql , SQL , 数据库 , 权限 , 用户 , 管理 , 语句
      2025-05-07 09:08:54

      【Linux】什么是Linux?

      【Linux】什么是Linux?

      2025-05-07 09:08:54
      Linux , 文件 , 权限
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5246905

      查看更多

      最新文章

      【Linux】什么是Linux?

      2025-05-07 09:08:54

      StorageClass和volumeClaimTemplates

      2025-04-16 09:26:27

      Vue学习笔记:$refs与ref

      2025-04-09 09:12:41

      JS之箭头函数与普通函数的区别

      2025-04-01 10:16:07

      centos6多网卡bond操作命令

      2025-03-26 09:05:38

      Vue3 v-model 指令用法详解

      2025-03-21 09:33:29

      查看更多

      热门文章

      Linux命令之键绑定bind

      2023-06-08 06:21:32

      【Linux for Hacker】————5、控制文件和目录权限

      2023-06-21 06:58:55

      Shiro-授权

      2023-05-16 09:43:03

      解决Jenkins用户没有权限“root is missing the Overall/Administer permission”的问题

      2023-06-15 06:05:16

      Jenkins(一)基于Role-based认证权限管理

      2023-06-15 06:00:54

      linux-facl权限入门-设置与查看facl权限

      2023-06-16 06:12:25

      查看更多

      热门标签

      linux java python javascript 数组 前端 docker Linux vue 函数 shell git 节点 容器 示例
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      Jira和Confluence的权限管理

      Vue学习笔记:v-model组件绑定

      特殊权限

      linux-文件与目录权限-0913

      Vue3 v-bind 指令用法

      Shiro-授权

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号