public:trouble:iscsi
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
public:trouble:iscsi [2016/02/29 12:04] – [Failure cause] content corrected wiki.tk | public:trouble:iscsi [2016/07/10 08:00] (current) – [Failure cause] Precised content wiki.tk | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== iSCSI hard disk errors ===== | ||
+ | ==== Error description ==== | ||
+ | When using kernel versions | ||
+ | As a result LVM devices cannot be properly read and communication with the libvirt-bin process e.g. from the command line or from the Virtal Machine Manager leads to time-outs. In the end the affected KVM host has to be rebooted thus loosing all running virtual machines. | ||
+ | ==== Failure cause ==== | ||
+ | Most of the iSCSI devices report maximum block sizes (aka ' | ||
+ | __Hint:__ For Ubuntu the command '' | ||
+ | root@kvm55: | ||
+ | Block limits VPD page (SBC): | ||
+ | Write same no zero (WSNZ): 1 | ||
+ | Maximum compare and write length: 1 blocks | ||
+ | Optimal transfer length granularity: | ||
+ | Maximum transfer length: 4294967295 blocks | ||
+ | Optimal transfer length: 4294967295 blocks | ||
+ | Maximum prefetch length: 0 blocks | ||
+ | Maximum unmap LBA count: 8388607 | ||
+ | Maximum unmap block descriptor count: 1 | ||
+ | Optimal unmap granularity: | ||
+ | Unmap granularity alignment valid: 0 | ||
+ | Unmap granularity alignment: 0 | ||
+ | Maximum write same length: 0xffffffff blocks | ||
+ | |||
+ | Some iSCSI devices report no maximum block size. Examples are known for Dell MD3200i (own experience), | ||
+ | |||
+ | In such a case kernels before v3.19 use a maximum block size of 512. Kernels of version v3.19 and above use a default block size of 32767 when no maximum block size is reported by the iSCSI device. Some iSCSI devices cannot handle such block sizes and generate the observed multipath and disk errors. | ||
+ | ==== Solution ==== | ||
+ | The old block size has to be set for all affected devices. This can be done like so: | ||
+ | echo 512 >/ | ||
+ | In the example above ' | ||
+ | |||
+ | **__Please note:__** | ||
+ | - According to tests in production environments, | ||
+ | * iSCSI disk devices (can be found by the command '' | ||
+ | * LVM physical devices on iSCSI devices (found by '' | ||
+ | * LVM logical volumes on iSCSI devices (found by '' | ||
+ | - The block sizes have to be set **before** the affected device is used. | ||
+ | - Affected block devices can be created while a KVM host is running. After creation and before use of the device its block size has to be fixed. | ||
+ | |||
+ | [[public: |