linux磁盘知识学习

文章目录

  • linux 磁盘阵列知识积累
    • 配置RAID方案
      • 在Linux中配置RAID
      • 在其他设备上配置RAID
    • 确认是什么RAID级别
      • cat /proc/mdstat 输出示例
      • mdadm --detail /dev/md0输出示例
    • 如何确认设备是否做了RAID
    • 其他方式
      • fdisk
      • lsblk
      • parted
      • lshw
      • lsscsi
      • smartctl
      • blkid
    • 不同命令使用场景
      • 1.fdisk
      • 2.mdadm
      • 3.lsblk
      • 4.parted
      • 5.lshw
      • 6.sscsi
      • 7.smartctl
      • 8.blkid
      • 6.sscsi
      • 7.smartctl
      • 8.blkid

linux 磁盘阵列知识积累

配置RAID方案

在Linux中配置RAID

  1. 安装mdadm工具:mdadm是管理Linux软件RAID的标准工具。首先,需要确保已经安装了它。在基于Debian的系统上,可以使用sudo apt-get install mdadm命令安装。对于基于RPM的系统,使用sudo yum install mdadm。
  2. 创建RAID阵列:使用mdadm命令创建RAID阵列。

例如,要创建一个RAID 1阵列,使用以下命令:

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

这里,/dev/md0是新创建的RAID设备,level=1指定了RAID级别为1,raid-devices=2表示有两个设备参与RAID,最后/dev/sda1和/dev/sdb1是参与RAID的两个分区。

  1. 格式化和挂载RAID设备:创建RAID后,您需要格式化RAID设备,然后挂载它以便使用。

例如:

sudo mkfs.ext4 /dev/md0
sudo mount /dev/md0 /mnt/raid

在其他设备上配置RAID

在非Linux系统或硬件RAID中,配置步骤会有所不同。通常,硬件RAID通过在启动时进入RAID卡的配置界面来设置。对于其他操作系统(如Windows),您可能需要使用特定的管理工具或控制面板选项来配置RAID。

确认是什么RAID级别

在Linux中,您可以使用以下命令来确认RAID级别:

cat /proc/mdstatmdadm --detail /dev/md0

这些命令会显示当前配置的RAID阵列的详细信息,包括它的级别(例如,RAID 0、RAID 1、RAID 5等)。

cat /proc/mdstat 输出示例

Personalities : [raid1] [raid6] [raid5] [raid4] 
md0 : active raid1 sda1[0] sdb1[1]1953382464 blocks super 1.2 [2/2] [UU]unused devices: <none>
  • Personalities:列出了系统支持的RAID类型。
  • md0:当前活跃的RAID设备名称。
  • active raid1 sda1[0] sdb1[1]:表示md0是一个活跃的RAID 1阵列,包含两个分区(或磁盘):sda1和sdb1。
  • 1953382464 blocks super 1.2 [2/2] [UU]:显示阵列的大小(以块计),使用的元数据版本(1.2),阵列中有2个盘(2/2)都是正常工作状态([UU]表示两个盘都是Up状态)。
  • unused devices: :表示没有未使用的设备。

mdadm --detail /dev/md0输出示例

