linux(debian etch) xfs에서 메세지(xen guest server)
안녕하세요. 초보 시스템운영자입니다.
고수님들께 질문이 있어서요.
debian으로 서버를 운영중인데요. 항상 서버운용중에 이하의 메세지가 콘솔 화면에 표시가 됩니다.
______________________________________________________________________________________________
[41175.269080] Filesystem "dm-1": Disabling barriers, not supported by the underlying device
[41175.269625] XFS mounting filesystem dm-1
[41175.684984] Starting XFS recovery on filesystem: dm-1 (logdev: internal)
[41175.895856] Ending XFS recovery on filesystem: dm-1 (logdev: internal)
[127575.898998] Filesystem "dm-1": Disabling barriers, not supported by the underlying device
[127575.899501] XFS mounting filesystem dm-1
[127576.579500] Starting XFS recovery on filesystem: dm-1 (logdev: internal)
[127576.856168] Ending XFS recovery on filesystem: dm-1 (logdev: internal)
[213975.337796] Filesystem "dm-1": Disabling barriers, not supported by the underlying device
[213975.338270] XFS mounting filesystem dm-1
[213975.986954] Starting XFS recovery on filesystem: dm-1 (logdev: internal)
[213976.040466] Ending XFS recovery on filesystem: dm-1 (logdev: internal)
________________________________________________________________________________________________
그래서 xfs.org에서 관련 메세지를 찾아보았습니다.
______________________________________________________________________________________________________________
Q: How can I address the problem with the disk write cache?
[edit] Disabling the disk write back cache.
For SATA/PATA(IDE): (although for SATA this only works on a recent kernel with ATA command passthrough):
* # hdparm -W0 /dev/sda
# hdparm -W0 /dev/hda
* # blktool /dev/sda wcache off
# blktool /dev/hda wcache off
For SCSI:
* Using sginfo(8) which is a little tedious
It takes 3 steps. For example:
1. #sginfo -c /dev/sda
which gives a list of attribute names and values
2. #sginfo -cX /dev/sda
which gives an array of cache values which you must match up with from step 1, e.g.
0 0 0 1 0 1 0 0 0 0 65535 0 65535 65535 1 0 0 0 3 0 0
3. #sginfo -cXR /dev/sda 0 0 0 1 0 0 0 0 0 0 65535 0 65535 65535 1 0 0 0 3 0 0
allows you to reset the value of the cache attributes.
For RAID controllers:
* See the section about RAID controllers below
This disabling is kept persistent for a SCSI disk. However, for a SATA/PATA disk this needs to be done after every reset as it will reset back to the default of the write cache enabled. And a reset can happen after reboot or on error recovery of the drive. This makes it rather difficult to guarantee that the write cache is maintained as disabled.
[edit] Using an external log.
Some people have considered the idea of using an external log on a separate drive with the write cache disabled and the rest of the file system on another disk with the write cache enabled. However, that will not solve the problem. For example, the tail of the log is moved when we are notified that a metadata write is completed to disk and we won't be able to guarantee that if the metadata is on a drive with the write cache enabled.
In fact using an external log will disable XFS' write barrier support.
[edit] Write barrier support.
Write barrier support is enabled by default in XFS since kernel version 2.6.17. It is disabled by mounting the filesystem with "nobarrier". Barrier support will flush the write back cache at the appropriate times (such as on XFS log writes). This is generally the recommended solution, however, you should check the system logs to ensure it was successful. Barriers will be disabled and reported in the log if any of the 3 scenarios occurs:
* "Disabling barriers, not supported with external log device"
* "Disabling barriers, not supported by the underlying device"
* "Disabling barriers, trial barrier write failed"
If the filesystem is mounted with an external log device then we currently don't support flushing to the data and log devices (this may change in the future). If the driver tells the block layer that the device does not support write cache flushing with the write cache enabled then it will report that the device doesn't support it. And finally we will actually test out a barrier write on the superblock and test its error state afterwards, reporting if it fails.
______________________________________________________________________________________________________________
현재 사용중의 커널 버젼은 2.6.26-1이고 xen가상서버상에서 게스트 머신으로 서버 운영중입니다.
누군가 상기의 내용에 대해서 자세히 알고 계신분 계신가요.
계시다면 쉽게 설명해주실 고수분께 가르침을 부탁드립니다.
댓글 달기