

# 检查 Amazon EC2 实例对防撕裂写入的支持
<a name="twp-namespace"></a>

要确认您的实例和卷是否支持撕裂写防护，并查看包含撕裂写防护信息的 NVMe 命名空间供应商的特定数据，请使用以下命令。

```
$ sudo nvme id-ns -v device_name
```

**注意**  
该命令以带有 ASCII 解释的十六进制形式返回供应商特定信息。您可能需要在应用程序中构建类似 `ebsnvme-id` 的工具，以读取和解析输出。

例如，以下命令返回 NVMe 命名空间供应商特定数据，其中包含 `/dev/nvme1n1` 的撕裂写防护信息。

```
$ sudo nvme id-ns -v /dev/nvme1n1
```

如果您的实例和卷支持撕裂写防护功能，其会在 NVMe 命名空间供应商特定数据中返回以下 AWS 撕裂写防护信息。

**注意**  
下表中的字节表示从 NVMe 命名空间供应商特定数据开头的偏移量（以字节为单位）。


| 字节 | 描述 | 
| --- | --- | 
| 0:31 | 设备附件挂载点的名称，例如 /dev/xvda。您在卷附件请求期间提供此信息，Amazon EC2 实例可用其来创建指向 NVMe 区块设备的符号链接（nvmeXn1）。 | 
| 32:63 | 卷 ID。例如 vol01234567890abcdef。此字段可用于将 NVMe 设备映射到附加的卷。 | 
| 64:255 | 留待将来使用。 | 
| 256:257 | 命名空间撕裂写防护单元大小（NTWPU）。此字段表示在断电或发生错误时，保证以原子方式写入 NVM 的写入操作的命名空间特定大小。此字段在逻辑块中指定，从以零开始的值表示。 | 
| 258:259 | 命名空间撕裂写防护粒度大小（NTWPG）。此字段表示在断电或发生错误时，保证以原子方式写入 NVM 的写入操作的 NTWPU 下的命名空间特定大小增量。也就是说，大小应为 NTWPG \$1 n <= NTWPU，其中 n 为正整数。写入操作 LBA 偏移量也必须与该字段对齐。此字段在逻辑块中指定，从以零开始的值表示。 | 
| 260:263 | 命名空间撕裂写防护边界大小（NTWPB）。此字段表示该 NTWPU 值的此命名空间的原子边界大小。在断电或发生错误时，无法将保证跨原子边界写入此命名空间的操作以原子方式写入 NVM。值为 0h 表示断电或发生错误时没有原子边界。所有其他值使用与 NTWPU 字段相同的编码以逻辑块形式指定大小。 | 