啟用丟棄 HP 3PAR StoreServ 7400
從這些先前提出的問題中分離出來
我們有一個 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 系統上沒有通過屋頂呢?
所以我想我已經把它縮減為兩個解決方案。我都不知道該怎麼做。
- 不知何故,無需 v-motion 將 VM 移動到不同的儲存陣列,就能夠在 SAN 的整個 SSD 部分上執行類似 fstrim 的功能。
旁注:如果我了解我讀過的所有內容,fstrim 會查看每個塊以查看數據是否存在以及是否需要,如果不需要,則將塊清零,因為 sdelete 寫入一個巨大的文件,然後將其刪除。這就是為什麼我要在 3PAR 的整個 SSD 部分中尋找 fstrim 選項的原因。
- 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。