minio集群部署

最近接触到minio, 将本地集群部署,分别在ubuntu、centos stream9上进行了搭建,目前看里面的小坑不小,记录以下教程,以备忘、以供他人借鉴。

#### 准备

1、因新版本的minio要求,集群部署必须使用挂载非 root 盘的目录,所以这里使用系统盘之外的磁盘

2、各类限制、创建目录等

2.1 防火墙关闭

systemctl stop firewalld

systemctl disable firewalld

systemctl status firewalld

2.2 如果用centos桌面版需要将规则关闭访问控制机制 SELinux(Security-Enhanced Linux)

编辑SELinux的配置文件/etc/selinux/config,将SELINUX设置为disabled

重启后查看状态 getenforce 显示为disabled

2.3 各节点创建 /etc/minio目录,并给权限

2.4 如果是虚机添加磁盘,需先分区再格式化,创建数据目录,挂载,mount -a

2.5 下载minio执行文件为https://dl.min.io/server/minio/release/linux-amd64/minio (注:不要用商用版)

2.6 使用命令测试,最后用sh脚本启动 (注:不用写到配置文件里的形式)

2.7 集群所有节点,命令测试启动成功后,登录后台创建bucket并创建Access Keys,并设置access keys为public

2.8 启动时添加上环境变量,两命令export MINIO_ACCESS_KEY= "accesskeys" export MINIO_SECRET_KEY="xxxxx"

2.9 创建/data/minio/data01目录,需要查看所有者,生产环境权限有限。find ./目录名 -ls

2.9.1 cannot open /dev/sdb1: Device or resource busy 这个错误表明设备

/dev/sdb1正在被某个进程或操作使用,因此无法打开。

sudo fuser -m /dev/sdb1

2.9.2 查询minio错误日志

journalctl -u minio.service

/var/log/message

执行步骤参看以下命令

```
root@wolf-Parallels-Virtual-Platform:~# fdisk -l  或 lsblk
Disk /dev/loop0:4 KiB,4096 字节,8 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop1:61.96 MiB,64970752 字节,126896 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop2:163.29 MiB,171225088 字节,334424 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop3:400.8 MiB,420265984 字节,820832 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop4:91.69 MiB,96141312 字节,187776 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop5:45.86 MiB,48091136 字节,93928 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop6:46.96 MiB,49242112 字节,96176 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop7:284 KiB,290816 字节,568 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/sda:64 GiB,68719476736 字节,134217728 个扇区   #这个是系统盘
Disk model: Ubuntu Linux2-0
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
磁盘标识符:DC11A4D4-0F37-4E41-8F16-4689EBC57DB4

设备          起点      末尾      扇区  大小 类型
/dev/sda1     2048      4095      2048    1M BIOS 启动
/dev/sda2     4096   1054719   1050624  513M EFI 系统
/dev/sda3  1054720 134215679 133160960 63.5G Linux 文件系统


Disk /dev/sdb:64 GiB,68719476736 字节,134217728 个扇区   #这个是我新增加的磁盘
Disk model: Ubuntu Linux2-3
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节


Disk /dev/sdc:64 GiB,68719476736 字节,134217728 个扇区   #这个也是我新增加的磁盘
Disk model: Ubuntu Linux2-4
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
```

对磁盘进行格式化并挂载,在格式化之前先对磁盘进行分区,这里我直接分一个区

```
root@wolf-Parallels-Virtual-Platform:~# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.37.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x5c7bcbc7 的新 DOS 磁盘标签。

命令(输入 m 获取帮助): n #输入n
分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p): p  #选择主分区,下面就一直回车即可
分区号 (1-4, 默认  1):
第一个扇区 (2048-134217727, 默认 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-134217727, 默认 134217727):

创建了一个新分区 1,类型为“Linux”,大小为 64 GiB。

命令(输入 m 获取帮助): w #保存
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
root@wolf-Parallels-Virtual-Platform:~# fdisk /dev/sdc #第二个磁盘

欢迎使用 fdisk (util-linux 2.37.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x87a1d682 的新 DOS 磁盘标签。

命令(输入 m 获取帮助): n
分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (1-4, 默认  1):
第一个扇区 (2048-134217727, 默认 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-134217727, 默认 134217727):

创建了一个新分区 1,类型为“Linux”,大小为 64 GiB。

命令(输入 m 获取帮助): w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
```

