Redhat

啟用丟棄 HP 3PAR StoreServ 7400

  • April 4, 2017

從這些先前提出的問題中分離出來

如何從已安裝的驅動器 Redhat 7 中獲取可用空間

更新 crypttab 要求 fstrim 的密碼

我們有一個 HP 3PAR StoreServ 7400,有 170 個虛擬機分佈在 38 台主機上。

這是我理解的問題:(另外,我被告知一些資訊,我不確定它是否正確,我已經閱讀了 HP 3PAR StoreServ 7400 白皮書並且真的找不到任何支持我的儲存人員的資訊告訴我。因此,如果有人注意到以下任何內容不真實,請告訴我。)

3 PAR 分為 3 個部分,

第 1 層:SSD 用於記憶體和快速訪問常用文件。

第 2 層:和第 3 層:某種旋轉盤,我不確定還有什麼以及為什麼還有額外的 2 層,但我的假設是第 2 層用於不最常訪問但有點訪問的數據,第 3 層用於其餘的儲存。

在 SSD 部分中,正如我在許多文章中所讀到的,當數據寫入 SSD 塊然後刪除該塊時,直到將新數據寫入其中,該塊才會歸零,因此,當塊中的數據被刪除時,儲存映射的表info 得到更新,然後當新數據寫入同一個塊時,首先需要將該塊歸零,然後才能寫入。如果驅動器沒有經過週期性調整,SSD 中的這個過程可能會導致較低的 w/r 速度。

3PAR LUN 是精簡配置的,VM 是急切密集配置的。

根據我的儲存專家的說法,3PAR 有一個內置的特殊功能,它允許 SSD 儲存沒有被用於其他 VM 的需要,這是沒有意義的。

事實核查:

厚置備的 VM 是 VMDK 文件,創建 VM 時,您指定 VM 的大小,這會創建 VMDK 文件。在我看來,這告訴我,如果定期訪問 VM,則整個 VMDK 文件都將移動到 SDD,他們告訴我的是,即使 VMDK 設置為使用 40GB,也可以使用其中的 40GB其他虛擬機?在我看來,這聽起來更像是精簡配置的虛擬機而不是厚實的虛擬機。

好的解決問題。

在我們的 Windows 系統上,我們使用 sdelete 來查找和清零未使用的塊。

在我們的 Linux Fedora 系統上,我一直在試圖弄清楚如何讓 fstrim 工作。

我確實嘗試了 dd=write-big-file delete-big-file 命令,它通過屋頂發送了磁碟 I/O,這被注意到了,我被告知不要再這樣做了。

做了一些研究,在我看來 sdelete 幾乎與 dd=write-big-file delete-big-file 做同樣的事情,那麼為什麼磁碟 I/O 在 Windows 系統上沒有通過屋頂呢?

所以我想我已經把它縮減為兩個解決方案。我都不知道該怎麼做。

  1. 不知何故,無需 v-motion 將 VM 移動到不同的儲存陣列,就能夠在 SAN 的整個 SSD 部分上執行類似 fstrim 的功能。

旁注:如果我了解我讀過的所有內容,fstrim 會查看每個塊以查看數據是否存在以及是否需要,如果不需要,則將塊清零,因為 sdelete 寫入一個巨大的文件,然後將其刪除。這就是為什麼我要在 3PAR 的整個 SSD 部分中尋找 fstrim 選項的原因。

  1. Longshot,但我使用 fstrim 得到的錯誤是:

$$ root@rhtest ~ $$# fstrim -v / fstrim: /: 不支持丟棄操作 我已經讀到需要在作業系統和數據儲存上設置丟棄選項,但我無法弄清楚在 3PAR 上的何處或如何設置丟棄選項,我對 3PAR 同時具有 SSH 和 GUI 訪問權限。

我經歷了無數次在作業系統中設置丟棄的演練,無論我以多少不同的方式旋轉它,我總是得到同樣的錯誤。

是的,我還研究了其他選項 zerofree 是一個,還有一些其他的選項沒有想到,但是它們要麼像 zdelete 一樣工作,要麼我讀到它們非常危險,我查看了 hdparam 等。

下面我將提供一些有關作業系統的輸出,它們都是相同的。

