ceph iscsi安装

ceph iscsi安装

2020-02-24

#安装包

  1. 下载包https://github.com/ceph/ceph-iscsi
  2. 安装ceph-iscsi配置文件
  3. 安装rbd-target-api所在的ceph-iscsi-cli包
    3.1安装依赖python-configshell,网上
    3.2安装包里的python-rtslib(先卸载老版本)
    3.3安装包里的ceph-iscsi-config
  4. 安装ceph-iscsi-tools
    4.1安装依赖python-pcp,网上
    4.2安装依赖pcp-pmda-lio,网上
    5.安装libtcmu
    6.安装targetcli
    6.1安装python-ethtool,网上
    7.安装tcmu-runner
    8.配置/etc/ceph/iscsi-gateway.cfg

#配置

  1. iscsi-gateway的api端口可能要改,默认是5000
  2. gatway数目也可以iscsi-gateway配置文件中修改minimum_gateways,默认为2
  3. 创建target的时候必须要主机名和ip
  4. 创建好cinder配置后端所需要的池,比如iscsi池
  5. 启动rbd-target-api
  6. target在iscsi-gateway配置文件可以通过ceph_pool,配置gateway.conf文件所在的池
  7. target在iscsi-gateway配置文件可以通过api_ip,配置rbd-target-api所监听的ip