/dev/md0:Version : 1.2Creation Time : Sun Apr  4 12:34:56 2021Raid Level : raid1Array Size : 1953382464 (1862.89 GiB 2000.26 GB)Used Dev Size : 1953382464 (1862.89 GiB 2000.26 GB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Thu Apr 11 15:00:01 2024State : clean Active Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Name : hostname:0  (local to host hostname)UUID : a1b2c3d4:e5f6g7h8:i9j0k1l2:m3n4o5p6Events : 12345Number   Major   Minor   RaidDevice State0       8       17        0      active sync   /dev/sda11       8       33        1      active sync   /dev/sdb1

这个输出提供了关于/dev/md0 RAID设备的详细信息,包括其版本、创建时间、RAID级别、数组大小、设备状态等。

  • Raid Level:显示RAID级别为raid1。
  • Array Size:显示数组的总大小。
  • Raid Devices:显示参与RAID的设备数量。
  • Active Devices:显示当前活跃(工作正常)的设备数量。
  • Failed Devices、Spare Devices:分别显示失败和备用的设备数量。

下面的列表提供了每个参与RAID的设备的状态和位置信息,例如/dev/sda1和/dev/sdb1都处于“active sync”状态,意味着它们正在同步数据。

如何确认设备是否做了RAID

  1. 在Linux中:使用上述cat /proc/mdstat或mdadm --detail /dev/md0命令不仅可以查看RAID级别,还可以确认是否配置了RAID。
  2. 在Windows中:可以通过“磁盘管理”工具查看磁盘配置情况,如果有RAID配置,通常会显示为动态磁盘或者有相关的RAID标识。
  3. 在BIOS/UEFI中:对于硬件RAID,通常需要在计算机启动时进入BIOS/UEFI设置界面,在那里可以查看和配置RAID设置。

其他方式

fdisk

fdisk -l(其中-l是小写的L)命令确实可以在Linux中用来查看所有已连接存储设备的分区情况,包括硬盘驱动器、固态驱动器以及设置为RAID的设备。它主要用于显示分区信息,而不直接显示RAID配置详情。

使用fdisk -l查看RAID情况

当您运行fdisk -l时,如果系统中配置了软件RAID,您可能会看到类型为“Linux raid auto”的分区,这表明这些分区被用作RAID设备的一部分。例如:

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1          2048 1953523711 1953521664  931G fd Linux raid autodetect
/dev/sdb1          2048 1953523711 1953521664  931G fd Linux raid autodetect

这里,/dev/sda1和/dev/sdb1都被标记为“Linux raid autodetect”,这意味着它们被配置为RAID的一部分。

使用限制

fdisk -l能提供一定的信息,但它不会告诉RAID的级别(如RAID 0、RAID 1等),也不会提供关于RAID阵列当前状态的详细信息。

对于这些更具体的信息,需要使用专门的工具,如:

  1. mdadm:对于软件RAID,mdadm --detail /dev/mdX(其中/dev/mdX是您的RAID设备)将提供关于特定RAID阵列的详细信息,包括其级别、状态、参与的设备等。
  2. 硬件RAID管理工具:对于硬件RAID,通常需要使用特定于制造商的管理软件或固件界面来查看和管理RAID配置。

lsblk

  • lsblk(列出块设备)是一个列出所有可用块设备的命令,包括它们的挂载点和分区。它提供了一个很好的设备层次结构视图,可以帮助识别哪些设备是RAID阵列的一部分。
  • 使用示例
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,TYPE
  • NAME: 设备的名称。
  • FSTYPE: 文件系统类型。
  • SIZE: 设备的大小。
  • MOUNTPOINT: 设备的挂载点。
  • TYPE: 设备类型(如磁盘、分区、lvm等)。
  • 输出结果示例
NAME   FSTYPE     SIZE MOUNTPOINT TYPE
sda             931.5G            disk
├─sda1 ext4       500M /boot      part
├─sda2             1G [SWAP]      part
└─sda3 ext4     930G   /          part
sdb             931.5G            disk
├─sdb1             931.5G            part
md0    ext4       931G            raid1
  • sda 和 sdb 是系统中存在的两个磁盘,大小均为931.5G。
  • sda1, sda2, sda3 是sda磁盘上的分区。其中,sda1是一个500M的ext4文件系统,挂载在/boot;sda2是一个1G的交换分区;sda3是一个930G的ext4文件系统,挂载在根目录(/)。
  • sdb1 是sdb磁盘上的一个分区,大小为931.5G,但没有使用(未格式化或未挂载)。
  • md0 是一个RAID设备,使用ext4文件系统,大小为931G。它的类型被标记为raid1,说明它是一个RAID 1阵列。这个设备可能由sdb1和另一个未在此列表中显示的分区组成。

parted

  • parted是一个功能强大的磁盘分区和管理工具,可以用来创建、调整、复制和删除硬盘驱动器上的分区。
  • 使用示例:运行sudo parted -l可以列出所有磁盘的分区表,包括RAID设备。
sudo parted -l

这条命令会列出所有检测到的磁盘及其分区表的信息。-l选项是–list的简写,用于显示当前所有磁盘的分区信息。

  • 输出结果示例
Model: ATA Samsung SSD 860 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gptNumber  Start   End     Size    File system  Name                  Flags1      1049kB  538MB   537MB   fat32        EFI System Partition  boot, esp2      538MB   1000GB  999GB   ext4         Linux filesystemModel: Linux Software RAID Array (md)
Disk /dev/md0: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: loopNumber  Start  End     Size    File system  Flags1      0.00B  2000GB  2000GB  ext4
  • 第一部分显示了一个名为ATA Samsung SSD 860的SSD磁盘(/dev/sda),大小为1000GB。它使用GPT分区表,并且有两个分区:
    • 分区1:大小为537MB,使用FAT32文件系统,是EFI系统分区(用于启动),具有boot, esp标志。
    • 分区2:大小为999GB,使用ext4文件系统,是Linux文件系统分区。
  • 第二部分显示了一个软件RAID数组(/dev/md0),大小为2000GB。它使用loop分区表,并且有一个大分区:
    • 分区1:占据整个RAID数组的空间,大小为2000GB,使用ext4文件系统。

lshw

  • lshw(硬件列表)是一个显示你的系统硬件配置的工具,对于识别与RAID相关的硬件信息特别有用。
  • 使用示例:sudo lshw -class disk -class storage可以显示存储设备和控制器的信息。
sudo lshw -class disk -class storage

这个命令会列出所有的磁盘和存储控制器的信息。-class disk指定了只显示磁盘类别的硬件,-class storage则是指定显示存储控制器类别的硬件。

  • 输出结果示例
  *-storagedescription: SATA controllerproduct: 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controllervendor: Intel Corporationphysical id: 1f.2bus info: pci@0000:00:1f.2logical name: scsi0logical name: scsi1version: 05width: 32 bitsclock: 66MHzcapabilities: storage ahci_1.0 emulatedconfiguration: driver=ahci latency=0resources: irq:27 ioport:f0d0(size=8) ioport:f0c0(size=4) ioport:f0b0(size=8) ioport:f0a0(size=4) ioport:f060(size=32) memory:f7c06000-f7c067ff*-diskdescription: ATA Diskproduct: SSDSC2BW240A3Lvendor: Intelphysical id: 0.0.0bus info: scsi@0:0.0.0logical name: /dev/sdaversion: DC32serial: XXXXXXXXsize: 223GiB (240GB)capabilities: partitioned partitioned:dosconfiguration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=000beef1*-diskdescription: ATA Diskproduct: WDC WD10EZEX-08M2NA0vendor: Western Digitalphysical id: 0.1.0bus info: scsi@1:0.0.0logical name: /dev/sdbversion: 1A01serial: XXXXXXXXsize: 931GiB (1TB)capabilities: gpt-1.00 partitioned partitioned:gptconfiguration: ansiversion=5 guid=XXXXXXXX logicalsectorsize=512 sectorsize=512
  • 存储控制器:列出了一个SATA控制器,包含了制造商、型号、物理ID、总线信息、驱动信息等。这些信息有助于识别系统中使用的存储接口类型。

  • 磁盘:显示了两个ATA磁盘,分别是一个223GiB的Intel SSD和一个931GiB的Western Digital硬盘。对于每个磁盘,lshw列出了产品型号、供应商、物理ID、总线信息、逻辑名称(如/dev/sda)、大小以及其他配置细节。

lsscsi

  • lsscsi列出SCSI设备(或ATA/ATAPI设备)的信息,可以用来识别连接到系统的所有SCSI/ATA设备,包括RAID控制器。
  • 使用示例:简单地运行lsscsi可以列出所有SCSI设备。
lsscsi

这个命令将会列出系统中所有已识别的SCSI设备,包括硬盘、光驱等。

  • 输出结果示例
[0:0:0:0]    disk    ATA      Samsung SSD 850  2B6Q  /dev/sda 
[1:0:0:0]    cd/dvd  HL-DT-ST DVDRAM GH24NSC0  LK00  /dev/sr0 
[2:2:0:0]    disk    LSI      MR9271-4i        3.24  /dev/sdb 
[2:2:1:0]    disk    LSI      MR9271-4i        3.24  /dev/sdc 
  • [0:0:0:0] disk ATA Samsung SSD 850 /dev/sda:这一行表示系统中有一个ATA接口的Samsung SSD 850固态硬盘,设备文件是/dev/sda。[0:0:0:0]是设备的SCSI地址,表示它连接在SCSI总线0, 设备号0, LUN号0。
  • [1:0:0:0] cd/dvd HL-DT-ST DVDRAM GH24NSC0 /dev/sr0:这一行表示有一个HL-DT-ST品牌的DVDRAM光驱,设备文件是/dev/sr0,连接在SCSI总线1, 设备号0, LUN号0。
  • [2:2:0:0] disk LSI MR9271-4i /dev/sdb 和 [2:2:1:0] disk LSI MR9271-4i /dev/sdc:这两行表示通过LSI品牌的MR9271-4i RAID控制器连接的两个磁盘设备,分别对应设备文件/dev/sdb和/dev/sdc。这可能是一个RAID阵列的一部分。

smartctl

  • smartctl是SMART硬盘监控分析和报告工具的一部分,用于打印磁盘健康状况、测试等。它对于检查RAID阵列中磁盘的健康状态非常有用。
  • 使用示例:sudo smartctl -a /dev/sda显示指定硬盘的所有SMART信息,包括健康状态。
sudo smartctl -a /dev/sda
  • sudo:由于smartctl需要访问硬件级别的信息,通常需要超级用户权限来运行。
  • smartctl:就是要执行的命令本身。
  • -a:这个选项告诉smartctl显示所有可用的SMART信息,包括磁盘健康状况、所有收集到的SMART属性等。
  • /dev/sda:指定要检查的设备。在这个例子中,/dev/sda是第一个SATA硬盘。如果您想检查另一个硬盘,比如第二个硬盘(通常是/dev/sdb),只需相应地更改这个参数。
  • 输出结果示例
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE1 Raw_Read_Error_Rate     0x000f   083   064   006    Pre-fail  Always       -       1243455 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       09 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       8854
...
SMART Overall-Health Self-Assessment Test result: PASSED
  • Raw_Read_Error_Rate, Reallocated_Sector_Ct, Power_On_Hours 等行显示了不同的SMART属性。每个属性都有一个“VALUE”(当前值)、“WORST”(最差值)、以及“THRESH”(阈值)。如果“VALUE”低于“THRESH”,可能表示磁盘有故障。
  • RAW_VALUE列显示了原始读取的数据,对于不同的属性这些数据代表的意义不同。
  • 最后,“SMART Overall-Health Self-Assessment Test result: PASSED”表示磁盘通过了健康自评测试。如果这里显示“FAILED”,则意味着磁盘可能即将出现故障,应该尽快备份数据并考虑更换磁盘。

blkid

  • blkid命令用于查找/打印块设备的UUID、文件系统类型等属性。
  • 使用示例:运行sudo blkid可以显示系统中所有块设备的UUID和文件系统类型,包括RAID分区。
sudo blkid
  • sudo:由于blkid可能需要特定的权限来访问某些设备信息,使用sudo可以以超级用户权限运行该命令。

  • blkid:是要执行的命令本身。

  • 主要输出信息

    • UUID:每个文件系统的唯一标识符。UUID对于确保/etc/fstab文件中的挂载条目在系统重启后依然正确非常重要,因为设备名称(如/dev/sda1)可能会变化。

    • TYPE:文件系统类型(如ext4、xfs、ntfs)。

    • LABEL:如果设备有标签(Label),这个标签也会被显示出来。

  • 输出结果示例
/dev/sda1: UUID="5f96cafa-e0a7-4a4c-b9a2-2b3e5c8a9676" TYPE="ext4" PARTUUID="00b204d0-01"
/dev/sda2: UUID="I9MkHV-vgN8-Jik6-LAts-Hien-jvge-Q2fCtR" TYPE="LVM2_member" PARTUUID="00b204d0-02"
/dev/mapper/ubuntu--vg-root: UUID="b3f9bc2a-88cb-45f2-b77e-2c37t4e4f6a7" TYPE="ext4"
/dev/mapper/ubuntu--vg-swap_1: UUID="3d3961b4-6e64-4c9d-a8d5-ffd3badb9d0d" TYPE="swap"
  • /dev/sda1 和 /dev/mapper/ubuntu–vg-root 是类型为ext4的分区,它们拥有各自的UUID。

  • /dev/sda2 是一个LVM物理卷,其类型为LVM2_member。

  • /dev/mapper/ubuntu–vg-swap_1 是一个交换分区(swap),也有其独特的UUID。

不同命令使用场景

1.fdisk

  • 使用场景:fdisk主要用于磁盘分区。当你需要创建新的分区、删除旧的分区或者查看磁盘分区表时,fdisk是一个非常合适的工具。它支持MBR(主引导记录)分区表。
  • 示例场景:安装新硬盘后,使用fdisk来初始化硬盘并创建分区。

2.mdadm

  • 使用场景:mdadm是管理Linux软件RAID的工具。当你需要创建、监控、管理或故障排除软件RAID阵列时,这个工具非常有用。
  • 示例场景:创建一个RAID 5阵列以提高数据冗余和读取性能;或者当一个RAID阵列的一个磁盘发生故障时,使用mdadm来添加替换磁盘并重建数据。

3.lsblk

  • 使用场景:lsblk用于列出所有可用的块设备信息,包括它们的挂载点和分区。这对于快速查看系统中的磁盘和分区结构非常有用。
  • 示例场景:在挂载新硬盘之前,确认硬盘的设备名称(如/dev/sdb)。

4.parted

  • 使用场景:parted是一个功能强大的磁盘分区和管理工具,支持大于2TB的磁盘和GPT(GUID分区表)。当你需要处理大容量磁盘或需要GPT分区表时,这个工具比fdisk更合适。
  • 示例场景:在一块大于2TB的新硬盘上创建GPT分区。

5.lshw

  • 使用场景:lshw用于显示系统的硬件配置信息。当你需要详细了解系统中各个硬件组件的信息时,这个命令非常有用。
  • 示例场景:在购买二手服务器之前,检查其硬件配置以确保所有组件都符合预期。

6.sscsi

  • 使用场景:lsscsi用于列出系统中所有SCSI设备的信息。这对于识别和管理SCSI设备特别有用,例如硬盘、固态硬盘和光驱。
  • 示例场景:确认新安装的SCSI硬盘是否被系统识别。

7.smartctl

  • 使用场景:smartctl用于检查和监控存储设备(如硬盘和固态硬盘)的健康状况。当你需要预防性地监控存储设备的健康状态,以避免数据丢失时,这个工具非常有用。
  • 示例场景:定期检查服务器上硬盘的健康状态,及时发现潜在的硬盘故障。

8.blkid

  • 使用场景:blkid用于查找和打印块设备的UUID、文件系统类型等属性。当你需要在脚本中自动挂载磁盘或在/etc/fstab文件中指定挂载点时,这个命令非常有用。
    命令非常有用。
  • 示例场景:在购买二手服务器之前,检查其硬件配置以确保所有组件都符合预期。

6.sscsi

  • 使用场景:lsscsi用于列出系统中所有SCSI设备的信息。这对于识别和管理SCSI设备特别有用,例如硬盘、固态硬盘和光驱。
  • 示例场景:确认新安装的SCSI硬盘是否被系统识别。

7.smartctl

  • 使用场景:smartctl用于检查和监控存储设备(如硬盘和固态硬盘)的健康状况。当你需要预防性地监控存储设备的健康状态,以避免数据丢失时,这个工具非常有用。
  • 示例场景:定期检查服务器上硬盘的健康状态,及时发现潜在的硬盘故障。

8.blkid

  • 使用场景:blkid用于查找和打印块设备的UUID、文件系统类型等属性。当你需要在脚本中自动挂载磁盘或在/etc/fstab文件中指定挂载点时,这个命令非常有用。
  • 示例场景:在系统启动时自动挂载一个外部USB驱动器,通过其UUID来确保正确识别和挂载。

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

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

相关文章

nvm更新node版本

1、nvm安装和管理多个 Node.js 版本&#xff1a;NVM 允许用户在计算机上同时安装多个不同版本的 Node.js。这使得开发人员可以轻松地在不同的项目中使用不同的 Node.js 版本&#xff0c;而无需手动安装或卸载。 2、nvm切换 Node.js 版本&#xff1a;通过 NVM&#xff0c;用户可…

好菜每回味道不同--建造者模式

1.1 炒菜没放盐 中餐&#xff0c;老板需要每次炒菜&#xff0c;每次炒出来的味道都有可能不同。麦当劳、肯德基这些不过百年的洋快餐却能在有千年饮食文化的中国发展的那么好呢&#xff1f;是因为你不管何时何地在哪里吃味道都一样&#xff0c;而鱼香肉丝在我们中餐却可以吃出上…

Langchain-Chatchat 从入门到精通(基于本地知识库的问答系统)(更新中)

目录 前言一、Langchain-Chatchat介绍1-1、Langchain-Chatchat介绍1-2、LangChainChatGLM 工作流1-3、文档角度的工作流 二、快速上手2-0、硬件要求2-1、环境配置2-2、模型下载2-3、初始化知识库和配置文件2-4、一键启动 三、配置文件详解&#xff08;config目录下&#xff09;…

浏览器输入域名执行全过程?

当你在浏览器中输入www.baidu.com并按下回车键时&#xff0c;会触发一系列复杂的过程才能在你的屏幕上显示出百度的首页。以下是这一过程的详细步骤&#xff1a; 1. 解析域名 首先&#xff0c;浏览器需要解析你输入的域名www.baidu.com。这个过程称为DNS查询。 浏览器缓存&a…

MybatisPlus实现数据权限隔离

引言 Mybatis Plus对Mybatis做了无侵入的增强&#xff0c;非常的好用&#xff0c;今天就给大家介绍它的其中一个实用功能&#xff1a;数据权限插件。 数据权限插件的应用场景和多租户的动态拦截拼接SQL一样。建议点赞收藏关注&#xff0c;方便以后复习查阅。 依赖 首先导入M…

【Java集合】面试题汇总

Java 集合Java 集合概览1. List, Set, Queue, Map 四者的区别&#xff1f;2. ArrayList 和 Array&#xff08;数组&#xff09;的区别&#xff1f;3. ArrayList 和 Vector 的区别?4. Vector 和 Stack 的区别?&#xff08;了解即可&#xff09;5. ArrayList 可以添加 null 值吗…

【端云一体化开发】云函数本地运行/调试启动失败的两种解决方案

最近本地调试云函数一直出现这个错误&#xff1a;Before launch task execute failed! details:java.lang.lllegalStateException: npm installfailed 这个问题的原因似乎是运行云函数的时候会重新下载 npm 及相关依赖文件&#xff0c;但是 DevEco 的 npm 模块出错导致这个步骤…

智慧园区平台再升级!智慧迭代,服务升级

伴随物联网、人工智能等技术的迅速发展和智能化水平的提高&#xff0c;智慧园区成为了现代区域经济高质量发展的重要组成部分&#xff0c;上承智慧城市的建设&#xff0c;下接智慧运营和管理。智慧园区是一种基于信息技术的智能化管理模式&#xff0c;通过物联网、大数据、人工…

java中常见的几种排序

常见的几种排序整理 冒泡排序选择排序插入排序希尔排序快速排序归并排序堆排序 冒泡排序 思想&#xff1a;对比当前值的下一个值&#xff0c;如果大就交换位置 代码&#xff1a; /*** 冒泡排序*/ public class bubbleSort {public static void main(String[] args) {int[] ar…

【域适应】深度域适应常用的距离度量函数实现

关于 深度域适应中&#xff0c;有一类方法是实现目标域和源域的特征对齐&#xff0c;特征对齐的衡量函数主要包括MMD&#xff0c;MK-MMD&#xff0c;A-distance&#xff0c;CORAL loss&#xff0c; Wasserstein distance等等。本文总结了常用的特征变换对齐的函数定义。 工具 …

初始C++之缺省参数 函数重载 引用

初始C之缺省参数 函数重载 引用& 文章目录 初始C之缺省参数 函数重载 引用&一、缺省参数1.1 缺省参数的定义1.2 缺省参数的分类1.3 注意事项 二、 函数重载2.1 函数重载的定义2.2 参数个数不同2.3 参数类型不同2.4 类型顺序不同2.5 为什么C语言不支持函数重载 三、引用…

模型3-掌握模型与骨骼、动画播放之间的关系

模型、骨骼和动画播放之间存在密切的关系。在计算机图形学中&#xff0c;模型是指用于表示三维物体的几何形状和表面属性的数据。而骨骼是一种用于模拟物体的骨架结构的技术&#xff0c;它由一系列关节和连接它们的骨头组成。动画播放则是指将骨骼与模型进行关联&#xff0c;并…

OpenHarmony南向开发案例:【智能保险柜】

样例简介 智能保险柜实时监测保险柜中振动传感器&#xff0c;当有振动产生时及时向用户发出警报。在连接网络后&#xff0c;配合数字管家应用&#xff0c;用户可以远程接收智能保险柜的报警信息。后续可扩展摄像头等设备&#xff0c;实现对危险及时报警&#xff0c;及时处理&a…

探究 ChatGPT 的心脏--Transformer(基础知识第一篇)

Transformer 是 ChatGPT 的核心部分&#xff0c;如果将 AI 看做一辆高速运转的汽车&#xff0c;那么 Transformer 就是最重要的引擎。它是谷歌于 2017 年发表的《Attention is All You Need》中提出的 Sequence-to-sequence 的模型&#xff0c;诞生之后便一统江湖&#xff0c;在…

项目存放在git上,在jenkins使用docker打包并推送到Ubuntu上运行

项目添加dockerfile 在需要打包的工程的根目录添加Dockerfile文件&#xff0c;文件内容&#xff1a; # 设置JAVA版本 FROM openjdk:8 # 指定存储卷&#xff0c;任何向/tmp写入的信息都不会记录到容器存储层 VOLUME /tmp# 拷贝运行JAR包 ARG JAR_FILE COPY ${JAR_FILE} app.jar…

蓝桥杯练习系统(算法训练)ALGO-958 P0704回文数和质数

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 一个数如果从左往右读和从右往左读数字是完全相同的&#xff0c;则称这个数为回文数&#xff0c;比如898,1221,15651都是回文数。编写…

内核驱动更新

1.声明我们是开源的 .c 文件末尾加上 2.在Kconfig里面修改设备&#xff0c;bool&#xff08;双态&#xff09;-----》tristate&#xff08;三态&#xff09; 3.进入menuconfig修改为M 4.编译内核 make modules 也许你会看到一个 .ko 文件 5.复制到根目录文件下 在板子…

OneFlow深度学习框架:引领未来的通用深度学习框架

引言 随着人工智能技术的飞速发展,深度学习框架作为AI领域的重要基础设施,其性能、易用性和扩展性对于推动科研和工业应用的进步至关重要。OneFlow,作为一款新兴的深度学习框架,以其独特的设计理念和技术特点,正逐渐吸引业界的关注。本文将详细介绍OneFlow的设计理念、核…

HCIP课后习题之二

1、OSPF协议3类LSA的标识是什么&#xff1f; A: OSPF协议中的三类LSA标识如下&#xff1a; Type 1 LSA&#xff1a;Router LSA&#xff0c;路由器LSA&#xff0c;由每个路由器生成&#xff0c;描述了直连到该路由器的网络。Type 2 LSA&#xff1a;Network LSA&#xff0c;网络…

4.11作业

服务器端 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器端类 #include<QMessageBox> //消息对话框 #include<QTcpSocket> //客户端类 #include<QList> //链表容器QT_BEGIN_NAMESPACE namespace Ui { cla…