[root@rhtest ~]# hostnamectl
   Static hostname: rhtest.domain.com
   Icon name: computer-vm
   Chassis: vm
   Machine ID: f52e8e75ae704c579e2fbdf8e7a1d5ac
   Boot ID: 98ba6a02443d41cba9cf457acf5ed194
   Virtualization: vmware
   Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
   CPE OS Name: cpe:/o:redhat:enterprise_linux:7.2:GA:server
   Kernel: Linux 3.10.0-327.el7.x86_64
   Architecture: x86-64

[root@rhtest ~]# blkid
   /dev/block/8:2: UUID="2OHGU8-ir1w-LLGB-6v72-zZqN-CIaX-FjGImJ" TYPE="LVM2_member"
   /dev/block/253:1: UUID="ad872f09-5147-4252-af56-aa6244219515" TYPE="xfs"
   /dev/block/8:1: UUID="83aac355-a443-4ff9-90fa-9f6da8e31cc2" TYPE="xfs"
   /dev/block/253:0: UUID="dbe56f6a-2a4a-42da-82e2-bef9a73caafb" TYPE="swap"

[root@rhtest ~]# lsblk
   NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
   fd0                              2:0    1    4K  0 disk
   sda                              8:0    0   50G  0 disk
   ââsda1                           8:1    0  500M  0 part /boot
   ââsda2                           8:2    0 49.5G  0 part
       âârhel_-rhtest-swap 253:0    0    2G  0 lvm  [SWAP]
       âârhel_-rhtest-root 253:1    0 47.5G  0 lvm  /
   sdb                              8:16   0   50G  0 disk
   sr0                             11:0    1 1024M  0 rom


[root@rhtest ~]# df -h
   Filesystem                              Size  Used Avail Use% Mounted on
   /dev/mapper/rhel_-rhtest-root   48G  883M   47G   2% /
   devtmpfs                                991M     0  991M   0% /dev
   tmpfs                                  1001M     0 1001M   0% /dev/shm
   tmpfs                                  1001M  8.5M  993M   1% /run
   tmpfs                                  1001M     0 1001M   0% /sys/fs/cgroup
   /dev/sda1                               497M  124M  374M  25% /boot
   tmpfs                                   201M     0  201M   0% /run/user/0

能夠在 / 分區上執行 fstrim 將是最好的解決方案,但是使用它們配置 ESXi 的方式是不可能的。

您需要能夠在 VM 和儲存設備上啟用丟棄。

無法嘗試使用 xfs 文件系統減小分區或邏輯卷的大小,這是 fedora 的一個已知錯誤。如果您對此功能感興趣,請聯繫 Red Hat 支持並參考 Red Hat bugzilla 1062667,並提供您需要 XFS 縮減/收縮的案例。

作為在某些環境中可能的解決方法,精簡配置的 LVM 卷可以被視為 XFS 文件系統之下的附加層。

如果 VM 渴望厚配置 VMDK,這意味著當您嘗試修剪(從技術上講;SCSI UNMAP)您的捲時,沒有什麼可回收的。

如果後端儲存正在執行精簡配置,那麼您還需要使用延遲歸零的 VMDK 文件以減少儲存並使後端能夠記憶體/刪除暖數據。

兩種可能的選擇:

1. When storage is provided by a remote server across a SAN, you can only discard blocks if the storage is thin provisioned.

   1. VMotion all the VM's to a different data store and use the built-in VMWare tools
   2. Connect to the ESXi Host with SSH
   3. Navigate to the Virtual Machine Folder
   4. Verify disk usage with du
   5. Run vmkfstools -K [disk]
   6. Verify disk usage with du

2.  dd if=/dev/zero of=BIGFILE bs=1024000
   rm -f BIGFILE

據我所知,這與 sdelete 做同樣的事情,但是它會導致磁碟 I/O 出現峰值並且需要一段時間才能執行。

可以在一夜之間嘗試的東西

這兩種選擇都不是最好的,但重新格式化每個 VM 以獲取 ext3 或 ext4 聽起來並不可行。

您可以做的是為所有 linux VM 設置關聯規則並使用上面的選項 1。

引用自:https://serverfault.com/questions/812347