格式化

```
root@wolf-Parallels-Virtual-Platform:~# mkfs.xfs /dev/sdb1 #没有mkfs.xfs 那就安装即可
找不到命令 “mkfs.xfs”,但可以通过以下软件包安装它:
apt install xfsprogs
root@wolf-Parallels-Virtual-Platform:~# apt install xfsprogs
root@wolf-Parallels-Virtual-Platform:~# mkfs.xfs /dev/sdb1 #格式化
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=4194240 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=16776960, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=8191, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =无                    extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
root@wolf-Parallels-Virtual-Platform:~# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1              isize=512    agcount=4, agsize=4194240 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=16776960, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=8191, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =无                    extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
```

挂载到系统里

```
root@wolf-Parallels-Virtual-Platform:~# mkdir /data/minio/{data01,data02} -p
root@wolf-Parallels-Virtual-Platform:~# chown wolf:wolf /data/minio -R #给挂载的目录授权
root@wolf-Parallels-Virtual-Platform:~# ls -l /data/minio
总计 12
drwxr-xr-x 3 wolf wolf   24  9月 29 15:59 data01
drwxr-xr-x 3 wolf wolf   24  9月 29 15:59 data02
root@wolf-Parallels-Virtual-Platform:~# mount /dev/sdb1 /data/minio/data01 #临时挂在,重启失效
root@wolf-Parallels-Virtual-Platform:~# mount /dev/sdc1 /data/minio/data02
root@wolf-Parallels-Virtual-Platform:~# blkid #查看磁盘的id
/dev/sda3: UUID="f11cdc00-8283-42d8-99ac-f260516112ac" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="ec38747c-6bad-4db4-9264-0d0d8b6ecba9"
/dev/loop1: TYPE="squashfs"
/dev/sdb1: UUID="04d19afa-3c2b-4fe1-89c8-f44ecdd98c30" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="5c7bcbc7-01"
/dev/loop6: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop0: TYPE="squashfs"
/dev/sdc1: UUID="5abe4743-d0e8-47ea-b87d-941536e79cdf" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="87a1d682-01"
/dev/loop7: TYPE="squashfs"
/dev/sda2: UUID="C6C5-DEF7" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3f5a0baa-261f-40bf-8d29-6f8fc2392ebf"
/dev/sda1: PARTUUID="6d53a19e-91c2-4016-8006-2df8d723705f"
/dev/loop5: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
root@wolf-Parallels-Virtual-Platform:~# cat /etc/fstab #在启动文档里把挂在的盘加进去
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda3 during installation
UUID=f11cdc00-8283-42d8-99ac-f260516112ac /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda2 during installation
UUID=C6C5-DEF7  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
UUID=04d19afa-3c2b-4fe1-89c8-f44ecdd98c30 /data/minio/data01 xfs default 0 0 #对应的/dev/sdb1
UUID=5abe4743-d0e8-47ea-b87d-941536e79cdf /data/minio/data02 xfs default 0 0 #对应的/dev/sdc1
```

验证一下挂载的磁盘

```
root@wolf-Parallels-Virtual-Platform:~# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=965252k,nr_inodes=241313,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=200496k,mode=755,inode64)
/dev/sda3 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=5906)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
ramfs on /run/credentials/systemd-sysusers.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
/var/lib/snapd/snaps/bare_5.snap on /snap/bare/5 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/firefox_1635.snap on /snap/firefox/1635 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/core20_1587.snap on /snap/core20/1587 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/gnome-3-38-2004_112.snap on /snap/gnome-3-38-2004/112 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/gtk-common-themes_1535.snap on /snap/gtk-common-themes/1535 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/snapd_16292.snap on /snap/snapd/16292 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/snap-store_582.snap on /snap/snap-store/582 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/snapd-desktop-integration_14.snap on /snap/snapd-desktop-integration/14 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/dev/sda2 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/127 type tmpfs (rw,nosuid,nodev,relatime,size=200492k,nr_inodes=50123,mode=700,uid=127,gid=133,inode64)
portal on /run/user/127/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=127,group_id=133)
tmpfs on /run/snapd/ns type tmpfs (rw,nosuid,nodev,noexec,relatime,size=200496k,mode=755,inode64)
gvfsd-fuse on /run/user/127/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=127,group_id=133)
nsfs on /run/snapd/ns/snapd-desktop-integration.mnt type nsfs (rw)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=200492k,nr_inodes=50123,mode=700,uid=1000,gid=1000,inode64)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
/dev/sdb1 on /data/minio/data01 type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota) # 这两个是挂载的磁盘
/dev/sdc1 on /data/minio/data02 type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
```

