1.Gentoo 安装基本系统全过程记录
2.Linux查看U盘盘名的方法linux查看u盘的盘名
3.用户态NVMe运维利器 -- SPDK NVMe 字符设备
Gentoo 安装基本系统全过程记录
下载iso 从Gentoo官网下载最新版的minimal镜像,并通过rufus或dd命令刻录为iso文件。在Windows系统中推荐使用rufus,它是开源免费且操作简单的工具。在Linux系统中,利用dd命令进行iso文件刻录。nacosserver源码 配置无线网 确认U盘已正确安装,并通过输入lsblk查看对应设备。使用dd命令将Minimal镜像写入U盘,完成时间约为几分钟。重新启动计算机,从U盘启动,过程中选择键盘模式并确认,之后会进入红色提示符界面。 联网配置 如果使用有线网络,网络已默认连接。通过ping命令确认网络连接状态。若使用无线网络,需手动配置。使用lspci -k检查设备驱动是否加载,使用dmesg | grep firmware查看内核中固件信息。使用iwconfig查看无线网卡名称,通常为wlp3s0,毛竹源码头订票根据实际设备名称进行后续配置。 编辑配置文件 在/etc/conf.d/net中添加以下内容,确保与实际设备名称相符:modules_wlp3s0="wpa_supplicant"
wpa_supplicant_wlp3s0="-Dwext"
config_wlp3s0="dhcp"
生成wpa_supplicant.conf文件,输入无线SSID和密码,确保文件路径正确。 编辑启动脚本 在/etc/init.d目录下创建或修改脚本文件,确保其正确链接到对应的网络设备文件,如ln -s net.lo net.wlp3s0,然后使用/etc/init.d/net.wlp3s0 start启动网络。 测试网络连接 执行ping命令测试网络连接状态。 磁盘分区与挂载 确认网络连接正常后,使用cfdisk对硬盘进行分区。根据设备的启动模式选择分区方案。对于UEFI模式,分区方案可能如下:分区 大小 挂载点
/dev/sda1 M 引导分区 /boot/efi
/dev/sda2 8G 交换分区 swap
/dev/sda3 G 根分区 /
/dev/sda4 G 用户主目录 /home
完成分区后,使用write命令确认分区信息,然后格式化和挂载分区,确保正确挂载根分区、引导分区、交换分区和用户主目录分区。 下载stage3 使用cd命令进入根分区,下载stage3文件。指标源码如何隐藏通过links命令选择合适的Gentoo镜像,并输入下载命令开始下载stage3文件。下载完成后,检查文件是否存在并解压。 配置系统 配置make.conf文件,根据CPU核心数设置MAKEOPTS参数,通常为-j5。选择合适的配置文件并更新系统。 安装内核源码 使用emerge命令安装sys-kernel/gentoo-sources包,以获取内核源码。根据提示完成安装。 编译内核 使用genkernel一键编译内核,检查内核版本,并安装所需的固件。配置主机名并设置自动启动网络。 安装工具 安装系统日志记录、Cron守护程序、文件索引、DHCP客户端和无线网络工具等,确保系统功能完整。 配置引导 配置GRUB引导加载程序,确保与系统模式相匹配。生源码在哪看安装GRUB2,使用grub-install命令将GRUB2文件安装到适当位置,并运行grub-mkconfig生成引导配置文件。 基本系统安装完成 重启系统后,gentoo基本系统已成功安装。此时,从chroot环境中退出并卸载分区,重新启动系统进入Gentoo环境。创建普通用户以支持桌面登录,后续将安装显卡驱动、触摸板驱动和桌面环境,敬请关注下篇文章。Linux查看U盘盘名的方法linux查看u盘的盘名
Linux是一种开放源码的操作系统,使用它可以快速查看U盘的盘名。下面将介绍查看U盘盘名的具体方法:
(1)查看U盘盘名的第一种方法就是使用fdisk命令(file disk):
第一步是查看插件在Linux系统的哪个位置。在终端中输入:
`sudo fdisk -l`
这个命令会显示出当前系统中的所有磁盘信息,包括硬盘、U 盘等,使用此命令还能够查看到计算机中U 盘的盘名,一般形式是`/dev/sdb`、`/dev/sdc`等。
(2)另外一种查看U盘盘名的利群溯源码方法,就是使用df命令(disk free):
在终端输入:
`df -h`
这个命令会显示当前系统中所有可用磁盘空间的使用情况,即使不插入U 盘也会显示系统各分区的剩余空间。只要插入U盘,系统仍将显示U盘的使用状态,从而可以查看U盘的盘名。
(3)在Linux下也可以使用lsblk命令来查看U盘的盘名:
在终端输入:
`lsblk`
这个命令会显示当前系统中所有可用磁盘设备的信息,包括硬盘和U盘。只要插入外部磁盘设备,lsblk命令都能够显示出U盘的盘名。
说明:上述介绍的三种方法都可以查看带U盘的盘名,但是要求必须先插入U盘,而且无需格式化。格式化U盘后,U 盘的盘名会发生变化,比如`/dev/sdb1`等。
总的来说,Linux是一种开放的操作系统,它提供了三种简单方法来查看U盘的盘名,大大简化了用户对U 盘的操作和管理。
用户态NVMe运维利器 -- SPDK NVMe 字符设备
刘孝冬 Intel 高级软件工程师 专注于开源存储SPDK及ISA-L软件的开发。
随着数据中心规模的不断扩大与延展,硬件设备的运行维护已成为信息技术企业与部门普遍重视的一环。随之而来,是庞大的IT运维工作量。实现硬件设备的可维护,需要灵活高效的监控与管理工具。
在Linux中,有诸多监控与管理工具助力设备运维,如hdparm、ethtool、SmartCTL等;也有很多简单易用的系统工具,如lspci、lsblk、iostat。对于目前部署量越来越大的NVMe设备,最通用有效的工具莫过于Nvme-cli。
通过Nvme-cli,使用者可以获取NVMe设备记录的各种LOG;查询当前设备状态;获取设备本身以及内部Namespace的配置信息;设置设备的各项功能;以及对设备做重启与格式化。
Nvme-cli在监控管理NVMe设备的主要过程,即是组织相关命令信息,通过对NVMe设备文件(/dev/nvmeX,/dev/nvmeXnY)发起IOCTL系统调用,将命令传入内核继而发送请求到NVMe设备上;待NVMe设备响应命令请求,发回响应后,再提取有效响应信息出来。因此,Nvme-cli众多命令的普遍格式是:
SPDK是一组用于编写高性能、可扩展的用户模式存储应用程序的工具和库。其基础是处在用户空间,轮询模式、异步、无锁的NVMe驱动程序。这为从用户空间应用程序直接访问NvmeSSD提供了零拷贝、高度并行的访问。在此基础上,SPDK还提供了完整的块堆栈作为用户空间库,该库能够执行与操作系统中块存储软件栈相同的许多操作,以及最上层的NVMe-oF、iSCSI和Vhost-user应用服务。
伴随着SPDK日益广泛的应用,NVMe设备的监控管理成为一个必要的需求。即处在用户空间应用程序的NVMe设备,如何能被用户监控管理。尤其是要便捷、容易通用,那就要求Linux下常用的工具也能被SPDK所支持,尤其是Nvme-cli。
之前,SPDK社区在Nvme-cli源码基础上,加入对特定于SPDK下NVMe设备的修改(github.com/spdk/nvme-cli...),使得Nvme-cli用在该类设备上。但该实现方式如同在Nvme-cli进程内启动了一个SPDK实例(如图1所示),难以被合并到Nvme-cli的主分支上。
用户自己编译与使用的过程略显繁琐(spdk.io/doc/nvme-cli.html...):
由于类似SPDK版的Nvme-cli使用上的诸多不便,社区在寻找更佳的实现方式,来支持Linux上相关工具。
在SPDK v. Release (spdk.io/release//...)中增加的一个新功能叫做NVMe字符设备 (NVMe character device)。它基于CUSE实现,可以在Linux内核中为NvmeController和Nvme Namespace创建对应字符设备节点(即 /dev/spdk/nvmeX,/dev/spdk/nvmeXnY)。Nvme-cli等工具可以无修改,直接使用这些模拟出的字符设备来监控管理SPDK下的NVMe设备。
由于此功能目前被认为是实验性的功能,所以需要在configure的时候,显式指定使能nvme-cuse,即在编译SPDK NVMe 驱动时,加入基于CUSE字符设备的支持。
SPDK为NVMe字符设备功能加入了两个RPC命令bdev_nvme_cuse_register与bdev_nvme_cuse_unregister。它们分别用于指定为某NVMe设备创建CUSE字符设备,和注销CUSE字符设备。当使用bdev_nvme_cuse_register RPC命令后,SPDK会通过CUSE在路径/dev/spdk下,为NVMe controller创建 /dev/spdk/nvmeX,并为其下Namespace创建 /dev/spdk/nvmeXnY,如图2。
之后,可见路径/dev/spdk下出现SPDK创建的NVMe字符设备:
nvme-cli使用指定的SPDK NVMe字符设备。目前,大多数的nvme-cli命令可以通过这种方式执行。
nvme /dev/spdk/nvme0 []
SPDK社区期望能够无缝地将当前流行的监控管理工具应用在SPDK下的NVMe设备上。当前实现的SPDK NVMe字符设备朝着这个目标迈进了一大步——诸多采用对NVMe字符设备路径文件发起IOCTL调用的工具和命令可以直接运行操作。
但它的依旧存在诸多局限性:
通过CUSE创建的NVMeNamespace路径文件属性是字符设备。但从常理上,其文件属性应该为块设备,例如Linux内核驱动创建的NVMeNamespace路径文件属性是块设备。虽然与IO命令不同,监控与管理操作不需要区分设备类型,但在Nvme-cli中如果操作设备指定的是NVMeNamespace文件,代码是存在多处诸如S_ISBLK这样的设备类型检查。
以下两图分别是SPDK通过CUSE创建的NVMe设备文件,和内核驱动创建的NVMe设备文件,对比可见NVMeNamespace路径文件属性的不同。
/proc/diskstats信息的缺失。诸多性能监控工具采用定期查看/proc/diskstats文件来获取存储设备的IO流量和负载情况。SPDK目前还未实现一个通用的信息注入方法,来将SPDK块设备或NVMe设备的相关信息实时写入/proc/diskstats。
SPDK当前的获取设备IO流量和负载信息的方法,是通过SPDK RPC 方法bdev_get_iostat。
/sys/block/目录下相关文件的缺失。部分工具,如lsblk,是需要通过筛选读取/sys/block/目录下设备文件,来获取相关信息;对/sys/block/目录下设备相关的某些文件,写入内容,来操作设备。SPDK目前也没有实现简洁有效的方法,模拟导出自己的/sys/block/文件。