-
在Kubernetes中分配和管理CPU和内存资源可能很棘手,但也很容易。本文,我将向你展示什么是Kubernetes资源和限制以及如何管理它们。本文的目标是简单–如何帮助你快速调整项目中的Kubernetes资源信息,主要通过三种方式:1. 为容器和 Pod 分配CPU和内存资源2. Resources Quota: 限制namespace的资源消耗3. Limit Ranges:配置默认的CPU请求和限制为容器和 Pod 分配CPU和内存资源下图,解释了Kubernetes资源的度量单位,资源状态工作流以及如何使用资源限制。CPU和内存单位Kubernetes 中的一个 cpu 等于:1 AWS vCPU1 GCP Core1 Azure vCore1 Hyperthread 在带有超线程的裸机 Intel 处理器上以下,Deployment使用了内存资源和CPU资源的请求和限制将CPU和内存 请求 (request)和内存 限制 (limit)分配给一个容器更详细的信息和代码段:将内存资源分配给容器和Pod将CPU资源分配给容器和PodKubernetes最佳实践资源要求和限制应用程序开发人员在Azure Kubernetes Service(AKS)中管理资源的最佳实践Resources Quota: 限制namespace的资源消耗资源配额,通过 ResourceQuota 对象来定义,对每个namespace的资源消耗总量提供限制。它可以限制namespace中某种类型的对象的总数目上限,也可以限制命令空间中的 Pod 可以使用的计算资源的总上限。资源配额的工作方式如下:不同的团队可以在不同的namespace下工作,目前这是非约束性的,在未来的版本中可能会通过 ACL (Access Control List 访问控制列表) 来实现强制性约束。集群管理员可以为每个namespace创建一个或多个 ResourceQuota 对象。当用户在namespace下创建资源(如 Pod、Service 等)时,Kubernetes 的配额系统会 跟踪集群的资源使用情况,以确保使用的资源用量不超过 ResourceQuota 中定义的硬性资源限额。如果资源创建或者更新请求违反了配额约束,那么该请求会报错(HTTP 403 FORBIDDEN), 并在消息中给出有可能违反的约束。如果namespace下的计算资源 (如 cpu 和 memory)的配额被启用,则用户必须为 这些资源设定请求值(request)和约束值(limit),否则配额系统将拒绝 Pod 的创建。 提示: 可使用 LimitRanger 准入控制器来为没有设置计算资源需求的 Pod 设置默认值。以下,是对持久卷声明和namespace资源的配额定义。你可以使用该kubectl apply命令来设置namespace的配额限制。kubectl apply -f resource-quota.yaml — namespace backend如何使用配额的详细说明,请参考https://kubernetes.io/docs/concepts/policy/resource-quotas/Limit Ranges:配置默认的CPU请求和限制如果你的namespace有资源配额,那么默认内存限制是很有帮助的。将 LimitRange 添加到namespace,不仅会限制cpu和内存,还会为存储请求大小强制设置最小值和最大值。存储是通过 PersistentVolumeClaim 来发起请求的。执行限制范围控制的准入控制器会拒绝任何高于或低于管理员所设阈值的 PVC。更详细的信息和代码段。为namespace配置默认的 CPU 请求和限制限制名称空间的存储使用量Kubernetes中的 Limit Range工具:管理Kubernetes的CPU和内存Popeye 会扫描集群中是否存在与配置,资源和网络漏洞有关的问题,并生成有关所有问题的详细报告。Goldilocks 扫描Pod中的资源限制,并使用建议的资源创建报告。Kube-advisor 来自Azure团队的工具,可扫描容器中缺少的资源并限制请求。K9s+benchmark 提供了一个命令行界面(CLI),使你可以轻松地管理,监视甚至对 你喜欢的终端软件中的集群进行基准测试你还可以将这些工具与 Datadog, Grafana + Prometeus,Azure Monitor结合使用,以改善资源并限制监视。总结设置资源请求:获取有关特定应用程序/容器的CPU和内存使用情况的信息。设置资源限制:运行负载测试以检测高负载下容器的CPU和内存。监视容器的CPU和内存使用情况。监视持久卷使用情况。检查是否可以使用Limit Range应用资源限制使用配额(不建议在生产环境中应用配额)文章来源:K8s中文社区译者:王延飞原文链接:https://dzone.com/articles/easy-and-fast-adjustment-of-kubernetes-cpu-and-mem
-
SSH=Struts+Spring+Hibernate 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。 Struts 是一个很好的MVC框架,主要技术是Servlet和Jsp。Struts的MVC设计模式可以使我们的逻辑变得很清晰,让我们写的程序层次分明。基于Struts开发可以简化开发难度,提高开发效率。 Spring 提供了管理业务对象的一致方法,并鼓励注入对接口编程而不是对类编程的良好习惯,使我们的产品在最大程度上解耦。Hibernate 是用来持久化数据的,提供了完全面向对象的数据库操作。Hibernate对JDBC进行了非常轻量级的封装,它使得与关系型数据库打交道变得非常轻松。在Struts+Spring+Hibernate系统中,对象之间的调用流程如下: Struts——>Spring——>Hibernate JSP——>Action——>Service——>DAO——>Hibernate比如:1.Spring的配置文件bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" xmlns:tx="http://www.springframework.org/schema/tx"> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/samblog?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"> </property> <property name="user" value="root"></property> <property name="password" value="123456"></property> <property name="driverClass" value="org.gjt.mm.mysql.Driver"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"/> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQL5Dialect hibernate.hbm2ddl.auto=update hibernate.show_sql=false hibernate.format_sql=false </value> </property> <property name="mappingResources"> <list> <value>site/sambloger/domain/Users.hbm.xml</value> <value>site/sambloger/domain/Blog.hbm.xml</value> <value>site/sambloger/domain/Category.hbm.xml</value> <value>site/sambloger/domain/Comment.hbm.xml</value> </list> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- 配置Blog spring进行管理 服务层直接调用实现与数据库的CRUD--> <bean id="blogDao" class="site.sambloger.dao.impl.BlogDAOImpl"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean id="blogService" class="site.sambloger.service.impl.BlogServiceImpl" scope="prototype"> <property name="blogDao" ref="blogDao"/> </bean> <bean id="blogAction" class="site.sambloger.action.BlogAction"> <property name="blogService" ref="blogService"/> <property name="commentService" ref="commentService"/> </bean> <!-- 配置Comment --> <bean id="commentDao" class="site.sambloger.dao.impl.CommentDAOImpl"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean id="commentService" class="site.sambloger.service.impl.CommentServiceImpl" scope="prototype"> <property name="commentDao" ref="commentDao"/> </bean> <bean id="commentAction" class="site.sambloger.action.CommentAction"> <property name="commentService" ref="commentService"/> <property name="blogService" ref="blogService"/> </bean> <!-- 配置Users --> <bean id="usersDao" class="site.sambloger.dao.impl.UsersDAOImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="usersService" class="site.sambloger.service.impl.UsersServiceImpl" scope="prototype"> <property name="usersDao" ref="usersDao"/> </bean> <bean id="usersAction" class="site.sambloger.action.UsersAction"> <property name="userService" ref="usersService"></property> </bean></beans>2.Struts的配置文件 struts.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts> <package name="samblog" extends="struts-default" namespace="/"> <action name="init" class="blogAction" method="init"> <result name="success">/bloglist.jsp</result> </action> <action name="getBlog" class="blogAction" method="getBlog"> <result name="success">/displayBlog.jsp</result> </action> <action name="getAllNote" class="blogAction" method="getAllNote"> <result name="success">/notelist.jsp</result> </action> <action name="addComment" class="commentAction" method="addComment"> <result name="success" type="redirect">/getBlog</result> </action> </package></struts>3.Hibernate其中的一个配置文件:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping> <class name="site.sambloger.domain.Blog" table="blog"> <!--id标签表示映射到数据库中是作为主键 其他property表示普通键--> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="increment" /> </id><!--该标签加N方 会有一个字段叫category_id作为外键参照1(Category)的主键字段 并且用来存储这个主键的信息--> <many-to-one name="category" class="site.sambloger.domain.Category" lazy="false" cascade="all"> <column name="category_id" not-null="true" /> </many-to-one> <property name="title" type="java.lang.String"> <column name="title" length="400" not-null="true" /> </property> <property name="content" type="java.lang.String"> <column name="content" length="4000" not-null="true" /> </property> <property name="createdTime" type="java.util.Date"> <column name="created_time" length="10" not-null="true" /> </property><!--在一对多的关联中,在一的一方(Blog)设置inverse=”true”让多的一方来维护关联关系更有助于优化,因为可以减少执行update语句--> <set name="comments" inverse="true"> <key> <column name="blog_id" not-null="true" /> </key> <one-to-many class="site.sambloger.domain.Comment" /> </set> </class></hibernate-mapping>Spring框架的作用和好处: Spring框架提供了一个容器,该容器可以管理应用程序的组件,还提供了IoC和AoP机制,实现组件之间解耦,提高程序结构的灵活性,增强系统的可维护和可扩展性。 在SSH整合开发中,利用Spring管理Service、DAO等组件,利用IoC机制实现Action和Service,Service和DAO之间低耦合调用。利用AoP机制实现事务管理、以及共通功能的切入等。 功能是整合,好处是解耦。Hibernate中操作并发处理(乐观锁和悲观锁) Hibernate框架可以使用锁的机制来解决操作并发。 a.悲观锁 在数据查询出来时,就给数据加一个锁,锁定。这样其他用户再执行删、改操作时不允许。当占用着事务结束,锁会自动解除。 Hibernate采用的是数据库锁机制实现悲观锁控制。 缺点:将并发用户操作同步开,一个一个处理。当一个用户处理时间比较长时,效率会比较低。 b.乐观锁 允许同时更新提交,但是最快的会成功,慢的失败。 在记录中追加一个字段值,用该字段值当做版本。当最先提交者提交后,会自动将版本字段值提升,这样其他用户提交,会发现版本低于数据库记录目前版本,因此抛出异常提示失败。 特点:允许用户同时处理,但只能有一个成功,其他失败,以异常方式提示。SSH工作流程 a.启动服务器,加载工程以及web.xml. (实例化Lisener,Filter等组件,将Spring容器和Struts2控制创建) b.客户端发送请求,所有请求进入Struts2控制器。控制器根据请求类型不同,分别处理。 (action请求,*.action会进入struts.xml寻找<action>配置. 其他请求,*.jsp会直接调用请求资源,生成响应信息) c.Struts2控制器根据<action>配置调用一个Action对象处理。 整合方法一:将Action交给Spring容器 (Action对象由struts2-spring-plugin.jar插件提供的 StrutsSpringObjectFactory负责去Spring容器获取) 整合方法二:将Action置于Spring容器之外 (Action对象由struts2-spring-plugin.jar插件提供的 StrutsSpringObjectFactory负责创建,然后到Spring容器中寻找与Action属性匹配的Bean对象,给Action对象注入。(默认采用名称匹配规则) d.Struts2控制器执行defaultStack拦截器、Action对象、Result等组件处理. e.执行Action的execute业务方法时,如果使用Service或DAO采用Spring的IoC机制调用。 f.执行Result生成响应信息,执行后续拦截器处理 g.将响应信息输出。
-
1.敏捷项目管理基础1.1 项目管理和迭代开发方式项目的定义:一系列活动,有一个明确的目标或目的,并且必须在特定的时间和预算内依据规范完成项目管理:运用技能,方法与工具,为满足或超越项目有关各方对项目的要求与期望,所开展的各种计划,组织,领导控制等方面的活动。项目的三角:范围:要求做什么,也规定了不能做什么时间:必须完成的时间框架或最后期限成本:可用于项目的费用质量:产品的质量:项目的可交付成果的质量过程的质量:项目管理过程本身的质量项目管理的目的:在有限的资源投入条件下,在要求的时间内完成既定的项目目标。迭代开发模式 迭代式开发也被称作迭代增量式开发或迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。 在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度的小项目,被称为一系列的迭代。 每次迭代都包括了定义、需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成 系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。1.2 Scrum方法——3 3 3 53个理论支柱:-高透明性(Transparency)- 检查(Inspection)-适应(Adaptation)3个工件:-产品待办列表-迭代待办列表-潜在可交付的产品增量3个角色:-产品负责人Product Owner-Scrum Master-开发团队5个事件:-迭代计划会议 -迭代-迭代评审会议 -每日立会-迭代回顾会议1.3 KANBAN方法看板:一种可视化流程管理系统三个原则:可视化,限制在制品,管理流动五个核心实践:可视化工作流(价值流):工作流程,由各种工作项构成限制在制品数量:工作项在本状态数量的上限,取决与整体团队的能力度量与管理流动:让价值流动起来,方法:累计流量图协同改进:整个团队一起合作显示化流程规则:不同状态转换的规则Scrum方法还是KANBAN方法都是为了顺畅,高质量地交付有用的价值大家可以在华为云DevCloud平台中体验:cid:link_01.4 风险管理四个阶段:1.风险识别2.风险分析3.风险应对计划4.风险监控和控制
-
前言从系统角度来看,文件系统是对文件存储器空间进行组织、分配、负责文件存储并对存入的文件进行保护和检索的一个系统。它的目的是使用户和应用程序能够方便地管理存储器上的文件和目录,比如常见的对文件的增、删、改、查。每当我们操作一个文件的时候,实际都会涉及到存储器、管理系统、被管理文件,还有就是实施文件管理所需的数据结构。存储器,我们也叫存储介质,也就是电子设备用来存储数据信息的器件。(一)存储介质介绍存储介质,也就是用来存储信息的介质,从远古的石壁刻画,到古代的笔墨纸砚记录,再到电气时代的磁存储、光存储、半导体芯片存储。光盘存储已近逐渐地退出大众的视野,我们这里主要介绍磁存储和半导体存储。磁存储的代表就是机械硬盘,半导体存储已近被非常广泛地应用了,比如我们常用的U盘、SD卡、TF卡、固态硬盘等。机械硬盘因为它容量大、价格低,在个人电脑中广泛使用,固态存储速度快,功耗低,无噪音,同等容量的价格也比较的平民,在各种便携式存储设备中广泛使用。(二)固态存储固态存储,也就是不依赖机械传动,直接使用半导体芯片为介质的一种存储。大的分类可以分为两种: RAM和ROM。Flash其实也算是ROM的一种变种,现在广泛使用的 ROM 大部分都是基于Flash设计的。大部分固态硬盘的存储介质也是Flash。(1)RAM与ROMRAM(随机访问存储器):是一种临时存储器,用于保存正在运行时所需的数据和程序,可读可写,允许在需要时快速读取或写入数据,但它也是易失性存储器,设备断电时里面的数据会丢失。ROM(只读存储器) :用于存储固定的、不经常变化的数据和程序,它是只读的,通常在制造时被写入,并且其内容在正常操作期间不可更改。但它存在一些变种,如可擦写可编程只读存储器(EPROM)和闪存(Flash),它们允许有限次的可编程操作。Flash存储器 :它是一种非易失性存储技术,广泛用于各种电子设备、USB、固态硬盘等产品。它分为NOR Flash 和NAND Flash 两种(2) NOR Flash它采用 NOR(不或非)门结构,与NAND Flash相比,NOR Flash具有一些特定的特性和优势:读取速度快随机访问能力适用于代码存储写入擦除速度较慢低功耗NOR门结构NOR Flash, NOR就是“非或”的意思NOR门是由两个输入端(A和B)和一个输出端组成的。其输出取决于输入信号的状态,具体逻辑运算规则如下:输出为高电平(1)的条件:只有当A和B都为低电平(0)时,NOR门的输出才为高电平。输出为低电平(0)的条件:如果A或B中至少有一个为高电平,NOR门的输出就会是低电平。NOR门的逻辑运算符号通常用符号“+”表示,其输出(Y)可以表示为:Y = A + B(其中,“+”表示逻辑或运算)。NOR门的逻辑符号如下所示:(3) NAND FlashNAND Flash采用NAND门结构,与NOR Flash相比,它具有一些独特的特点和优势。高密度存储相对低成本擦写熟读快适用于大容量数据存储顺序访问NAND门结构:NAND门由两个输入端(A和B)和一个输出端组成。其输出取决于输入信号的状态,具体逻辑运算规则如下:输出为高电平(1)的条件:当A和B都为高电平时,NAND门的输出为低电平(0)。输出为低电平(0)的条件:只有当A和B中至少有一个为低电平时,NAND门的输出才为高电平。NAND门的逻辑运算符号通常用“⊼”(或称“AND非”)表示,其输出(Y)可以表示为:Y = A ⊼ B(其中,“⊼”表示逻辑AND非运算)。NAND门的逻辑符号如下所示:----- A --| | | NAND|---- Y B --| | -----(4)基于Flash的应用嵌入式设备中的应用在嵌入式设备,一般是直接使用Flash存储器来存储程序和代码,按总线类型,可以分为串行和并行总线接口,在嵌入式设备中使用的比较多的是SPI串行总线。比如常用来存储程序的SPI NOR Flash: PY25Q128HA、MX25L51245G、FM25Q128A、EN25QH128A、BY25Q128AS它的特点是容量较小,可以随机访问。组合应用我们日常生活中使用到的固态存储器,比如U盘、SD卡、TF卡、固态硬盘等,它里面除了Flash存储芯片外,还有主控芯片、DDR内存、接口、PCB电路板。Flash存储芯片:是主要的存储介质,通常采用NAND型闪存。主控芯片:是固态硬盘的核心控制单元,负责管理数据的读写、错误校正、垃圾回收和性能优化等任务。DDR(双数据速率缓存):用于缓存数据和提高读写速度接口:决定了存储设备与主板之间的数据传输速度和通信方式PCB电路板:提供了这些组件之间的电气连接下面是一个固态硬盘的内部器件,其它的固态存储设备也类似。我们日常使用到的固态存储设备,比如TF卡、SD卡、U盘等,一般内部使用的都是NAND flash,它的优点是:存储密度高、改写速度快,同等容量下价格相对比较便宜。(三)固态存储架构体系(1)NAND flash 特性我们在上面看到一块固态硬盘内部包括了主控芯片、DDR内存、接口、PCB电路板,为啥需要这么复杂?为什么不能直接操作Flash芯片呢?主要原因是跟NAND flash 的特性有关系。NAND flash 有些独特的物理组成和使用特性:(a)写入的最小单元是页:NAND Flash 存储器的最小可编程单元是页。每次写入操作都需要覆盖整个页,而不能仅修改其中的一小部分。这使得写入操作的最小单元限定在一页的大小,即使只有一页中的一小部分数据需要更新,整个页也需要被写入。(b)擦除的最小单元是块:NAND Flash 存储器的最小可擦除单元是块。在擦除之前,需要将整个块的数据读取出来,修改后的数据写回。由于擦除操作是比较慢且磨损较大的操作,为了降低擦除的频率,设计选择以页为单位进行写入,而不是以块为单位。典型的页大小为2KB、4KB或8KB,常见的块大小为64页或128页。(c)擦写次数有限制每个块都有一个有限的擦写寿命,即可以执行的擦写次数是有限的。频繁地在原地更新数据可能导致某些块更快达到擦写寿命上限,进而影响整个NAND Flash的寿命。因此,设计者更倾向于采用写入新页并擦除旧块的策略,以减少擦写次数的集中发生。(d)随机位翻转NAND Flash芯片中会因为自然放电、电场噪声、辐射等原因出现随机位翻转的现象,导致存储的数据位发生不可预测的变化。(2)flash FTL因为 nand flash 有擦写次数的限制、有随机位翻转的问题、还有写入和擦除大小不一致的限制,现有针对机械磁盘设计的文件系统是不能直接应用在Flash上的,需要借助一个特殊的软件层——闪存转换层(FTL),来屏蔽闪存的底层差异,使上层系统可以透明地使用闪存。相应的,固态存储的软件架构也要复杂很多。(3)地址映射FTL 中的地址映射确保上层文件系统可以使用逻辑块地址,而不用担心 NAND Flash 存储器的底层细节。这种映射关系的管理是 FTL 在保障 NAND Flash 数据稳定性、提高寿命以及提供高效读写的关键功能之一逻辑块地址(LBA):这是上层文件系统使用的块地址,通常是顺序递增的逻辑块编号。应用程序或文件系统将数据按逻辑块地址组织,而不需要关心底层 NAND Flash 存储的特性。物理块地址:这是 NAND Flash 存储器中实际的物理块的地址。由于 NAND Flash 进行擦写时只能对整个块进行,FTL 负责将逻辑块地址映射到物理块地址,并处理擦写时的块移动操作。映射表:FTL 维护一个映射表,记录逻辑块地址到物理块地址的映射关系。这个映射表通常存储在 Flash 存储器的特殊区域,如页或块中。写入时的地址映射:当应用程序向 NAND Flash 写入数据时,FTL 将逻辑块地址映射到一个可用的物理块。如果该物理块已经被写入过数据,FTL 需要擦除该物理块,将其标记为可用,并将新数据写入。这一过程需要更新映射表。擦除时的块移动:由于 NAND Flash 存储器的特性,每次擦写操作都会引发整个块的擦除。当需要擦除一个物理块时,FTL 需要将该块中的有效数据移动到其他块,然后标记该块为可用。这一过程同样需要更新映射表。(4)垃圾回收为什么会产生垃圾?(a)不可原位更新:当需要更新NAND Flash中的数据时,无法直接在原地进行更新。相反,新的数据必须写入一个新的空白页中,而原有的数据所在的页则被标记为无效。这导致存储器中同时存在有效和无效的数据,即产生了垃圾。(b)擦写操作的不可细粒度:NAND Flash的最小擦除单位是一个块,而最小写入单位是一页。如果需要更新某个页面的数据,整个块都需要被擦除,然后将更新后的数据写入。由于擦写和写入的单位不同,更新操作可能会导致未更改的数据也被重新写入,形成了垃圾。(c)擦除前数据的标记:当需要删除数据时,NAND Flash通常会将相应的页标记为无效,而不是立即擦除。这样,数据被删除后,原来的页仍然存在,但被标记为无效状态,形成了垃圾。(d)写入放大:写入放大是指为了写入少量数据而触发的大量物理写入。由于不可原位更新和擦写操作的不可细粒度,写入操作可能导致更多的物理页被写入,从而增加了实际写入量,也增加了垃圾的产生。这些因素共同作用,导致NAND Flash中垃圾的产生。为了解决这个问题,存储系统采用垃圾回收机制,定期清理无效的数据,擦除无效块,以便重新利用存储空间,并最大程度地减少擦写次数,延长NAND Flash的寿命。垃圾回收的一般流程:标记无效页选择目标块数据迁移擦除目标块更新元数据(5)坏块管理为什么会产生坏块?(a)擦写次数限制:NAND Flash的每个块都有一个有限的擦写寿命,即可以执行的擦写次数是有限的。当某个块达到了其擦写寿命上限,该块就会被标记为坏块,不再可用。这是由于擦写操作引起的物理损耗。(b)随机位翻转:存储器单元可能受到环境中的辐射、电场噪声或其他干扰,导致数据位发生随机翻转。当这种情况发生在存储器中的某个块时,该块可能变成坏块,因为存储的数据无法正确读取。(c)存储介质的不稳定性:NAND Flash使用的存储介质(通常是浮栅)可能因为制造过程或质量问题而导致某些块不稳定。这种不稳定性可能导致块的性能下降,或者在使用中产生坏块。(d)擦写时的错误:在擦写操作中,由于电压不稳定、温度变化或其他因素,可能发生错误。这些错误可能导致擦写操作未能正确完成,从而使得块成为坏块。(e)制造过程中的缺陷:制造过程中可能存在一些缺陷,导致某些块在生产阶段就不完整或有问题。这些块可能在设备制造过程中被标记为坏块。坏块管理的一般流程(a)坏块检测:初始化阶段:在系统初始化时,进行坏块检测。这包括检查 NAND Flash 存储器中是否存在已经标记为坏块的块。运行时检测:在系统运行时,定期或在需要时进行坏块检测。这可以通过读取存储器中的坏块表或直接尝试读取每个块的方式来实现。(b)坏块标记:如果检测到坏块,将其标记为坏块。这可以通过在坏块表中记录坏块的位置或使用其他元数据方式来实现。(c)坏块替代:一旦坏块被检测并标记,系统需要寻找可替代的块。这通常包括从备用块池中选择一个可用的块来替代坏块。备用块通常是在 NAND Flash 设备制造时预留的。(d)更新坏块表:如果替代块被选择,需要更新坏块表,将新块的位置标记为有效块。这确保了系统在后续操作中不会再使用已标记为坏块的块。(e)数据迁移:如果坏块替代发生在运行时,系统可能需要将原始块中的有效数据迁移到替代块中,以确保数据的完整性和可靠性。(6)损耗均匀(磨损平衡)磨损均衡是为了最大程度地平衡 NAND Flash 存储器中擦写寿命的消耗,从而提高存储器的性能、可靠性和寿命。磨损均衡的策略一般有:(a)块循环使用:块循环使用是最简单的磨损均衡策略之一。它通过轮流使用存储器中的块,而不是过度依赖于特定的块。这有助于分散擦写操作,减轻存储单元的磨损。(b)Wear Leveling(磨损均衡)算法:Wear Leveling 算法是一种专门设计的算法,旨在在整个存储器中均匀分配擦写操作。这种算法考虑每个块的使用情况,优化写入和擦除操作的分布,以降低存储单元的不均匀磨损。常见的 Wear Leveling 算法包括静态均衡和动态均衡算法。(c)动态坏块管理:动态监测并管理坏块,确保它们不会集中在特定区域。当检测到新的坏块时,系统可以调整块的分布,以确保损耗均匀。(d)块交换:进行块交换,将频繁写入的块与很少写入的块进行交换。这有助于平衡擦写操作,减缓块的磨损。块交换可以是静态的,也可以是动态的,根据系统的需要进行调整。(e)备用块池的合理使用:在 NAND Flash 制造时,通常会预留一些备用块。合理使用备用块池,确保块的磨损相对均匀。(f)周期性的擦除操作:定期执行擦除操作,即使块中没有无效页。这有助于重置块的状态,减小块的磨损程度。(7)为什么手机越用越卡手机越用越卡,除了器件的老化问题之外,还有一个原因就是存储设备里面的数据接近存储卡容量,导致存储设备写数据变慢了。为什么容量满了就会变慢了呢?这主要与写放大和垃圾回收有关系。假设要写入一个4KB的数据,但已经没有干净空间了,只有失效的数据可以擦除,所以主控就把所有的数据读取到缓存存,然后擦除一个块,再加上这个4KB新数据写回去,这就造成了写入放大,本来是需要写4K的数据,却写入了512K的数据,也就是128倍放大。上面只是个假设,实际有垃圾回收策略的接入,不会是128倍这么大。下面是IBM Zurich Research Laboratory做的研究,实际证明写放大与空闲净块关系极大上图可以看出,空闲块少后,写放大可以到达3~4倍(四)机械硬盘尽管固态存储设备发展迅猛,但传统的机械硬盘存储还是有很大的市场占有量,因为它数据稳定,同等价格下,存储容量更大。(1)外部结构我们从外部看,一个机械硬盘上有:主控芯片、高速缓存、电源接口、主从设置电路、数据接口、控制电路板。主控芯片:是机械硬盘的核心控制器,负责管理硬盘的整体操作。它控制数据的读写、定位磁头、管理电机旋转等。高速缓存:是一块用于临时存储数据的内存。它能够提高读取和写入数据的效率,尤其在处理频繁访问的数据时。电源接口: 为硬盘提供电力主从设置电路: 用于配置硬盘在IDE链路上的身份。数据接口:用于与主板或控制器通信的接口(2)内部结构机械硬盘的内部结构主要有:磁头组件、盘片、主轴组件、电机、接口等磁头组件: 负责在盘片上读取和写入数据。它是机械硬盘中的核心组件之一,通过悬浮在盘片表面上并移动,实现对数据的访问。盘片: 是机械硬盘内的磁性圆盘,数据存储在其表面上。硬盘通常包含多个盘片,它们叠放在主轴上。主轴组件: 包含主轴电机,负责旋转盘片。盘片通过主轴组件旋转,磁头组件通过它来读取和写入数据。电机:提供硬盘所需的动力,主要包括驱动主轴组件的主轴电机和控制磁头的定位电机。(3) 盘面、磁道、柱面与扇区我们用一张唱片的盘面来类比硬盘的的盘面,可以看到上面有明显的盘面、磁道、柱面,机械硬盘的内部盘面也类似。盘面(Platter):盘面是硬盘内部的物理圆盘,通常由非磁性材料制成,表面涂有可磁化的材料,用于存储数据。一个硬盘通常包含多个盘面,它们叠在一起并通过主轴电机旋转磁道(Track):磁道是盘面上的一个圆形路径,从盘片的中心延伸到边缘。数据在硬盘上以磁道的形式存储一个盘面上通常有多个同心圆状的磁道,每个磁道上的数据可以被磁头读取或写入柱面(Cylinder)柱面是多个盘面上相同磁道的集合,它们在垂直方向上对齐,构成一个立体的数据存储结构通过沿着同一柱面的不同盘面上的磁道进行读写,可以提高数据的访问效率扇区(Sector):扇区是磁道上的一个小块,是硬盘中最小的数据存储单元。数据按磁道和扇区的组合方式进行存储。一个磁道上通常被划分成多个扇区,每个扇区可以存储一定容量的数据,通常是512字节或4K字节(4)机械硬盘工作原理1. 盘片旋转:机械硬盘内部有多个盘片,这些盘片通过主轴组件旋转。主轴电机提供动力,使得盘片以高速旋转,通常以每分钟转数(RPM)来度量。2. 数据的磁性存储:每个盘片的表面被分成许多磁道和扇区。数据以磁性的形式存储在这些磁道和扇区上。磁道是圆形的环,而扇区是磁道上的一个小片段。3. 磁头的运动:机械硬盘中有多个磁头,每个磁头对应一个盘片的表面。磁头悬浮在盘片表面上,可以通过机械臂的运动进行定位。机械臂负责将磁头移动到指定的磁道上,以读取或写入数据。磁头的精确定位是机械硬盘关键的技术之一。4. 读写数据:当需要读取数据时,控制电路会指示磁头移动到特定的磁道上,并从磁盘上的扇区读取磁性信息。这些信息会被转换为电信号,传递到计算机系统进行处理。当需要写入数据时,磁头会根据指令移动到指定位置,然后将电信号转换为磁性信息,写入到磁盘的相应扇区。(5)寻址模式CHS寻址模式(Cylinder-Head-Sector)在CHS寻址模式中,数据的物理位置由柱面(Cylinder)、磁头(Head)和扇区(Sector)三个参数确定计算机使用上面参数来指定硬盘上的数据位置,每个柱面上的磁道由多个扇区组成,磁头负责在柱面上移动,读取或写入指定磁道的指定扇区这种寻址方式已经逐渐过时,因为它在处理大容量硬盘时存在限制,难以管理大量柱面、磁头和扇区的信息逻辑块地址(LBA)寻址模式LBA是一种更为直观和简化的寻址方式在LBA寻址模式中,硬盘被视为一个线性的地址空间,每个扇区都有一个唯一的逻辑编号计算机系统直接使用这个逻辑块地址来访问硬盘上的数据,而无需考虑具体的物理位置LBA寻址模式对于大容量硬盘和简化操作系统的数据管理来说更为方便,因为它不涉及复杂的CHS参数现代计算机系统几乎都使用LBA寻址模式,这种方式提供了更高的灵活性和可扩展性,同时简化了硬盘管理(五)分区格式化我们买的U盘、SD卡等存储设备,一般我们买回来就可以直接使用,并不需要做什么分区格式化。那是因为在设备出厂之前,厂家已经预先做了这些工作。一个存储设备在出厂之前,一般都是需要做:低级格式化选择分区方式建立分区格式化详细的分区格式化我们在下一章在介绍。结尾计划将文件系统相关的知识点整理输出成一个系列的文章:存储介质介绍、分区格式化、系统启动、FAT系列文件系统、ext系列文件系统、NTFS文件系统、嵌入式文件系统、文件IO等
-
华为云都提供有许多的存储服务,看看大家讨论讨论都知道有哪些存储服务
-
技术文章实现MQTT消息的存储和检索https://bbs.huaweicloud.com/forum/thread-0257141284298301008-1-1.html华为存储电力大数据知识点https://bbs.huaweicloud.com/forum/thread-0222141316567324011-1-1.html相对Wi-Fi 5,华为Wi-Fi 6的优势有哪些https://bbs.huaweicloud.com/forum/thread-0282141318035318007-1-1.html华为输变电通信网知识点https://bbs.huaweicloud.com/forum/thread-0222141318365754013-1-1.html华为IP骨干网方案的主要优势https://bbs.huaweicloud.com/forum/thread-0222141318614074016-1-1.htmlAJAX开发小知识https://bbs.huaweicloud.com/forum/thread-0296141900925615012-1-1.htmlMVC小知识https://bbs.huaweicloud.com/forum/thread-0296141900971033013-1-1.htmlMySql和Oracle数据库的区别总结一览https://bbs.huaweicloud.com/forum/thread-0231141901041116025-1-1.htmlHibernate笔记分享https://bbs.huaweicloud.com/forum/thread-0224141901103428014-1-1.htmlMX记录优先级笔记分享https://bbs.huaweicloud.com/forum/thread-0267141901446132025-1-1.html资讯合集资讯|以务实重行创生态新篇,华为云生态大会2024领航数智新开局https://bbs.huaweicloud.com/forum/thread-0202141908777958019-1-1.html资讯|【云享问答】第6期:如何筑造数据安全边界?https://bbs.huaweicloud.com/forum/thread-02112141908854079020-1-1.html资讯|金融级分布式数据库,增长和创新指数双第一!https://bbs.huaweicloud.com/forum/thread-0202141908981075020-1-1.html资讯|华为云GaussDB,助力企业数字化高质量发展https://bbs.huaweicloud.com/forum/thread-0267141909095449027-1-1.html资讯|华为云应用平台运维中心:一站式智能运维,为企业应用稳定性保驾护航https://bbs.huaweicloud.com/forum/thread-0271141909397805001-1-1.html
-
近日,由中国信息通信研究院、中国通信标准化协会主办的2023系统稳定性与精益软件工程大会在京隆重举行,在云服务稳定性保障技术专场暨稳定性保障实验室年会上,华为云aPaaS应用平台AppStage运维中心专家受邀发表了“云原生时代如何构建应用稳定性”的演讲,分享华为云应用平台AppStage运维中心在如何应对云原生应用运维挑战及保障应用稳定性上做出的探索和实践。云原生时代应用运维模式从传统的以资源管理为核心,升级为以应用管理为核心,原有运维方式面临着多方面的挑战:业务软件快速迭代、运维工具林立、业务快速发展与应用高稳定性要求存在矛盾。为应对云原生时代运维挑战而生的华为云应用平台AppStage运维中心,围绕云原生的业务场景,构建了4大能力:基于智能运维AIOps,实现无人值守变更。通过Everything as a Code (XaC)声明,华为云应用平台AppStage运维中心将变更的评审、执行和验证等步骤自动化,避免人因失误,缩短变更过程中的步骤和操作时间,实现无人值守变更,帮助企业提升了运维效率;通过端、管、边、云的联动监控,实现故障生命周期智能化管理。华为云应用平台AppStage运维中心通过端、管、边、云的联动监控,让指标、日志、调用链全栈可观测,打通了数据孤岛。在端侧告警后,通过AI异常检测算法及AI根因诊断等能力,实现1分钟发现、5分钟定位、10分钟恢复,大大降低了故障恢复时间,提升了业务质量;通过混沌工程故障注入,充分验证应用可靠性。华为云应用平台AppStage运维中心支持80多种故障注入方式,预定义了50多种故障演练场景,通过模拟各种故障、全自动化演练,使业务对故障具备免疫能力,提升了业务的稳定性;FinOps运维成本可视化,帮助企业降本增效。华为云应用平台AppStage运维中心通过将AIOps的灰度评估、告警归并、异常检测、故障根因诊断等能力,嵌入运维的各个活动中,将以前的被动运维转为主动运维,帮助企业优化资源利用,实现降本增效。华为云应用平台AppStage运维中心将华为内部沉淀多年的构建、管理、使用和维护大规模云原生应用的经验构建到平台上来,通过平台化的开放,让更多的能力、经验共享出来,实现向产业‘经验即服务’的能力复制。以往需要大量工作的可靠性、韧性、安全等基础的工程能力,都通过平台提供,让企业可以聚焦于业务代码。转自华为云开发者联盟
-
2024年1月16日,以“聚焦数智融合 驱动生态创新”为主题的2023(第三届)数字经济领航者大会暨2023创新影响力年会在北京顺利举行。本次活动总结了2023年度数字经济领域的创新成果及下一年的科技趋势和方向,分享了最成功的技术、产品、解决方案、成功案例,以此推动行业数字经济发展新格局。活动盛典上,华为云GaussDB凭借产品优异的性能获得“2023年度国产云数据库应用推荐优秀产品奖”。同时,华为云数据库服务产品部总经理苏光牛作为特邀嘉宾,发表了《华为云GaussDB助力企业数字化高质量发展》的主题演讲,通过对中国行业数字化应用的全面分析,围绕华为云GaussDB“五高两易”的核心技术,引领行业数字化转型。坚持自主创新打造承载企业关键业务负载的数据库GaussDB是华为基于20余年战略投入的新一代分布式数据库,核心代码完全自主创新,拥有高可用、高安全、高性能、高弹性、高智能、易部署、易迁移的技术特性,是当前国内唯一能够做到软硬协同、全栈自主的数据库品牌。打造全栈可信的数据库软件GaussDB基于华为软件工程全栈可信的框架,构建多层级测试防护网,保障GaussDB数据库端到端可信、安全、高质量。高可用,切换业务微感知GaussDB同城双集群方案实现了工商银行信贷5A级核心系统中业务的高可用。一致性、可靠性满足金融级要求,RPO=0,跨Region切换RTO < 120 秒,且100%实现了软硬件故障完全隔离;应用无损透明(ALT)主备切换时让用户在故障时对业务无感知。高性能,新一代存储引擎UstoreGaussDB打造的Ustore存储引擎,从数据库内核架构实现自主创新,确保了数据库的高性能和极低抖动,稳定度是国内其他数据库的6倍+;存储空间利用率提升了17%,降低企业成本。纯软全密态,保障全生命周期安全GaussDB提供了业界首个纯软件形态的全密态数据库,并且是国内唯一一个通过CC EAL4+源码级认证的数据库,标志着其设计和源代码达到了国际最高安全水平,相比业界同类产品性能领先35%以上,性能更优,保障数据全生命周期安全,实现SQL零改造。全栈智能运维GaussDB基于大模型平台和AI引擎,实现了SQL的全量全链路感知、分析及优化能力,以及基于覆盖全流程的监控、智能化诊断能力等,运维效率提升50%,在全栈监控、审计、运维指导方面为客户提供了更优体验。多形态,灵活部署GaussDB分布式架构在部署方式上有单分片、多分片两种灵活的部署方式。其中,单分片分布式对应用迁移更为友好,可满足绝大多数传统数据库的应用平滑迁移;单分片多租户适合小微应用,可限制跨租户间的资源占用和冲突;多分片分布式则支持超大规模及快速爆发的业务的分布式改造,最大支持256分片,1024节点,最大可存储4PB的海量数据。GaussDB轻量化部署形态,架构简单,可减少初期建设投资,与HCS标准方案体验基本保持一致,支持最大管理5000数据库节点,同时可被标准HCS管理面纳管,可长期演进。一站式解决方案,让客户迁移无忧一站式迁移解决方案“GaussDB+UGO+DRS”,让客户迁移无忧。其中,UGO用于应用迁移,完成数据库对象、语句自动转换和语句审核;DRS完成数据的迁移和校验,还可以用于后续数据库版本升级的数据同步等工作。其中,流量回放可以在业务上线前通过业务真实流量负载对业务进行验证,确保迁移的成功率。各大利器相结合,保障客户数据库迁移无忧。从金融到关键基础设施行业GaussDB成为客户第一选择GaussDB历经全球顶尖银行严苛场景的商用考验,获得行业的认可和市场的好评。根据金融信息化研究所的统计数据,59.8%的金融机构选择使用GaussDB。同时,Gartner发布的《Voice of the Customer for Cloud Database Management Systems, 2023》指出:华为云成为全球唯一获得云数据库管理系统“客户之选”的云厂商,客户满意和推荐度高达98%。目前,GaussDB在政策性银行、国有6大行中的5家,以及40余家股份制银行、城商农信、保险、证券客户实现规模落地,同时,也广泛应用于政务、电信、能源、交通等关键基础设施行业客户的核心业务系统中,全力支撑客户数字化转型升级。GaussDB是企业数字化转型、核心业务上云、分布式改造的可信之选。生态协同赋能行业做厚未来人才基础数据库的兴盛,离不开数据库的生态建设。在数据库产业生态方面,华为云GaussDB一直保持战略性投入,目前已有超100家合作伙伴加入到GaussDB生态体系,共推出了超300个联合解决方案,覆盖金融、政企办公等多个行业,以及数据库交付与服务、运维、工具、人才培养等方方面面;一直以来,GaussDB坚持做厚未来人才基础,累计培养2000多位合作伙伴数据库人才,并通过职业认证培训帮助10000多数据库人才实现职业生涯转型。在产教融合方面,华为云已与125所高校合作,开设超170门GaussDB数据库课程,累计培养4.5万未来数据库人才。在未来三年,华为云将新增5万名学生人才培养,保障行业人才供给。转自华为云开发者联盟
-
近日,沙利文联合头豹研究院发布《2023年中国金融级分布式数据库市场报告》报告显示,华为云GaussDB在2023年中国金融级分布式数据库市场综合竞争表现位居领导者象限在增长指数和创新指数皆排名第一在数据库等根技术的研发过程中,华为始终坚持走自主创新道路。历经20多年技术积累,并融入华为长期以来对企业服务的质量与可信规范,华为云推出了当前国内唯一能够做到软硬协同、全栈创新的分布式数据库GaussDB。目前,华为云GaussDB已成为金融、政务、交通等关键信息基础设施行业客户首选的数据库。华为云GaussDB核心代码100%自主创新,具备高可用、高安全、高性能、高弹性、高智能的技术优势。在数据库替换场景中,又具备易迁移,易部署的特性。基于上述核心优势,华为云正携手生态伙伴,在为全行业的自主创新进程贡献力量。华为云GaussDB不仅支撑了华为内部MetaERP系统和华为终端云等业务的稳定运行,同时服务于中国工商银行、中国邮政储蓄银行等国有大行的核心业务,以及陕西省财政厅、中海油、国家管网、国网陕西电力、首都公路发展集团等关键信息基础设施行业客户。在华为内部华为云GaussDB成功支撑华为公司新MetaERP系统全面上线,采购履行耗时缩短到15秒,端到端订单履行耗时缩短到9秒,历史峰值5倍压力下性能稳定不下降。实现业务需求快速响应、经营决策科学高效、应用数据安全可信。在金融领域华为云GaussDB助力邮储银行数字化升级。新一代个人业务分布式核心系统为6.5亿个人客户、4万+网点提供日均20亿笔、峰值6.7万笔/秒的交易处理能力。自2023年6月华为云正式发布新一代分布式数据库GaussDB以来,已有50多家金融机构选择了GaussDB。在财政领域广东省财政厅“非税收入收缴一体化平台”以华为云GaussDB为核心组件进行改造升级,新平台面向1.2亿公众用户,支持日均30万-100万笔交易量的能力,高效实现自主创新,成为数字财政建设的新范本。未来,华为云GaussDB将持续深耕技术创新,锤炼核心竞争力,支撑全行业数字化转型升级,并从中国市场走向全球市场,给世界一个更优选择。转自华为云开发者联盟
-
当前AI技术的快速发展,大模型、大数据正在加速对海量多样化数据的应用。数据已经成为核心资产,而数据安全和隐私保护的重要性也日益凸显。数据脱敏作为数据安全管控体系的关键环节,能够有效地保护敏感数据的安全。为了满足开发者对于数据脱敏的需求,GaussDB(DWS) 动态脱敏功能应运而生。本期【云享问答】通过这10个问题,带你全方位了解GaussDB(DWS) 动态脱敏功能及效果。什么是数据脱敏?数据脱敏是通过屏蔽敏感数据来保护数据安全的一种方法。它可以将敏感数据变形,例如身份证号、手机号、客户姓名、邮箱地址等。数据脱敏分为静态数据脱敏和动态数据脱敏两种。GaussDB(DWS)提供列级别的数据脱敏(Dynamic Data Masking)功能,GaussDB (DWS)数据脱敏功能,基于SQL引擎既有的实现框架,在受限用户执行查询语句过程中,实现外部不感知的实时脱敏处理。数据脱敏能解决什么问题?数据脱敏能力对于用户具有多重重要价值。它不仅能够消除暴露个人敏感数据的风险,确保个人隐私安全,还能助力企业遵守CPRA、GDPR、HIPAA等隐私法规,避免因违规而引发的法律风险。同时,数据脱敏技术在处理数据时能够保持数据的一致性和可用性,确保脱敏后的数据依然能够支持业务运营和决策分析。此外,通过脱敏处理,还可以降低数据在高效共享过程中的风险,防止敏感信息被恶意利用,从而保护企业免受网络攻击和数据泄露的威胁。脱敏策略是什么?脱敏策略(Redaction Policy)在数据安全管理中扮演着至关重要的角色。脱敏策略是与数据库中表对象是一一对应的。一个完整的脱敏策略通常由三个关键部分组成:表对象、生效条件以及脱敏列与脱敏函数的对应关系。表对象指定了策略应用的数据库表。生效条件则是一个布尔表达式,它决定了何时应用脱敏规则。脱敏列与脱敏函数的对应是脱敏策略的核心。不同的字段根据其存储数据的特性和敏感性可以采用不同的脱敏函数。当且仅当生效条件为真时,查询语句才会触发敏感数据的脱敏,而脱敏过程是内置在SQL引擎内部实现的,对生成环境用户是透明不可见的,既保障了数据安全,又不干扰用户的数据访问。在实际开发过程中,数据脱敏怎么用?以DWS为例,在创建脱敏策略时,需要先确定受限制的用户角色,识别和梳理具体业务场景的敏感字段,然后确定脱敏列需要绑定的脱敏函数,最后构造策略创建的语句并执行,从而预制好脱敏策略。数据脱敏应用过程中,如何做到数据库内可算仅库外不可见?数据库内要求原始的敏感数据能够参与加工计算,仅在出库的时刻敏感数据才会被脱敏处理。例如投影列表达式、投影列函数、聚集函数、过滤条件、分组条件、子查询位置投影列表达式等,需要原敏感数据直接参与加工计算。在表查询、视图查询、COPY查询、GDS外表导出等场景触发时会进行数据脱敏。可算不可见功能有一个前置的条件,需要打开开关enable_redactcol_computable=on!。GaussDB(DWS)的动态脱敏功能是如何进行数据保护的?GaussDB(DWS)的动态脱敏引擎与底层系统紧密配合,高效、安全、可靠地处理数据。其直观的DDL语法界面,使用户能轻松配置、调整脱敏策略,灵活应对不同场景。系统不仅内置多种常见脱敏方法,还支持用户自定义脱敏函数,满足个性化需求。在保障数据安全的基础上,该引擎确保脱敏数据的高可用性,维持业务价值。同时,通过严格的权限和访问控制,仅授权用户可访问敏感数据,全面守护数据的安全与隐私。第三方脱敏工具多为外挂式,仅支持静态脱敏,无法实现实时动态处理。相比之下,GaussDB(DWS)的内置脱敏功能更加透明、高效。在GaussDB(DWS)中,如何快速配置和使用动态脱敏功能,并支持非固定格式的数据脱敏?GaussDB(DWS)提供DDL语法支持用户快速配置脱敏策略,使用无特殊要求,原SELECT语句即可触发。GaussDB(DWS)对于常规数据类型均支持,且提供用户自定义脱敏函数,可以对更多场景支持更灵活脱敏效果。GaussDB(DWS)是否支持跨数据表传递脱敏数据,传递过程中是否继承原脱敏策略?在GaussDB(DWS)的库内可算库外不可见场景下,由于参与数据运算的是原始数据,故DML语句执行过程,写入更新目标表都是原始数据去更新的,故需要引入脱敏策略继承机制,分析语句中子查询的脱敏信息,并继承到目标表中,此场景即涉及脱敏策略的继承。在应用GaussDB(DWS)过程中,如何保证数据脱敏的实时性?为了确保实时性,GaussDB(DWS)采用动态数据脱敏方式。动态数据脱敏,是指数据查询过程边输出边脱敏,策略定制的脱敏函数发生变化,查询的脱敏效果也实时更新。这就意味着DWS在数据查询过程中,数据会边输出边脱敏。这种并行交互的方式最大限度地减少了性能损失,使得实时性得以保证。根据提供的信息,性能劣化在10%以内是可以接受的。因此,各种场景下的实时性需求都能得到满足。针对不同的用户或角色,GaussDB(DWS)能否有不同的脱敏策略?GaussDB(DWS)数据脱敏含有三要素:脱敏策略应用的表对象、脱敏字段-脱敏函数对、脱敏生效条件,此三部分信息通过REDACTION POLICY语法承载。WHEN表达式子句可以传递生效条件,针对不同的用户或角色去判断。转自华为云开发者联盟
-
1月15日-16日,以“领航新开局,共赢新生态”为主题的华为云生态大会2024在华为云贵安数据中心·云上屯隆重启幕。华为云和全国生态伙伴、开发者,在新年伊始,共同见证华为云生态战略的新进展、伙伴政策的新升级,分享源自优秀生态伙伴的标杆案例和心得,探讨如何继续发挥生态力量,打造数智时代的新航标。贵州省人民政府副省长郭锡文指出,贵州省自发展大数据产业以来,就与华为云建立了深厚的友情。在智慧政务、智慧城市、企业数字化转型、新基建等领域全面深化合作。华为云全球总部、华为云贵安数据中心、鲲鹏产业基地、昇腾智算中心等相继落地贵州,一批立足贵州、辐射全国、面向全球的华为云标杆示范项目正在加快建设,四十多家华为云生态伙伴在贵州茁壮成长。新征程上的贵州蓄势待发、潜力无限,诚挚邀请各位企业家朋友前来考察参观,共谋合作大业。华为常务董事、华为云CEO张平安介绍,华为云致力于做好行业数字化的云底座和使能器,持续加快研发创新,把华为的关键技术、基础设施资源、行业伙伴转型经验,以云服务的形式对各行业开放,为数字经济发展构筑安全、可靠、普惠的云底座,使能行业加快释放数字生产力。华为愿与贵州一起加快开放创新合作,深耕数智融合,共绘数字蓝图,携手全球合作伙伴一起助力贵州数字化转型,助力中国数字经济高质量发展。华为公司副总裁、华为云中国区总裁张修征在致辞中表示,经过数年的艰苦努力,华为不仅经受住了严峻的考验,将公司经营基本回归常态。这得益于华为在始终保持战略定力的同时,在根技术上压强投入,敢于啃“硬骨头”,也得益于客户和伙伴的信赖和支持。在“一切皆服务”战略指引下,截至2023年12月底,华为云生态已汇聚超4.5万家合作伙伴,超600万开发者,华为云商店上线超10000款商品,华为云的“朋友圈”正变得越来越繁荣。2024年华为云将持续践行“一切皆服务”的战略,与伙伴和开发者携手深耕数字化,共创产业新价值。华为云生态战略再进阶携伙伴和开发者迈向宏伟愿景在主题演讲环节,华为云全球生态部总裁康宁详解介绍了2024年华为云生态战略。康宁强调,“华为云不仅是公司数字化的底座和使能器,更是各行各业可信赖的数字化黑土地。华为云一直秉承‘共创、共享、共赢’的生态理念,与开发者和伙伴共创新价值,致力于实现‘一切皆服务’的战略目标。”华为云将延续1个统一身份、2个合作框架、6种伙伴角色的生态体系,与伙伴实现能力共生和商业共赢,加速客户数智化转型。目前,销售额超千万的伙伴数量已超过150家。在开发者生态方面,华为云已集结了1000名DTSE专家队伍,为开发者提供全旅程服务。2024年,华为云将与广大伙伴、开发者一道,共同实现共建能力、共享商机、共育人才、共赢合作的宏伟愿景。共生型生态体系渐成主流新认知、新能力、新运营成关键“后数字化”时代,在科技行业,以往传统的交易型伙伴关系正在被更有活力、能够创造价值的共生型生态体系所取代,以为客户提供更全面的价值,快速、灵活、规模化地建立服务能力。普华永道思略特管理咨询有限公司TMT行业合伙人林骏达指出,科技厂商与生态伙伴需要共同在认知、能力和运营三个层面实现转变:通过新认知形成面向自身业务发展的生态合作期望,通过新能力形成护城河并真正发挥生态的长期价值,通过新运营真正实现“生态即业务”提高生态效率,让生态合作从“利益导向”演进到“增长导向”。携手生态伙伴联合作战共绘行业数智化新蓝图针对伙伴们最关心的生态战略与生态政策,华为云中国区副总裁、华为云生态发展与运营部部长陶志强进行了详细解读。陶志强表示,2024年华为云将继续与伙伴和开发者共建能力、共享市场、共育人才、共赢合作,既要成为伙伴的最佳选择,也要成为客户数字化转型的最佳选择。在演讲过程中,陶志强分享了2024年华为云生态政策,并发布了旨在助力企业提升组织竞争力的“2024年生态领航者计划”。“脚踏实地,行稳致远,合作同飞,绽放繁花,华为云将携手伙伴和开发者,共创新价值、共享新生态、共赢新未来!”陶志强表示。作为全球咨询管理公司,埃森哲深谙企业战略转型的增长路径。埃森哲大中华区技术服务事业部董事总经理华明胜表示,埃森哲携手华为云将最佳实践相结合,帮助企业实现从数据+AI驱动流程到业务流程重塑的转变,重塑关键能力。华为云则以坚实的数字底座,结合数字化架构推进应用现代化,以一体化生态实现从赋能数字化人才到重塑竞争边界的转变,帮助更多企业构建数字核心。双方携手,加速客户的“重塑”进程。百望云首席战略官曹雪祎在分享中表示,基于华为云强大的基础设施底座,双方联合推出票、财、税、链一体化数智解决方案,为大中型组织的数字化转型赋能,未来双方将在架构升级、行业联拓、业务创新等方面携手共创,使能客户业务场景的融通创新。伙伴的意义在于绕开孤军作战的被动,携手奋进实现共赢。华为云中国区副总裁、华为云中国区销售伙伴发展部部长张达表示,2024年华为云伙伴激励政策维持稳定,通过“云总经销商”和“云解决方案提供商”两大角色齐头并进,促进生态体系繁荣,做大市场覆盖。在客户运营方面,坚持稳存量、促增量,做厚用户价值。会上,张达还重磅推出昇腾云、盘古大模型、数字化差旅、数字人等8大SMB尖刀产品,帮助伙伴快速突破、实现规模销售。张达表示,“华为云生态将坚定腰部联拓战略,以实战赋能伙伴,同时提升大客户拓展自闭环能力,携手伙伴共创新高度,共赢云未来。”随后,伟仕佳杰和卓见云作为销售伙伴代表登台,结合自身实践分享心得。伟仕佳杰华为云技术主管杨昌表示,伟仕佳杰坚持用生态杠杆撬动企业数智化转型,通过对内搭建拓渠保障体系、对外完善拓渠实践体系,为更多客户带来咨询、迁移、培训、运维、优化等企业服务,以“合协”发展的生态云平台,助力客户业务成长。卓见云创始人&CEO朱亚男则从客户运营视角分享了如何“用好AI用好云”,朱亚男表示,卓见云打造了涵盖上云迁移实施服务能力、数据库服务能力、应用现代化改造能力、安全运营能力的“卓见云客户运营魔方”,2024年将重点以AI提升卓见云自营客户运营系统,赋能基于客户业务场景的深度运营。联合解决方案重磅发布推动技术应用走深走实华为云与伙伴共同打造的联合解决方案,已成为更多企业的数字化转型利器。华为云生态解决方案部部长肖苡指出,华为云和生态伙伴们已共同孵化出120余个基线解决方案,覆盖26个行业、56个典型业务场景,谱写出联合解决方案的新篇章。华为云将与伙伴实现联合构建、联合营销、联合销售的全流程闭环,并基于华为云基线解决方案专项计划,实现业务的联合拓展和商业共赢。2023年通过联合解决方案,带给伙伴的收入达到8亿。本次生态大会期间,华为云携手讯方、金蝶软件、埃森哲、北明软件、数字政通、中软国际等19家伙伴,共同发布了20个行业联合解决方案,覆盖装备制造、人才培养、物流运输、智慧政务等诸多领域。同时,华为云还联合赞奇科技、用友、软通动力、神州数码、德勤等16家伙伴发布水平联合解决方案,帮助企业在应用上云迁移、数据管理与分析、智能营销等方面迭代升级,推动企业数智化蝶变。此次华为云生态大会,为刚刚到来的2024新开局凝聚了合作共进的新力量。以华为云生态大会2024为新起点,华为云将坚持践行“一切皆服务”战略,继续秉承“共创、共享、共赢”的生态理念,以锐意创新的勇气、敢为人先的锐气以及蓬勃向上的朝气,做厚全球生态,帮助更多伙伴和开发者快速成长,高效创新,以稳进的步伐,开启数智时代新篇章。转自华为云开发者联盟
-
MX记录中的优先级是指邮件服务器的优先级。当发送邮件时,邮件服务器会根据MX记录中的优先级顺序依次尝试连接邮件服务器,如果连接失败,则会尝试连接下一个优先级的邮件服务器。MX记录的优先级非常重要,它决定了邮件服务器的连接顺序,直接影响邮件的发送和接收。MX记录优先级的作用:1. 确定邮件服务器的连接顺序;2. 直接影响邮件的发送和接收;3. 提高邮件的可靠性和稳定性;4. 保证邮件能够及时到达收件人的邮箱。如何设置MX记录的优先级MX记录的优先级可以通过DNS解析服务进行设置。在DNS解析服务中,我们可以为每个MX记录设置一个优先级,数字越小优先级越高。在设置MX记录时,需要注意以下几点:1. MX记录的优先级必须是一个数字,不能有特殊字符;2. 数字越小优先级越高;3. MX记录的优先级可以相同,但不能重复;4. MX记录的优先级不影响邮件服务器的正常运行。如何设置MX记录的优先级:1. 登录DNS解析服务提供商的网站;2. 进入DNS解析设置页面;3. 找到MX记录设置选项;4. 为每个MX记录设置一个优先级。如何测试MX记录的优先级在设置MX记录之后,我们需要测试MX记录的优先级是否生效。测试MX记录的优先级可以使用MXToolBox等在线工具进行测试。在测试MX记录的优先级时,需要注意以下几点:1. 测试MX记录的优先级需要等待DNS解析生效;2. 测试MX记录的优先级需要使用正确的邮箱地址;3. 测试MX记录的优先级需要使用正确的端口号;4. 测试MX记录的优先级需要使用正确的协议。如何测试MX记录的优先级:1. 打开MXToolBox等在线工具;2. 输入邮箱地址;3. 选择正确的端口号和协议;4. 点击测试按钮进行测试。
-
根据电力lCT(智能电力)的一般应用场景:电力需求预测:通过大数据和人工智能技术,预测电力需求,以实现电力供应的优化。电力系统优化:通过优化电力系统的运行,提高电力系统的效率和可靠性。电网安全管理:通过实时监控电网运行状态,及时发现和处理电网故障,确保电网的安全运行。电力设备维护:通过对电力设备的实时监控,及时发现设备故障,提高设备的运行效率和使用寿命。电力市场交易:通过电力市场的交易,实现电力资源的优化配置,降低电力成本。电力需求响应:通过对电力需求的实时响应,实现电力需求的动态平衡,提高电力系统的运行效率。电力能源管理:通过对电力能源的管理,实现电力能源的高效利用,降低能源成本。电力环保管理:通过对电力生产过程的监控,实现电力生产过程的环保,降低环境污染。电力供应链管理:通过对电力供应链的管理,实现电力供应链的优化,降低供应链成本。电力资产管理:通过对电力资产的管理,实现电力资产的高效利用,降低资产成本。电力服务管理:通过对电力服务的管理,实现电力服务的优化,提高客户满意度。电力人力资源管理:通过对电力人力资源的管理,实现电力人力资源的高效利用,提高人力资源效率。电力信息管理:通过对电力信息的管理,实现电力信息的高效利用,提高信息管理效率。在电力大数据场景下,华为存储的主要销售产品是OceanStor Pacific分布式存储系统3。OceanStor Pacific分布式存储,是专为海量数据场景设计的分布式存储系统,为高性能数据分析(HPDA)、大数据分析、虚拟化/云资源池、视频、内容存储/备份归档等类型应用提供多样性存储服务与传统存储不同的是,分布式存储更偏向于图像、视频、日志之类的数据,而且是多样性的、正在高速增长中的海量数据。华为的OceanStor Pacific分布式存储的创新点首先是在硬件形态上,不断推出新的硬件产品,并在性能、协议支持以及容量等维度均实现了能力的进一步增强,更好的满足了高性能计算、大数据分析、备份归档等不同应用场景的多样化数据存储诉求。在大数据场景,OceanStor Pacific分布式存储提供了更加实时的数据分析,可辅助千亿数据集。此外,OceanStor Pacific分布式存储在硬件形态上的创新,以及在性能、协议支持以及容量等维度的能力增强。
-
技术干货GaussDB支持的数据类型笔记分享https://bbs.huaweicloud.com/forum/thread-0213136728330915001-1-1.htmlOBS对象存储服务https://bbs.huaweicloud.com/forum/thread-0213137054804991018-1-1.htmlOBS的优势https://bbs.huaweicloud.com/forum/thread-0275137226636572006-1-1.html内存屏障知识点https://bbs.huaweicloud.com/forum/thread-0212137340513412027-1-1.html向量计算和NEONhttps://bbs.huaweicloud.com/forum/thread-0263137340277654022-1-1.html边缘计算知识点分享https://bbs.huaweicloud.com/forum/thread-0217137339977404021-1-1.htmlA64基本指令集https://bbs.huaweicloud.com/forum/thread-0217137339730742020-1-1.html改善 Kubernetes 上的 JVM 预热问题https://bbs.huaweicloud.com/forum/thread-0271137339533010021-1-1.html5G 三大场景应用https://bbs.huaweicloud.com/forum/thread-0217137339278291019-1-1.htmlARMv8知识点https://bbs.huaweicloud.com/forum/thread-0251137339190491026-1-1.html减少备份空间开销方法笔记分享https://bbs.huaweicloud.com/forum/thread-0212137249070584014-1-1.html资讯资讯|深耕行业,华为云为秘鲁提供行业最优选https://bbs.huaweicloud.com/forum/thread-0271137227032223009-1-1.html资讯|“Go Cloud,Go Global”,搭建中墨企业桥梁https://bbs.huaweicloud.com/forum/thread-0298137338460041016-1-1.html资讯|国信证券携手华为云GaussDB,共促证券高质量发展https://bbs.huaweicloud.com/forum/thread-0263137227159696010-1-1.html资讯|华为云推出首个大模型混合云,加速行业智能升级https://bbs.huaweicloud.com/forum/thread-0263137228384838011-1-1.html
-
内存屏障产生的背景–乱序由于现代CPU的运行速度往往要比内存要快得多——一般在从内存获取一个变量的同时,CPU可以执行数百条指令,因此现代计算机架构往往在CPU和内存之间增加一级缓存,以允许在缓存中快速访问较为频繁使用的数据。与此同时,CPU被设计成在从内存中获取数据的同时,可以执行其他指令和内存引用,这就导致了指令和内存引用的乱序执行。为了解决这一内存乱序问题,引入了各种同步原语,这些原语通过使用内存屏障来实现多处理器之间内存访问的顺序一致性。仅仅在两个CPU之间存在需要通过共享内存来实现交互的可能时,才需要使用内存屏障。如果有能力,请展开讲解缓存一致性协议。乱序时代码的执行过程:1将a赋值02将b赋值03将a赋值1,但是只是1写入到store buffer中,原因:假设该CPu有两个核,其中CPUo赋值1给a时,需要通知cPU1,且需要等到cPU1的通知后才能真正赋值,这是为了保证数据的一致性,由于发通知和等回复的时间太长,会影响CPu的性能,因此,CPUo会将1暂时放在store buffer中,然后直接执行b=a+1。4执行b=a+1,这时候b的结果并没有按照预想的变成2,而是为1.5将1从store buffer中赋值,这时候a才真正的被赋值为16执行assert时,系统报错a和b被加载,此时a=o,b=0;a被CPU1赋值为1,如此同时b被CPU2赋值为a+1,如果这个动作是同时发生,那么此时a=1,b=0+1,这和代码本来表达的目的不匹配;这就是CPU级乱序,这种现象的发生有一定的概率;正确的顺序应该为a被CPU1赋值为1,将数据同步到共享换存后,CPU2再执行b=a+1。内存屏障指令内存屏障有两个作用:阻止屏障两侧的指令重排序;强制把写缓冲区/高速缓存中的脏数据等写回主内存,让缓存中相应的数据失效。·对于Load Barrier来说,在指令前插入Load Barrier,可以让高速缓存中的数据失效,强制从新从主内存加载数据;对于Store Barrier来说,在指令后插入Store Barrier,能让写入缓存中的最新数据更新写入主内存,让其他线程可见。除了表格中的三种指令外,还有一种方式能够达到内存屏障的作用,那就是在指令前加LOCK前缀。Lock会对CPU总线和高速缓存加锁,可以理解为CPU指令级的一种锁。它后面可以跟ADD,ADC,AND,BTC,BTR,BTS,CMPXCHG,CMPXCH8B, DEC,INC,NEG, NOT,OR,SBB, SUB,XOR,XADD, and XCHG等指令。Lock前缀实现了类似的能力.它先对总线/缓存加锁,然后执行后面的指令,最后释放锁后会把高速缓存中的脏数据全部刷新回主内存。在Lock锁住总线的时候,其他CPU的读写请求都会被阻塞,直到锁释放。Lock后的写操作会让其他cPu相关的cache line失效,从而从新从内存加载最新的数据。这个是通过缓存一致性协议做的。
上滑加载中
推荐直播
-
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
回顾中 -
GaussDB应用实战:手把手带你写SQL
2025/01/09 周四 16:00-18:00
Steven 华为云学堂技术讲师
本期直播将围绕数据库中常用的数据类型、数据库对象、系统函数及操作符等内容展开介绍,帮助初学者掌握SQL入门级的基础语法。同时在线手把手教你写好SQL。
回顾中 -
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
2025/01/10 周五 15:30-17:30
MindStudio布道师
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
即将直播
热门标签