配置minio集群的启动

```
root@wolf-Parallels-Virtual-Platform:~# chmod +x /usr/local/bin/minio
#注意,如果执行在用普通用户执行会出现没有权限写入,如果执行了,需要把/data/minio/data01和/data/minio/data02的隐藏文件删除在用普通用户执行
root@wolf-Parallels-Virtual-Platform:~# minio server --config-dir /etc/minio --console-address :9001         --address :9000         http://10.211.55.9/data/minio/data01  http://10.211.55.9/data/minio/data02 http://10.211.55.10/data/minio/data01 http://10.211.55.10/data/minio/data02
.............................................................
Automatically configured API requests per node based on available memory on the system: 19
All MinIO sub-systems initialized successfully in 1.865853508s
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
MinIO Object Storage Server
Copyright: 2015-2023 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2023-08-09T23-30-22Z (go1.19.12 linux/amd64)

Status:         4 Online, 0 Offline.
S3-API: http://10.211.55.9:9000  http://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadmin

Console: http://10.211.55.9:9001 http://127.0.0.1:9001
RootUser: minioadmin
RootPass: minioadmin
```

测试启动通过,下面设置开机自启动

```
root@wolf-Parallels-Virtual-Platform:~# vim /etc/default/minio.sh
#!/bin/bash
minio server --config-dir /etc/minio --console-address :9001         --address :9000         http://10.211.55.9/data/minio/data01  http://10.211.55.9/data/minio/data02 http://10.211.55.10/data/minio/data01 http://10.211.55.10/data/minio/data02
root@wolf-Parallels-Virtual-Platform:~# chmod +x /etc/default/minio.sh
root@wolf-Parallels-Virtual-Platform:~# vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
User=wolf
Group=wolf
ExecStart=/etc/default/minio.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
root@wolf-Parallels-Virtual-Platform:~# chmod +x  /usr/lib/systemd/system/minio.service
root@wolf-Parallels-Virtual-Platform:~# chown wolf:wolf -R /etc/default/
```

使用普通用户启动

```
wolf@wolf-Parallels-Virtual-Platform:~$ sudo systemctl daemon-reload
[sudo] wolf 的密码:
wolf@wolf-Parallels-Virtual-Platform:~$ sudo systemctl restart minio
wolf@wolf-Parallels-Virtual-Platform:~$ sudo systemctl status minio
● minio.service - Minio service
     Loaded: loaded (/lib/systemd/system/minio.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-09-29 16:39:15 CST; 6s ago
       Docs: https://docs.minio.io/
   Main PID: 2667 (minio.sh)
      Tasks: 9 (limit: 2262)
     Memory: 150.7M
        CPU: 486ms
     CGroup: /system.slice/minio.service
             ├─2667 /bin/bash /etc/default/minio.sh
             └─2668 minio server --config-dir /etc/minio --console-address :9001 --address :9000 http://10.211.55.9/dat>

Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: MinIO Object Storage Server
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: Copyright: 2015-2023 MinIO, Inc.
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl->
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: Version: RELEASE.2023-08-09T23-30-22Z (go1.19.12 linux/>
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: Status:         4 Online, 0 Offline.
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: S3-API: http://10.211.55.9:9000  http://127.0.0.1:9000
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: Console: http://10.211.55.9:9001 http://127.0.0.1:9001
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]: Documentation: https://min.io/docs/minio/linux/index.ht>
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]:  You are running an older version of MinIO released 1 y>
Sep 29 16:39:16 wolf-Parallels-Virtual-Platform minio.sh[2668]:  Update: Run `mc admin update`

wolf@wolf-Parallels-Virtual-Platform:~$ ls -l /usr/lib/systemd/system/minio.service
-rwxr-xr-x 1 root root 204 Sep 29 16:38 /usr/lib/systemd/system/minio.service
```

