日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過QAT加速器設(shè)備加速數(shù)據(jù)加解密和壓縮解壓縮

QAT加速器設(shè)備可以提升系統(tǒng)的加密處理能力,適用于高性能加解密能力的業(yè)務(wù)應(yīng)用,例如Web服務(wù)器、數(shù)據(jù)庫和其他需要大量安全通信的服務(wù),在確保數(shù)據(jù)安全的同時,減輕CPU的負(fù)擔(dān),提升整體系統(tǒng)性能。 您可以在ACK集群Pro版中部署ack-qat-deviceplugin組件,以便使用阿里云第八代Intel Sapphire Rapids神龍節(jié)點上的QAT設(shè)備為業(yè)務(wù)應(yīng)用中的加解密、壓縮解壓縮等操作提速。

相關(guān)概念

Intel QuickAssist Technology(QAT)

英特爾? QAT是英特爾? 至強? 可擴展處理器上集成的工作負(fù)載加速器,可從CPU內(nèi)核分擔(dān)關(guān)鍵的數(shù)據(jù)壓縮和解壓縮、加密和解密以及公鑰數(shù)據(jù)加密任務(wù),并加速這些操作,從而幫助提高CPU性能和效率,減少數(shù)據(jù)占用空間。更多信息,請參見intel官方文檔

ack-qat-deviceplugin組件

ack-qat-deviceplugin組件基于龍蜥社區(qū)開源intel-accel-plugin-qat開發(fā),便于您在ACK集群Pro版中使用QAT,它可以將阿里云第八代Intel Sapphire Rapids神龍節(jié)點上的QAT設(shè)備,通過Kubernetes的Device Plugin機制,將QAT設(shè)備作為特定資源按需分配給集群中運行的Nginx、Envoy等業(yè)務(wù)應(yīng)用,加速加解密、壓縮解壓縮等操作并節(jié)省計算資源。

使用限制

使用QAT加速加解密、壓縮解壓縮的QAT實例必須滿足以下要求:

  • 實例規(guī)格:ecs.ebmg8i和ecs.ebmc8i系列裸金屬實例,本文以ecs.ebmg8i.48xlarge為例介紹。

    說明

    ecs.ebmg8i和ecs.ebmc8i系列裸金屬實例需要提交工單加白名單使用。該實例僅在部分地域可購買使用,可售地域與庫存情況請查詢ECS實例規(guī)格可購買地域總覽

  • 操作系統(tǒng):Alibaba Cloud Linux UEFI 3.2104 Security Enhanced。

  • 如果您已經(jīng)在集群中部署了其他QAT設(shè)備的Device Plugin應(yīng)用,請先將其卸載以免沖突。

前提條件

步驟一:配置節(jié)點加入腳本

首次使用QAT設(shè)備之前,您需要先使用以下腳本更新內(nèi)核參數(shù)并重啟節(jié)點。

重要

為避免重復(fù)配置,建議您為ecs.ebmg8i和ecs.ebmc8i系列的實例創(chuàng)建專用節(jié)點池,并將以下腳本內(nèi)容配置到專用節(jié)點池的實例自定義數(shù)據(jù)中,請勿在實例預(yù)自定義數(shù)據(jù)中配置,否則,會導(dǎo)致節(jié)點加入失敗。更多信息,請參見創(chuàng)建節(jié)點池

yum install kernel-0:5.10.134-16.1.al8.x86_64 -y
if [ $? -ne 0 ];then
    echo "Error: yum update failed"
fi

yum install kernel-modules -y 
if [ $? -ne 0 ];then
    echo "Error: yum install kernel-modules failed"
fi

kernel_path=$(grubby --default-kernel)
kernel_args="intel_iommu=on iommu=pt"
grubby --update-kernel=$kernel_path --args=$kernel_args

reboot -f