注意

  1. 不同的driver的target名字不能一样
  2. configfs的内容重启可以删除
    3.计算节点要安装iscsid,并配置用户名和密码
  3. 替换自己修改的/usr/bin/rbd-target-api文件
  4. 可以配置ceph_config_dir设置ceph配置路径
    需要修改1 settings文件

    前提准备

    首先看到ceph官网给出的大体结构:

    image

    大体结构

    可以看到主要分为ceph集群、rbd、iscsi网关、initiator(也就是客户端)构成。

    那么所需的准备就如下:

    一个HEALTH_OK的ceph集群,还有剩余的存储空间(给创建的rbd使用)。

    这里是我所搭建的集群:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    $ sudo ceph -scluster:id:     51e9f534-b15a-4273-953c-9b56e9312510health: HEALTH_OKservices:mon: 3 daemons, quorum node1,node2,node3mgr: node1(active), standbys: node2, node3mds: cephfs-1/1/1 up  {0=node1=up:active}osd: 6 osds: 6 up, 6 indata:pools:   2 pools, 64 pgsobjects: 508  objects, 1.9 GiBusage:   26 GiB used, 6.0 TiB / 6.0 TiB availpgs:     64 active+clean
    

    两台linux主机,作为iscsi网关,可以是集群中的主机。

    一台linux主机,作为linux系统下的客户端。

    一台windows主机,作为windows系统下的客户端。


    配置ceph-iscsi网关


    修改osd配置

    安装官网所述,先修改osd的配置:

    1
    2
    3
    
    [osd]
    osd heartbeat grace = 20
    osd heartbeat interval = 5
    

    将上述配置添加到所有ceph节点的/etc/ceph/ceph.conf文件中, 当然可以使用ceph-deploy来推送。

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    $ vim ceph.conf
    $ cat ceph.conf[global]
    fsid = 51e9f534-b15a-4273-953c-9b56e9312510
    mon_initial_members = node1, node2, node3
    mon_host = 192.168.90.233,192.168.90.234,192.168.90.235
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    public_network = 192.168.0.0/16[osd]
    osd heartbeat grace = 20
    osd heartbeat interval = 5$ ceph-deploy --overwrite-conf config push node1 node2 node3
    

    下载所需要的相关rpm包

    这里直接选择Using the Command Line Interface,感觉这个更靠谱一些。

    按照官网所述,yum的repo中需要有以下rpm包:

    image

    所需rpm包

    直接yum install试试可以发现,只有targetclipython-rtslib能装上,而且版本都比官网说的要低,好吧,麻烦来了。

    经过一段几个小时*的搜索……从下面链接中找到了rpm包:

    Build new RPM for 3.0 Missing ceph-iscsi-cli package

    新建repo文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    $ sudo vim /etc/yum.repo.d/iscsi.repo
    $ cat /etc/yum.repo.d/iscsi.repo[ceph-iscsi]
    name=Ceph-iscsi
    baseurl=https://4.chacra.ceph.com/r/ceph-iscsi/master/88f3f67981c7da15448f140f711a1a8413d450b0/centos/7/flavors/default/noarch/
    priority=1
    gpgcheck=0[tcmu-runner]
    name=tcmu-runner
    baseurl=https://3.chacra.ceph.com/r/tcmu-runner/master/eef511565078fb4e2ed52caaff16e6c7e75ed6c3/centos/7/flavors/default/x86_64/
    priority=1
    gpgcheck=0[python-rtslib]
    name=python-rtslib
    baseurl=https://2.chacra.ceph.com/r/python-rtslib/master/67eb1605c697b6307d8083b2962f5170db13d306/centos/7/flavors/default/noarch/
    priority=1
    gpgcheck=0
    

    这里我使用的是本地源,将上面的包下载到本地源:

    1
    2
    
    $ sudo yum install --downloadonly --downloaddir=yum/ceph-iscsi/ targetcli python-rtslib tcmu-runner ceph-iscsi
    $ createrepo -p -d -o yum/ yum/
    

    注意到这里没有包含targetcli的repo,因为没有找到,使用yum基础的Base源或者是Ceph源可以安装targetcli-2.1.fb46-7.el7.noarch.rpm, 虽然官网需要的是targetcli-2.1.fb47 or newer package,但在后续使用中发现没有影响,所以这里就不用管targetcli了。

    那么这里下载下来的就是:

    targetcli-2.1.fb46-7.el7.noarch.rpm python-rtslib-2.1.fb68-1.noarch.rpm tcmu-runner-1.4.0-0.1.51.geef5115.el7.x86_64.rpm ceph-iscsi-3.2-8.g88f3f67.el7.noarch.rpm

    ceph-iscsi网关初始配置

    如果使用的不是集群内的节点作为ceph-iscsi网关,那就需要进行一些初始的配置。

    安装ceph。 从集群中的一台机器上拷贝/etc/ceph/ceph.conf到本机的/etc/ceph/ceph.conf。 从集群中的一台机器上拷贝/etc/ceph/ceph.client.admin.keyring到本机的/etc/ceph/ceph.client.admin.keyring

    当然第2和3步可以直接在deploy节点使用ceph-deploy admin {node-gateway}{node-gateway}就表示网关节点的名字。

    可见这里就是为了将ceph-iscsi网关节点变成一个admin节点。

    这时在网关节点上应该可以执行相关命令操作ceph集群,例如sudo ceph -s查询当前集群的状态。


    安装配置iscsi

    这里官网建议先切换到root用户,方便一点:

    1
    
    $ su root
    

    在两个网关节点上都安装iscsi(注意到上面已经将相关包下载到了本地源,所以可以直接yum安装):

    1
    
    # yum install -y ceph-iscsi
    

    服务启动:

    先创建rbd pool,如果没有的话。

    1
    2
    3
    4
    5
    6
    7
    8
    
    # ceph osd lspools1 cephfs_data
    2 cephfs_metadata# ceph osd pool create rbd 128pool 'rbd' created
    

    创建并修改/etc/ceph/iscsi-gateway.cfg文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    # vim /etc/ceph/iscsi-gateway.cfg
    # cat /etc/ceph/iscsi-gateway.cfg[config]
    # Name of the Ceph storage cluster. A suitable Ceph configuration file allowing
    # access to the Ceph storage cluster from the gateway node is required, if not
    # colocated on an OSD node.
    cluster_name = ceph# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph
    # drectory and reference the filename here
    gateway_keyring = ceph.client.admin.keyring# API settings.
    # The API supports a number of options that allow you to tailor it to your
    # local environment. If you want to run the API under https, you will need to
    # create cert/key files that are compatible for each iSCSI gateway node, that is
    # not locked to a specific node. SSL cert and key files *must* be called
    # 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory
    # on *each* gateway node. With the SSL files in place, you can use 'api_secure = true'
    # to switch to https mode.# To support the API, the bear minimum settings are:
    api_secure = false# Additional API configuration options are as follows, defaults shown.
    # api_user = admin
    # api_password = admin
    # api_port = 5001
    trusted_ip_list = 192.168.90.234,192.168.90.235
    

    上面trusted_ip_list填写的就是两台网关的ip(这里不讨论多网卡的情况)。

    在另外一台网关上复制这个文件:

    1
    
    $ sudo scp cluster@node2:/etc/ceph/iscsi-gateway.cfg /etc/ceph/iscsi-gateway.cfg
    

    在两台网关上都开启rbd-target-api服务:

    1
    2
    3
    
    # systemctl daemon-reload
    # systemctl enable rbd-target-api
    # systemctl start rbd-target-api
    

    配置:(在其中一台网关配置就行)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    # gwcli
    /> cd /iscsi-targets/iscsi-targets> create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
    ok/iscsi-targets> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways/iscsi-target...-igw/gateways> create node2 192.168.90.234
    Adding gateway, sync'ing 0 disk(s) and 0 client(s)
    ok/iscsi-target...-igw/gateways> create node3 192.168.90.235
    Adding gateway, sync'ing 0 disk(s) and 0 client(s)
    ok/iscsi-target...-igw/gateways> cd /disks/disks> create pool=rbd image=disk_1 size=200G
    ok/disks> cd /iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts/iscsi-target...csi-igw/hosts> create iqn.1994-05.com.redhat:rh7-client
    ok/iscsi-target...at:rh7-client> auth username=myiscsiusername password=myiscsipassword
    ok/iscsi-target...at:rh7-client> disk add rbd/disk_1
    ok
    

    配置完成,可以看到我当前的目录结构:

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    /> ls
    o- / ......................................................................... [...]o- cluster ......................................................... [Clusters: 1]| o- ceph .......................................................... [HEALTH_WARN]|   o- pools .......................................................... [Pools: 3]|   | o- cephfs_data ... [(x3), Commit: 0.00Y/2028052096K (0%), Used: 2029431878b]|   | o- cephfs_metadata .... [(x3), Commit: 0.00Y/2028052096K (0%), Used: 77834b]|   | o- rbd ................ [(x3), Commit: 200G/2028052096K (10%), Used: 15352b]|   o- topology ................................................ [OSDs: 6,MONs: 3]o- disks ........................................................ [200G, Disks: 1]| o- rbd ............................................................ [rbd (200G)]|   o- disk_1 ................................................ [rbd/disk_1 (200G)]o- iscsi-targets ............................... [DiscoveryAuth: None, Targets: 1]o- iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw ..................... [Gateways: 2]o- disks .......................................................... [Disks: 1]| o- rbd/disk_1 ............................................... [Owner: node3]o- gateways ............................................ [Up: 2/2, Portals: 2]| o- node2 ............................................. [192.168.90.234 (UP)]| o- node3 ............................................. [192.168.90.235 (UP)]o- host-groups .................................................. [Groups : 0]o- hosts .............................................. [Hosts: 1: Auth: CHAP]o- iqn.1994-05.com.redhat:rh7-client .......... [Auth: CHAP, Disks: 1(200G)]o- lun 0 ................................ [rbd/disk_1(200G), Owner: node3]
    

    linux客户端配置

    在作为客户端的linux主机上。

    安装相关组件:

    1
    2
    
    $ sudo yum install -y iscsi-initiator-utils
    $ sudo yum install -y device-mapper-multipath
    

    开启multipathd服务并进行配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    $ sudo mpathconf --enable --with_multipathd y$ sudo vim /etc/multipath.conf
    $ sudo cat /etc/multipath.confdevices {device {vendor                 "LIO-ORG"hardware_handler       "1 alua"path_grouping_policy   "failover"path_selector          "queue-length 0"failback               60path_checker           turprio                   aluaprio_args              exclusive_pref_bitfast_io_fail_tmo       25no_path_retry          queue}
    }
    

    修改客户端名称:

    1
    2
    3
    4
    
    $ sudo vim /etc/iscsi/initiatorname.iscsi
    $ sudo cat /etc/iscsi/initiatorname.iscsiInitiatorName=iqn.1994-05.com.redhat:rh7-client
    

    修改chap认证配置文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    $ sudo vim /etc/iscsi/iscsid.conf
    $ sudo cat /etc/iscsi/iscsid.conf...
    # *************
    # CHAP Settings
    # *************# To enable CHAP authentication set node.session.auth.authmethod
    # to CHAP. The default is None.
    node.session.auth.authmethod = CHAP# To set a CHAP username and password for initiator
    # authentication by the target(s), uncomment the following lines:
    node.session.auth.username = myiscsiusername
    node.session.auth.password = myiscsipassword
    ...

    发现target:

    1
    2
    3
    4
    
    $ sudo iscsiadm -m discovery -t st -p 192.168.90.234192.168.90.234:3260,1 iqn.2003-01.org.linux-iscsi.rheln1
    192.168.90.235:3260,2 iqn.2003-01.org.linux-iscsi.rheln1
    

    登入target:

    1
    
    $ sudo iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.rheln1 -l
    

    查看是否成功:

    1
    2
    3
    4
    5
    6
    7
    
    $ sudo multipath -ll
    mpatha (360014050fedd563975249adb2e84e978) dm-2 LIO-ORG ,TCMU device     
    size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
    |-+- policy='queue-length 0' prio=50 status=active
    | `- 3:0:0:0 sdc 8:32 active ready running
    `-+- policy='queue-length 0' prio=10 status=enabled`- 2:0:0:0 sdb 8:16 active ready running
    

    在fdisk中就可以直接看到这个“硬盘”:

     

    1
    2
    3
    4
    5
    6
    7
    8
    
    $ sudo fdisk -l...
    Disk /dev/mapper/mpatha: 10.7 GB, 10737418240 bytes, 20971520 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 524288 bytes
    ...
    

    windows客户端配置

    控制面板->管理工具->iSCSI 发起程序

    image

    控制面板->管理工具

    image

    管理工具->iSCSI 发起程序

    修改发起程序名称:

    image

    发起程序名称

    添加发现目标门户:

     

    添加发现目标门户

    可以看到出现目标:

     

    出现目标

    连接到该目标:

    image

    连接目标

    修改高级设置:

    image

    修改高级设置

    可以看到已连接:

    image

    可以看到已连接

    可以在磁盘管理中看到硬盘已经连接:

    image

    磁盘管理

    这里将它分为F盘,并且成功往里面放了一个文件:

    image

    分配成为F盘

    image

    放入文件成功


    Health Warning

    注意到此时ceph集群可能会出现一个Health Warning

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    $ sudo ceph -scluster:id:     51e9f534-b15a-4273-953c-9b56e9312510health: HEALTH_WARNapplication not enabled on 1 pool(s)services:mon:         3 daemons, quorum node1,node2,node3mgr:         node1(active), standbys: node2, node3mds:         cephfs-1/1/1 up  {0=node1=up:active}osd:         6 osds: 6 up, 6 intcmu-runner: 2 daemons activedata:pools:   3 pools, 192 pgsobjects: 559  objects, 2.1 GiBusage:   27 GiB used, 6.0 TiB / 6.0 TiB availpgs:     192 active+cleanio:client:   2.5 KiB/s rd, 2 op/s rd, 0 op/s wr
    

    从官网中可以看到这个warning发生的原因New in Luminous: pool tags, 另外使用ceph health detail也可以看到解决方法:

    1
    2
    3
    4
    5
    6
    
    $ sudo ceph health detailHEALTH_WARN application not enabled on 1 pool(s)
    POOL_APP_NOT_ENABLED application not enabled on 1 pool(s)application not enabled on pool 'rbd'use 'ceph osd pool application enable <pool-name> <app-name>', where <app-name> is 'cephfs', 'rbd', 'rgw', or freeform for custom applications.
    

    这里就将所建立的rbd池标记为rbd

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    $ sudo ceph osd pool application enable rbd rbdenabled application 'rbd' on pool 'rbd'$ sudo ceph -scluster:id:     51e9f534-b15a-4273-953c-9b56e9312510health: HEALTH_OKservices:mon:         3 daemons, quorum node1,node2,node3mgr:         node1(active), standbys: node2, node3mds:         cephfs-1/1/1 up  {0=node1=up:active}osd:         6 osds: 6 up, 6 intcmu-runner: 2 daemons activedata:pools:   3 pools, 192 pgsobjects: 559  objects, 2.1 GiBusage:   27 GiB used, 6.0 TiB / 6.0 TiB availpgs:     192 active+cleanio:client:   2.0 KiB/s rd, 1 op/s rd, 0 op/s wr
    

    问题解决。

     

需要修改2 /usr/lib/python2.7/site-packages/gwcli/ceph.py

1
2
3
UIGroup.__init__(self, 'clusters', parent)self.ceph_config_dir = settings.config.ceph_config_dirself.default_ceph_conf = '{}/{}.conf'.format(self.ceph_config_dir, settings.config.cluster_name)

 

1
2
把get_cluster函数的
CephGroup.ceph_config_dir改成self.ceph_config_dir

上面的修改涉及到ceph-iscsi-cli和ceph-iscsi-config

  1. gateway ha配置
    6.1 首先在每个节点安装包,然后配置/etc/ceph/iscsi-gateway.cfg,把ip都加上
    6.2 在某一个节点使用gwcli创建gateway
    6.3 创建gateway之后会自动同步
    6.4 在为创建gwcli之前,这个节点的gwcli命令是不可用的

cinder的参考配置如下

1
2
3
4
5
6
7
8
9
10
11
[ceph_iscsi2]
volume_driver = cinder.volume.drivers.rbd_iscsi.rbd_iscsi.RbdISCSIDriver
volume_backend_name = ceph_iscsi2
ceph_rbd_iscsi_target_ips = 10.85.46.92:3260
ceph_rbd_iscsi_target_iqns = iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw2
ceph_rbd_iscsi_auth = chap/tstack12/tstack1234567
ceph_pool = iscsi
ceph_api_protocol = http
rbd_iscsi_controller_ips = 10.85.46.92:5001
username = admin
password = admin

multipath配置

1
2
3
4
5
6
7
8
9
10
11
12
[ceph_iscsi2]
volume_driver = cinder.volume.drivers.rbd_iscsi.rbd_iscsi.RbdISCSIDriver
volume_backend_name = ceph_iscsi2
#ceph_rbd_iscsi_target_ips = 10.85.46.92:3260
ceph_rbd_iscsi_target_ips = 10.85.46.94:3260,10.85.46.96:3260
ceph_rbd_iscsi_target_iqns = iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw2
ceph_rbd_iscsi_auth = chap/tstack12/tstack1234567
ceph_pool = iscsi
ceph_api_protocol = http
rbd_iscsi_controller_ips = 10.85.46.92:5001
username = admin
password = admin

 

多路径配置

  • nova的compute配置文件要在libvirt section下面增加

    1
    
    volume_use_multipath = True
    
  • 安装multipathd

    1
    2
    3
    4
    
    yum install device-mapper-multipath
    mpathconf --enable
    systemctl restart multipathd.service
    systemctl enable multipathd.service
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
配置如下:
devices {device {vendor                  "Tencent"product                 "Tsan"hardware_handler        "1 alua"path_grouping_policy    group_by_prio#path_selector           "queue-length 0"path_selector           "round-robin 0"failback                immediatepath_checker            turprio                    aluaprio_args               exclusive_pref_bitdev_loss_tmo            30fast_io_fail_tmo        5no_path_retry           queue}
}

内核模块支持

tcmu-runner需要加载内核模块target_core_user,这文件路径在

1
/lib/modules/`uname -r`/kernel/drivers/target/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang 字符串操作实例

package mainimport s "strings"import "fmt"var p fmt.Printlnfunc main() {p("Contains: ", s.Contains("test", "es")) //是否包含 truep("Count: ", s.Count("test", "t")) //字符串出现…

http://www.easyui.info/archives/396.html

http://www.easyui.info/archives/396.html转载于:https://www.cnblogs.com/noert/p/3406183.html

Tensorflow C3D完成视频动作识别

本文是视频动作识别领域经典的C3D网络的简易实现&#xff0c;可以作为动作识别的入门。论文为<Learning Spatiotemporal Features with 3D Convolutional Networks>(ICCV 2015)。 框架&#xff1a;Tensorflow (1.6)python(2.7)slim 数据集&#xff1a;UCF101. Center f…

beego上传文件

html代码&#xff1a; <form id"fform" method"POST" enctype"multipart/form-data"> <input id"myfile" name"myfile" type"file" /> <input type"submit" value"保存" /&…

去除表中重复的数据

2019独角兽企业重金招聘Python工程师标准>>> 表数据如下&#xff1a; 查询表中重复的数据&#xff1a; SELECT * FROM t_class WHERE classname IN (SELECT classname FROM t_class GROUP BY classname HAVING COUNT(classname) > 1) 结果如下&#xff1a; 显示…

golang中的类和接口的使用

类使用&#xff1a;实现一个people中有一个sayhi的方法调用功能&#xff0c;代码如下&#xff1a; type People struct {//..}func (p *People) SayHi() {fmt.Println("************************* say hi !!")}func (this *LoginController) Get() {p : new(People)p…

基于动态骨骼的动作识别方法ST-GCN

解读&#xff1a;基于动态骨骼的动作识别方法ST-GCN&#xff08;时空图卷积网络模型&#xff09; 2018年04月09日 01:14:14 我是婉君的 阅读数 16076更多 分类专栏&#xff1a; 计算机视觉 论文 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协…

winform中textbox属性Multiline=true时全选

1、文本框右键属性 > 添加KeyDown事件。 2、添加如下代码&#xff1a; private void txt_result_KeyDown(object sender, KeyEventArgs e){if (e.Control && e.KeyCode Keys.A){((TextBox)sender).SelectAll();}}

LVS性能调优小记

lvs调优主要是针对内核参数的调优一、调整内核参数CONFIG_IP_VS_TAB_BITS1.1 CONFIG_IP_VS_TAB_BITS说明IPVS connection hash table size&#xff0c;取值范围:[12,20]。该表用于记录每个进来的连接及路由去向的信息。连接的Hash表要容纳几百万个并发连接&#xff0c;任何一个…

pyTorch实现C3D模型的视频行为识别实践

1、3D卷积t简介 2、C3D模型原理与PyTorch实现 2.1、C3D模型结构 2.2、C3D视频动作识别&#xff08;附PyTorch代码&#xff09; 2.3、测试结果 参考 1、3D卷积的简介 在图像处理领域&#xff0c;被卷积的都是静态图像&#xff0c;所以使用2D卷积网络就足以。而在视频理解领域&…

nodejs与javascript中的aes加密

简介 1.aes加密简单来说&#xff0c;在密码学中又称Rijndael加密法&#xff0c;是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES&#xff0c;已经被多方分析且广为全世界所使用。高级加密标准已然成为对称密钥加密中最流行的算法之一。 2.AES的区块长度固定…

SQL事务控制语言(TCL)

1、什么是事务&#xff1f; 事务&#xff08;Transaction&#xff09;是由一系列相关的SQL语句组成的最小逻辑工作单元&#xff0c;在程序更新数据库时事务事关重要&#xff0c;因为必须维护数据的完整性。事务由数据操作语言完成&#xff0c;是对数据库所做的一个或多个修改。…

U811.1接口EAI系列之六--物料上传--VB语言

1. 业务系统同步U811.1存货档案通用方法. 2.具体代码处理如下&#xff1a; 作者&#xff1a;王春天 2013-11-06 地址&#xff1a;http://www.cnblogs.com/spring_wang/p/3409844.html 代码中调用的通用方法在: http://www.cnblogs.com/spring_wang/p/3393147.html 物料信息生成…

HyperLPR Python3车牌识别系统的入门使用

概要 HyperLRP是一个开源的、基于深度学习高性能中文车牌识别库&#xff0c;由北京智云视图科技有限公司开发&#xff0c;支持PHP、C/C、Python语言&#xff0c;Windows/Mac/Linux/Android/IOS 平台。 github地址&#xff1a; https://github.com/zeusees/HyperLPR TODO 支…

maven 基本命令

今天复习了一下maven命令的使用&#xff0c;这里总结一下&#xff0c;作为后续使用的参考&#xff1a;1. mvn clean清理命令&#xff0c;该命令用来清除原来编译生成的.class和.jar 等文件。maven的做法比较暴力&#xff0c;直接将放置这类文件的targer目录删除了&#xff01;2…

Linux——软件包简单学习笔记

Linux中的是那种软件包&#xff1a; &#xff08;这里学习是基于redHat的Cent-OS&#xff09; 1&#xff1a; 二进制软件包管理&#xff08;RPM、YUM&#xff09; 2&#xff1a;源代码包安装 3&#xff1a; 脚本安装&#xff08;Shell或Java脚本&#xff09; 一&#xff1a; 二…

表单reset无法重置hidden的解决方案

方法一&#xff1a;用text代替hidden&#xff0c;设置text隐藏 <input id"id" name"id" style"display: none;" value"0" /> 方法二&#xff1a;单独处理hidden类型 jQuery("#saveForm").form("reset");jQu…

python http 返回json中文乱码

json.dumps(var,ensure_asciiFalse)并不能解决中文乱码的问题 python 2.7版本 # -*- coding: utf-8 -*- m {a : 你好}print m >{a: \xe4\xbd\xa0\xe5\xa5\xbd}print json.dumps(m) >{"a": "\u4f60\u597d"}print json.dumps(m,ensure_asciiFalse) …

javascript中Array的操作

concat&#xff08;组合数组&#xff09;join&#xff08;数组转字符串&#xff09;pop&#xff08;删除最后一个元素&#xff09;shift&#xff08;删除第一个元素&#xff09;push&#xff08;在数组尾部添加新元素&#xff09;unshift&#xff08;在数组头部添加新元素&…

Github git clone国内mirror加速

Github国内加速克隆及下载 fastgit.orghttps://doc.fastgit.org/ gitclone.comhttps://gitclone.com/ giteehttps://gitee.com/mirrors cnpmjs.orghttps://github.com.cnpmjs.org/ 克隆加速 #原地址 git clone https://github.com/kubernetes/kubernetes.git#改为 git cl…