验证

在其中一个节点里创建一个文件,看另一个节点是否有,如果有说明成功

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

已经被这几种广告彻底逼疯……还好有救了

这个假期回家团聚&#xff0c;爸妈小心翼翼问我手机越来越难用了&#xff0c;让我帮忙看看是不是中病毒了&#xff0c;了解后才知道原来事情是这样的&#xff1a; 以前开屏广告不小心误触已经让人恼火&#xff0c;现在是手机轻微动一动就会进入广告&#xff0c;打开app最后都不…

探秘AIPC软件:云端和本地如何奏响混合乐章

AIPC软件的魅力 ©作者|chuiyuw 来源|神州问学 一、AI PC 的崛起之势 1. 传统 PC 受到 AI PC 挑战 AI PC 与传统 PC 相比&#xff0c;具有显著的不同。硬件方面&#xff0c;AI PC 在传统 PC 职能的基础上&#xff0c;集成了混合 AI 算力单元&#xff0c;通常配备高性能处…

《花100块做个摸鱼小网站! 》第七篇—谁访问了我们的网站?

⭐️基础链接导航⭐️ 服务器 → ☁️ 阿里云活动地址 看样例 → &#x1f41f; 摸鱼小网站地址 学代码 → &#x1f4bb; 源码库地址 一、前言 大家好呀&#xff0c;我是summo&#xff0c;最近发生了些事情(被裁员了&#xff0c;在找工作中)导致断更了&#xff0c;非常抱歉。…

GS-SLAM论文阅读笔记-CG-SLAM

前言 这是一篇不是最新的工作&#xff0c;我之前没有阅读&#xff0c;但是我前几天阅读GLC-SLAM的时候&#xff0c;发现它的一部分内容参考了CG-SLAM&#xff0c;并且CG-SLAM最近被ECCV2024接收&#xff0c;说明这是一片值得参考的好文章&#xff0c;接下来就阅读一下吧&#…

indeX ParaView插件

适用于 ParaView 的 NVIDIA IndeX 插件 文章目录 前言1. 以交互方式分析整个数据集。更快地取得见解。2. 特性和优势3. 结构化和非结构化立体数据的实时可视化4. 无缝的工作流程5. 快速分析大规模数据6. 开源插件前言 帮助更快获得科学发现的交互式立体可视化功能 1. 以交互方…

【完-网络安全】Shell与脚本

