Please enable Javascript to view the contents

安装并初始化 PCI 接口的 SSD

 ·  ☕ 2 分钟

1. 查看 PCI 接口设备

使用 lspci 查看设备是否已经安装

1
2
3
lspci |grep storage

d8:00.0 Mass storage controller: Shannon Systems Device 2275

这里发现了一块 Shannon Systems 的设备,说明已经安装了 SSD。

1
2
3
4
5
6
7
8
lsblk

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 893.8G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     1G  0 part /boot
└─sda3                      8:3    0 892.8G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0 892.8G  0 lvm  /

lsblk 中并没有看到对应的设备,说明驱动没有安装或者安装错误。

2. 检查是否已安装驱动

这一步骤很关键,如果安装了版本不对、内核版本不匹配的驱动,在 lsblk 中也可能看不到对应的设备。如果安装了两个版本的驱动,可能会导致系统无法正常启动,一直 rebooting。

  • 检查是否已经安装 SSD 驱动
1
2
3
dpkg -l | grep shannon

ii  shannon-module-5.4.0-164-generic      3.4.3.1                           amd64        Driver for PCIe SSD of Shannon Systems

3. 卸载 SSD 驱动

需要注意的是,如果 lsblk 已经能看到设备,那么代表着驱动已经正确安装,同时很有可能已经在使用中,如果此时卸载驱动,会导致系统故障。

  • 卸载驱动
1
dpkg -r shannon-module-5.4.0-164-generic

4. 安装驱动

  • 准备驱动源码包
1
2
3
ls -alh Shannon_Linux_Driver_Package_3.4.3.1.tar.gz

-rw-r--r-- 1 root root 11M Nov  8 07:57 Shannon_Linux_Driver_Package_3.4.3.1.tar.gz
  • 解压驱动源码包
1
2
tar xvf Shannon_Linux_Driver_Package_3.4.3.1.tar.gz
cd Shannon_Linux_Driver_Package_3.4.3.1
1
2
tar xvf shannon-source_3.4.3.1.tar.gz
cd shannon-source_3.4.3.1
  • 安装编译环境
1
apt-get install -y make gcc debhelper linux-headers-$(uname -r) libtinfo5 libncurses5
  • 安装 dpkg-dev 工具
1
apt-get install -y dpkg-dev
  • 编译生成 DEB 包
1
dpkg-buildpackage -us -uc

得到 DEB 包

1
dpkg-deb: building package 'shannon-module-5.4.0-164-generic' in '../shannon-module-5.4.0-164-generic_3.4.3.1_amd64.deb'.
  • 安装驱动
1
dpkg -i ../shannon-module-5.4.0-164-generic_3.4.3.1_amd64.deb
  • 查看 SSD 块设备
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
lsblk

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 893.8G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     1G  0 part /boot
└─sda3                      8:3    0 892.8G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0 892.8G  0 lvm  /
dfa                       252:0    0   2.2T  0 disk
└─dfa1                    252:1    0     2T  0 part

5. 格式化并挂载到目录

  • 磁盘分区

使用 fdisk 对 dfa 进行分区

1
fdisk /dev/dfa

会有提示输入参数:

command (m for help):n
Select (default p): p
Partition number(1-4):1
First cylinder (1-22800,default 1):Enter
command (m for help):w

  • 格式化分区
1
mkfs.ext4 /dev/dfa
  • 创建挂载点目录
1
mkdir /data
  • 挂载硬盘到目录
1
mount -t ext4 /dev/dfa /data
  • 设置自动挂载

/etc/fstab 中添加一条记录,设置开机自动挂载:

1
/dev/dfa  /data  ext4  defaults  0  0

6. 验证磁盘正常挂载

  • 验证开机自动挂载

重新挂载分区,如果没有报错,说明配置正确

1
mount -a
  • 验证磁盘正常挂载
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
lsblk

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 893.8G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     1G  0 part /boot
└─sda3                      8:3    0 892.8G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0 892.8G  0 lvm  /
dfa                       252:0    0   2.2T  0 disk /data
└─dfa1                    252:1    0     2T  0 part

7. 磁盘测试

  • 安装 opscli
1
2
proxy="https://mirror.ghproxy.com/"
curl -sfL "$proxy"https://raw.githubusercontent.com/shaowenchen/ops/main/getcli.sh |VERSION=latest sh -
  • 安装 fio
1
apt-get install -y fio
  • 开始测速
1
2
3
4
5
6
7
8
opscli task -f .ops/task/get-diskio-byfio.yaml

Rand_Read_Testing: (groupid=0, jobs=1): err= 0: pid=21980: Thu Nov  9 07:05:26 2023
  read: IOPS=113k, BW=441MiB/s (462MB/s)(100MiB/227msec)


Rand_Write_Testing: (groupid=0, jobs=1): err= 0: pid=22027: Thu Nov  9 07:05:27 2023
  write: IOPS=103k, BW=403MiB/s (423MB/s)(100MiB/248msec); 0 zone resets

微信公众号
作者
微信公众号