步驟二:通過Helm部署ack-qat-deviceplugin

  1. 執(zhí)行以下命令,安裝ack-qat-deviceplugin。

    helm install ack-qat-deviceplugin https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/pre/charts-incubator/ack-qat-deviceplugin-0.1.2.tgz \
      --set regionId="cn-beijing" \
      --set setup.vf_per_pf="16" \
      --set setup.enabled_mode="asym;dc"

    參數(shù)

    是否可選

    說明

    默認(rèn)值

    regionId

    可選

    集群所在地域,配置后使用內(nèi)網(wǎng)鏡像。

    setup.vf_per_pf

    可選

    每個PF可擴展出VF的數(shù)量,即硬件物理設(shè)備上可擴展的虛擬化空間數(shù)量。取值:0~16。

    16

    setup.enabled_mode

    可選

    QAT設(shè)備支持symasymdc三種驅(qū)動。更多驅(qū)動信息,請參見sysfs-driver-qat

    • sym:用于加速對稱加解密。

    • asym:用于加速非對稱加解密。

    • dc:用于加速壓縮解壓縮。

    最多可選擇支持2種驅(qū)動,驅(qū)動之間用英文半角分號(;)分隔。例如aymc;dc表示用于加速非對稱加解密與壓縮解壓縮。

    asym;dc

  2. 執(zhí)行以下命令,為需要部署ack-qat-deviceplugin的節(jié)點打上默認(rèn)的Label。

    kubectl label node cn-beijing.172.17.XX.XX "alibabacloud.com/type"="ebmg8i"
  3. 組件安裝完后,等待幾分鐘,確認(rèn)組件Pod狀態(tài)正常,即集群的kube-system下的ack-qat-deviceplugin狀態(tài)變?yōu)?code data-tag="code" code-type="xCode" class="code">running后,執(zhí)行以下命令查詢節(jié)點的可用VF資源。

    kubectl get nodes -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{range $k,$v:=.status.allocatable}}{{"  "}}{{$k}}{{": "}}{{$v}}{{"\n"}}{{end}}{{end}}'

    預(yù)期輸出:

    cn-beijing.172.17.XX.XX
      cpu: 189280m
      ephemeral-storage: 113783349470
      hugepages-1Gi: 0
      hugepages-2Mi: 0
      memory: 1027672932Ki
      pods: 2133
      qat.intel.com/cy2_dc2: 32
    • 預(yù)期輸出中 qat.intel.com/cy2_dc2: 32表示資源的數(shù)量為32,對于ecs.ebmg8i.48xlarge實例節(jié)點,應(yīng)包含setup.vf_per_pf×2的資源數(shù)量,本例中setup.vf_per_pf默認(rèn)值為16.

    • qat.intel.com/cy{}_dc{}資源指1個QAT設(shè)備包括的加解密(cy)與壓縮解壓縮(dc)的工作隊列數(shù)量。對于ecs.ebmg8i.48xlarge實例節(jié)點,1個QAT設(shè)備包含2個加解密工作隊列,2個壓縮解壓縮工作隊列。

步驟三:部署應(yīng)用并分配QAT設(shè)備資源

