写在前面
因需要在ZN540上挂载F2FS,故需要两块盘。一块传统SSD一块ZNS SSD。
对于ZN540,信息如下
由于其扇区大小为4KiB,而自己服务器上没有逻辑扇区为4KiB的盘,例如三星883:
所以当用883做传统盘的时候,格式化mkfs.f2fs会报错:
因为ZN540不支持分区,如果使用ZN540的传统块接口来挂载则会报空间不足:
因此,要么把三星883的逻辑扇区大小改为4KiB,要么把ZN540改为512B。
方法一:把三星883的逻辑扇区大小改为4KiB
使用hdparm修改883的扇区大小
06:54:04 ~ # hdparm --set-sector-size 4096 --please-destroy-my-drive /dev/sdb
/dev/sdb:
READ_LOG_EXT(SECTOR_CONFIGURATION) failed: No such file or directory
啊哦,这块硬盘不支持更改扇区尺寸,其实支持更改扇区尺寸的硬盘也比较少,支持的话可以用这个命令改。
方法二:把ZN540的扇区大小改为512B
第一种方法(失败但是常规)
1查看两个名称空间的信息
nvme id-ns -H /dev/nvme0n1
看看最后几行:
2.通过命令来修改LBA格式
nvme format --lbaf=1 /dev/nvme0n1
NVMe status: INVALID_FORMAT: The LBA Format specified is not supported. This may be due to various conditions(0x610a)
然而也报错。
第二种方法(成功)
只能通过重新创建nvme名称空间的时候指定LBA的格式来改变扇区大小
1.查看两个名称空间的大小
sudo nvme id-ns -H /dev/nvme1n2
主要看一下
nvme1n1:(我的是已经改为512B的状态)
nsze : 0x400000 #以扇区大小为单位的zone size,实际大小为0x400000 * 512 = 2147483648
ncap : 0x400000 #以扇区大小为单位的zone capacity
nvme1n2:
nsze : 0xe2000000 #以扇区大小为单位的zone size
ncap : 0x76d94000 #以扇区大小为单位的zone capacity
2.删除旧的名称空间
atr@node3:~$ sudo nvme delete-ns /dev/nvme1 -n 1
delete-ns: Success, deleted nsid:1
atr@node3:~$ sudo nvme delete-ns /dev/nvme1 -n 2
delete-ns: Success, deleted nsid:2
3.创建新的名称空间
# -s为nsze -c为ncap 是上面各自实际大小/512
atr@node3:~$ sudo nvme create-ns /dev/nvme1 -s 4194304 -c 4194304 -b 512 --csi=0
create-ns: Success, created nsid:1
atr@node3:~$ sudo nvme create-ns /dev/nvme1 -s 3791650816 -c 3791650816 -b 512 --csi=2
create-ns: Success, created nsid:2
4.attach名称空间
atr@node3:~$ sudo nvme attach-ns /dev/nvme1 -n 1 -c 0
attach-ns: Success, nsid:1
atr@node3:~$ sudo nvme attach-ns /dev/nvme1 -n 2 -c 0
attach-ns: Success, nsid:2
5.查看nvme设备信息
sudo nvme list
修改成功。