文章目录 1.CLI与GUI2.终端和Shell2.1 Shell 壳层2.2 终端2.3 终端和Shell区别3.标准流 4.PowerShell4.1 管理员与非管理员4.2 指令4.3 重定向4.4 管道 5.环境变量5.1 影响范围5.2环境变量的作用5.3 常见的环境变量 6.脚本 1.CLI与GUI CLI命令行界面(CLl,Command Line Interfa…

qt+opengl 实现纹理贴图,平移旋转,绘制三角形,方形

1 首先qt 已经封装了opengl&#xff0c;那么我们就可以直接用了&#xff0c;这里面有三个函数需要继承 virtual void initializeGL() override; virtual void resizeGL(int w,int h) override; virtual void paintGL() override; 这三个函数是实现opengl的重要函数。 2 我们…

粗糙表面仿真和处理软件

首款基于粗糙表面的仿真和处理软件&#xff0c;该软件具有三种方法&#xff0c;主要是二维数字滤波法&#xff0c;相位频谱法和共轭梯度法。可以分别仿真具有高斯和非高斯分布的粗糙表面&#xff0c;其中非高斯表面利用Johnson转换系统进行变换给定偏度和峰度。对生成的粗糙表面…

k8s网络通信

k8s通信整体架构 k8s通过CNI接口接入其他插件来实现网络通讯。目前比较流行的插件有flannel&#xff0c;calico等 CNI插件存放位置&#xff1a;# cat /etc/cni/net.d/10-flannel.conflist 插件使用的解决方案如下 虚拟网桥&#xff0c;虚拟网卡&#xff0c;多个容器共用一个虚…

YOLO11改进|注意力机制篇|引入局部注意力HaloAttention

目录 一、【HaloAttention】注意力机制1.1【HaloAttention】注意力介绍1.2【HaloAttention】核心代码 二、添加【HaloAttention】注意力机制2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【HaloAttention】注意力机制 1.1【HaloAttent…

同望OA tooneAssistantAttachement.jsp 任意文件读取漏洞复现

0x01 产品简介 同望OA,即同望科技打造的智企云协同管理系统,是一款高效的企业协同移动办公系统。秉承“互联网++企业管理”理念,定位于以移动互联办公为基础的企业协同管理软件平台。它旨在通过内置常用标准模块与专项管理模块应用,安全快速地打通管理与业务通道,实现管理…

科技控的双十一:精选五大热销数码产品,性价比爆表

随着每年一度的“双十一”购物狂欢节的临近&#xff0c;无数科技爱好者们已经开始摩拳擦掌&#xff0c;准备在这场年度大促中大展身手。对于热衷于追逐最新科技趋势的朋友们来说&#xff0c;“双十一”不仅仅是一场简单的购物活动&#xff0c;更是一个探索、发现并拥抱前沿科技…

私域电商新纪元:消费增值模式引领百万业绩飞跃

各位朋友&#xff0c;我是吴军&#xff0c;专注于带领大家深入探索私域电商领域的非凡魅力与潜在机会。 今天&#xff0c;我想与大家分享一个鼓舞人心的真实故事。在短短的一个月内&#xff0c;我们的合作伙伴实现了业绩的飞跃&#xff0c;突破百万大关&#xff0c;并且用户活跃…

大贤3D家谱-一键寻找家谱本源

点击“溯”&#xff0c;您可以追溯到当前节点的家谱本源。 这一功能将帮助您更深入地了解家族的历史和背景。 通过这一操作&#xff0c;系统会自动标注出与您当前节点相关的祖先信息&#xff0c;并以金色字体突出显示&#xff0c;便于您快速识别和查看。 演示如下&#xff1…

协变和逆变、事件、匿名函数

定义:协变(out)和逆变(in)是用于接口和委托中修饰泛型的,定义泛型类型的使用区域。 语法:<out T>那么T的数据类型只能用于返回值。<in T>那么T的数据类型只能用于参数列表。 //自定义委托 public delegate Result Fun<in T, in K, out Result>(…

Klick‘r3.0.4 |智能自动点击,高效省力

Klick’r 是一款专为 Android 设计的开源自动点击工具&#xff0c;能识别屏幕上的图像并进行相应操作。支持游戏中的自动点击、应用测试及日常任务自动化。 大小&#xff1a;27M 百度网盘&#xff1a;https://pan.baidu.com/s/1881Zfevph6_2Zhdc-H_R4A?pwdolxt 夸克网盘&…

shell 脚本批量更新本地git仓库

文章目录 一、问题概述二、解决方法三、运行效果1. windows2. centos 一、问题概述 你是否遇到这样的场景&#xff1a; 本地git仓库克隆了线上的多个项目&#xff0c;需要更新时&#xff0c;无法象svn一样&#xff0c;选中多个项目一起更新。 只能苦逼的一个个选中&#xff0c…

软考《信息系统运行管理员》- 4.3 信息系统软件运维的过程

4.3 信息系统软件运维的过程 文章目录 4.3 信息系统软件运维的过程日常运维日常运维的内容日常运行例行测试维护例行测试流程的关键点例行维护流程的关键点 定期测试维护 缺陷诊断与修复信息系统软件缺陷的概念信息系统软件缺陷的分类信息系统软件缺陷诊断与修复流程缺陷诊断与…

2024百度云智大会|百度大模型内容安全合规探索与实践

9月25日&#xff0c;2024百度云智大会在北京举办。会上&#xff0c;百度智能云分别针对算力、模型、AI 应用&#xff0c;全面升级百舸 AI 异构计算平台 4.0、千帆大模型平台 3.0 两大 AI 基础设施&#xff0c;并升级代码助手、智能客服、数字人三大 AI 原生应用产品。 在大模型…

App测试时常用的adb命令

adb 全称为 Android Debug Bridge&#xff08;Android 调试桥&#xff09;&#xff0c;是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。 adb 是一种功能强大的命令行工具&#xff0c;可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作&#xff0…