本節(jié)以intel官方的boringSSL+Envoy demo為例,介紹如何使用QAT設(shè)備為業(yè)務(wù)應(yīng)用的TLS加解密提速。其中,BoringSSL為開源的安全加密庫;Envoy為通用的云原生網(wǎng)關(guān),用于支持微服務(wù)架構(gòu)下服務(wù)間的通信。

  1. 使用以下命令,創(chuàng)建證書并使用證書創(chuàng)建Secret。

    openssl req -x509 -new -batch -nodes -subj '/CN=localhost' -keyout key.pem -out cert.pem
    kubectl create secret tls envoy-tls-secret --cert cert.pem --key key.pem
  2. 參考以下示例,以ConfigMap的方式創(chuàng)建Envoy配置文件,其中,Envoy需要開啟private_key_providers特性。

    展開查看Envoy配置文件

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: boringssl-envoy-config
    data:
      envoy-conf.yaml: |
        static_resources:
          listeners:
          - address:
              socket_address:
                address: 0.0.0.0
                port_value: 9000
            filter_chains:
              transport_socket:
                name: envoy.transport_sockets.tls
                typed_config:
                  "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
                  common_tls_context:
                    tls_certificates:
                      certificate_chain: { "filename": "/etc/envoy/tls/tls.crt" }
                      private_key_provider:
                        provider_name: qat     # 聲明通過配置provider_name和type_config中的"@type"開啟QAT。 
                        typed_config:
                          "@type": "type.googleapis.com/envoy.extensions.private_key_providers.qat.v3alpha.QatPrivateKeyMethodConfig"
                          poll_delay: 0.002s
                          private_key: { filename: "/etc/envoy/tls/tls.key" }
              filters:
              - name: envoy.http_connection_manager
                typed_config:
                  "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                  codec_type: auto
                  stat_prefix: ingress_http
                  route_config:
                    name: local_route
                    virtual_hosts:
                    - name: backend
                      domains:
                      - "*"
                      routes:
                      - match: { prefix: / }
                        direct_response: { status: 200 }
                  http_filters:
                  - name: envoy.filters.http.router
                    typed_config: 
                      @type\": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
        admin:
          access_log_path: "/dev/null"
          address:
            socket_address:
              address: 0.0.0.0
              port_value: 9001
  3. 部署Envoy應(yīng)用及服務(wù),將上述Secret與ConfigMap作為Volumes配置到應(yīng)用中。

    Envoy鏡像需要使用支持Intel QAT設(shè)備加速TLS、GZIP等功能的龍蜥社區(qū)envoy-accel鏡像。更多詳情,請參見龍蜥社區(qū)鏡像平臺envoy-accel

    說明

    您還可以使用龍蜥鏡像平臺中其他支持QAT設(shè)備加速的nginx-accel、openresty-accel等應(yīng)用的鏡像與示例。

    展開查看部署Envoy應(yīng)用及服務(wù)的YAML文件

    apiVersion: v1
    kind: Service
    metadata:
      name: helloenvoy
      labels:
        app: boringssl-envoy
    spec:
      type: NodePort
      ports:
        - port: 9000
          targetPort: 9000
          protocol: TCP
          name: https
      selector:
        app: boringssl-envoy
    
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: boringssl-envoy
      labels:
        app: boringssl-envoy
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: boringssl-envoy
      template:
        metadata:
          labels:
            app: boringssl-envoy
        spec:
          nodeSelector:
            "alibabacloud.com/type": "ebmg8i"
          containers:
            - name: envoy
              image: registry.openanolis.cn/openanolis/envoy-accel:1.26.2-23  # 使用龍蜥社區(qū)envoy-accel鏡像,支持Intel QAT設(shè)備加速TLS、GZIP等功能。
              securityContext:
                privileged: true # 需要配置特權(quán)容器。
              imagePullPolicy: IfNotPresent
              args:
              - --cpuset-threads
              command:
              - envoy
              - -c
              - /etc/envoy/config/envoy-conf.yaml
              resources:
                limits:
                  qat.intel.com/cy2_dc2: 1
                  cpu: 3
                  memory: "2G"
                requests:
                  cpu: 3
                  memory: "2G"
              ports:
                - containerPort: 9000
              volumeMounts:
                - name: tls
                  mountPath: /etc/envoy/tls
                  readOnly: true
                - name: config
                  mountPath: /etc/envoy/config
                  readOnly: true
                - name: devfs
                  mountPath: /dev  # 需要將設(shè)備掛載到容器。
          volumes:
            - name: devfs
              hostPath:
                path: /dev
                type: ""
            - name: tls
              secret:
                secretName: envoy-tls-secret
            - name: config
              configMap:
                name: boringssl-envoy-config

    其中單進(jìn)程Envoy需要1個加解密和1個壓縮解壓縮設(shè)備,因此設(shè)置qat.intel.com/cy2_dc2資源的limit為1。

  4. 驗證QAT設(shè)備已完成加密解密操作。

    1. 使用以下命令,記錄訪問前QAT設(shè)備的使用計數(shù)。

      #登錄Envoy部署節(jié)點。
      cat /sys/kernel/debug/qat_4xxx_0000\:e8\:00.0/fw_counters

      預(yù)期輸出:

      展開查看預(yù)期輸出

      +------------------------------------------------+
      | FW Statistics for Qat Device                   |
      +------------------------------------------------+
      | Firmware Requests [AE  0]:                   0 |
      | Firmware Responses[AE  0]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  1]:                   0 |
      | Firmware Responses[AE  1]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  2]:                   0 |
      | Firmware Responses[AE  2]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  3]:                   0 |
      | Firmware Responses[AE  3]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  4]:                   0 |
      | Firmware Responses[AE  4]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  5]:                   0 |
      | Firmware Responses[AE  5]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  6]:                   0 |
      | Firmware Responses[AE  6]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  7]:                   0 |
      | Firmware Responses[AE  7]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  8]:                   0 |
      | Firmware Responses[AE  8]:                   0 |
      +------------------------------------------------+
    2. 使用以下命令,通過證書訪問服務(wù)。

      #Client端,即創(chuàng)建Secret時所在的機器上執(zhí)行。
      kubectl port-forward svc/helloenvoy 32296:9000
      curl --cacert cert.pem https://localhost:32296 -v

      預(yù)期輸出:

      展開查看預(yù)期輸出

      *   Trying 127.0.0.1:32296...
      * Connected to localhost (127.0.0.1) port 32296 (#0)
      * ALPN, offering h2
      * ALPN, offering http/1.1
      * successfully set certificate verify locations:
      *  CAfile: cert.pem
      *  CApath: none
      * (304) (OUT), TLS handshake, Client hello (1):
      * (304) (IN), TLS handshake, Server hello (2):
      * (304) (IN), TLS handshake, Unknown (8):
      * (304) (IN), TLS handshake, Certificate (11):
      * (304) (IN), TLS handshake, CERT verify (15):
      * (304) (IN), TLS handshake, Finished (20):
      * (304) (OUT), TLS handshake, Finished (20):
      * SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
      * ALPN, server did not agree to a protocol
      * Server certificate:
      *  subject: CN=localhost
      *  start date: Apr 22 07:32:56 2024 GMT
      *  expire date: May 22 07:32:56 2024 GMT
      *  common name: localhost (matched)
      *  issuer: CN=localhost
      *  SSL certificate verify ok.
      > GET / HTTP/1.1
      > Host: localhost:32296
      > User-Agent: curl/7.79.1
      > Accept: */*
      >
      * Mark bundle as not supporting multiuse
      < HTTP/1.1 200 OK
      < date: Tue, 23 Apr 2024 06:48:53 GMT
      < server: envoy
      < content-length: 0
      <
      * Connection #0 to host localhost left intact
    3. 使用以下命令,記錄訪問后QAT設(shè)備的使用計數(shù)。

      #登錄Envoy部署節(jié)點。
      cat /sys/kernel/debug/qat_4xxx_0000\:e8\:00.0/fw_counters

      預(yù)期輸出:

      展開查看預(yù)期輸出

      +------------------------------------------------+
      | FW Statistics for Qat Device                   |
      +------------------------------------------------+
      | Firmware Requests [AE  0]:                   1 |
      | Firmware Responses[AE  0]:                   1 |
      +------------------------------------------------+
      | Firmware Requests [AE  1]:                   0 |
      | Firmware Responses[AE  1]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  2]:                   0 |
      | Firmware Responses[AE  2]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  3]:                   0 |
      | Firmware Responses[AE  3]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  4]:                   0 |
      | Firmware Responses[AE  4]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  5]:                   0 |
      | Firmware Responses[AE  5]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  6]:                   0 |
      | Firmware Responses[AE  6]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  7]:                   0 |
      | Firmware Responses[AE  7]:                   0 |
      +------------------------------------------------+
      | Firmware Requests [AE  8]:                   0 |
      | Firmware Responses[AE  8]:                   0 |
      +------------------------------------------------+

      預(yù)期輸出表明,QAT使用計數(shù)已增加。

相關(guān)文檔

基于Envoy的QAT設(shè)備加速效果,請參見龍蜥社區(qū)QAT實測效果