728x90
반응형

* 증상

mount.nfs: an incorrect mount option was specified.


* 원인

nfs 버전이 서로 달라서 발생하는 경우이다. 예를 들어 스토리지의 nfs가 v3 인데 클라이언트의 nfs v4일 경우 버전 문제로 mount 되지않는 증상이다.


* 해결

-o nfsvers=3 형식으로 nfs 버전을 mount 하는 곳의 버전으로 맞추어준다.

Ex) mount -t nfs -o nfsvers=3 10.1.1.100:/data /data1








반응형

'Linux' 카테고리의 다른 글

Linux LVM Striped  (0) 2018.08.08
Linux 백업 슈퍼블록을 이용한 파일 시스템 복구  (0) 2018.08.08
Linux fsck  (0) 2018.08.08
Linux badblocks  (0) 2018.08.08
Linux hdparm  (0) 2018.08.08
728x90
반응형
fcsk


▶ fsck 명령어는 리눅스 파일 시스템을 점검하고 복원시켜 주며 윈도우의 chkdsk 와 유사한 명령어

fsck  (최신 e2fsck)는 single 모드로, 해당 파티션이 unmount 된 상태에서 수행해야 정확한 검사가 가능

  ext3 의 경우에는 보통 default 로 부팅시에  6개월에 한번 파일 시스템 점검 하도록 되어있으므로 파일시스템 손상 가능성이 거의 없지만 ext2 의 경우는 가끔 실행해 주는 것이 좋다.

▶ 종료 코드는 다음 값의 합계로 나타난다.

0 - 에러 없음
1 - 화일 시스템 에러 고쳐짐
2 - 리부팅이 필요함
4 - 화일 시스템 에러를 고치지 않고 그대로 둠
8 - 실행 에러
16 - 사용법 또는 문법 에러
128 - 공유 라이브러리 에러

▶ 사용법

# fsck [ -AVRTNP ] [ -s ] [ -t 파일시스템유형 ] [ 파일시스템옵션 ] 파일시스템 [ ... ]

▶ 옵션

-A : etc/fstab 화일에 표시된 모든 화일 시스템을 모두 검사한다

-R : -A와 같이 사용될 때 루트 화일 시스템은 제외 한다(이미 읽기-쓰기 가능으로 마운트되어 있는 경우)

-T : 시작할때 제목을 보여주지 않는다

-N : 실제 검사는 하지 않고 어떤 작업을 할것인가만 보여준다

-V : 자세히 출력한다

-a : 물어보지 않고 자동 복구한다

-r : 물어보고 복구한다

-s : fsck 동작을 시리얼화한다. 대화형 모드에서 여러 화일 시스템을 점검할 때 유용하다

-t [type] : 화일 시스템 유형을 지정한다.
     
-A 플래그가 설정되어 있는 경우 파일시스템유형에 맞는 것만 점검한다.
    파일시스템유형 앞에 no 를 붙이면 파일시스템유형 아닌 것만 점검한다.
    보통 /etc/fstab 화일에 들어있는 파일시스템유형을 따른다.
    만약 해당 유형을 알아낼 수 없을 때는 fsck 는 -t 옵션에서 주어진 값을 사용한다.
    주어진 값이 유효하지 않다면 현재로서는 기본값인 ext3가 사용된다




fsck 상세 설명


1) fsck는 화일 시스템에서 내재하는 여분의 데이타를 첵크함으로서 구조적인 상태를 검증

fsck 실행시 아래의 5가지의 과정을 거치게 된다.

Phase 1 - Check Blocks and Sizes : 블럭과 사이즈 검사

Phase 2 - Check Pathnames : 패스이름 검사

Phase 3 - Check Connectivity : 연결 상태 검사

Phase 4 - Check Reference Counts : 참조 수 검사

Phase 5 - Check Cyl groups : 싸이클 그룹 검사


2) fsck는 Multi-pass 프로그램인데, 파일 시스템을 여러번 시험하여 각각의 경로마다 파일 시스템의 다른 특징을 시험한다는 뜻


3) root에 fsck를 실행시키기전에 shutdown 명령어를 써서 시스템을 단독 사용자 형태로 옮겨야 한다.

만일 fsck에 파일 시스템을 주지 않고서 실행시키면 fsck는 /etc/checklist  파일에서 "hfs"라고 표시된 파일 시스템만 검색.

그 순서는 pass_number(6번째 필드) 에서 숫자로 결정된다.

% 예방과 유지를 위해 모든 파일 시스템에 한주에 한번 혹은 각각의 full backup 전에 fsck -p를 실행하는것이 좋다. 


4) 형식) 

# fsck -P/-p (-P: /file system check only. -p: /를 제외한 일반 파일 시스템 check) 


5) # fsck (-b, block#) (-y|-n) (-q) (file_system) 

* -y : 모든 질문에 yes라는 뜻. 가급적 안쓰는것이 좋다.
 * -n : " no " . 쓰지 말것.
 * -q : 구질 구질한 것이 많으니 보지 않겠다는 의미. 역시 안쓰는것이 좋다.
 * -b block# : 이것은 primary super block을 잃어버렸거나 파괴되었을때 사용하기 좋고 fsck로 많은 에러가 발생되었다면 이 옵션을 사용할 것.

% fsck가 다시 부트하라는 말이 없는데 시스템을 다시 시동하지 말것.

만일 다시 시동해야 한다면 sync를 실행시키지않는 reboot -n 명령을 사용할 것.


6) The lost + found Directory 

6-1. 모든 file system은 그의 root에 lost+found라는 디렉토리를 가져야 된다. 즉, /lost+found 이고 이것은 newfs에 의해 생성된다. 

6-2. 만일 존재하지 않는다면 /etc/mklost+found라는 명령을 써서 다시 만들수있다. 

6-3. fsck는 lost+found 디렉토리안에 어떤 문제의 파일들이나 디렉토리들을 위치시킨다.





fsck 명령의 일반적인 사용 예 1


1. 시스템을 리부팅 하거나 갑자기 파일시스템 I/O에러가 생길 때 보통은 너무 오랫동안 파일 시스템 점검을 안해 준 경우가 대부분


2. 시스템을 싱글 유저 모드로 부팅

boot: linux single


3. 현재 마운트된 장치명을 확인 한다

#mount


4. 체크 할 파티션을 umount 한다 (필수임, umount 하지 않을 경우 파티션 손실 가능성 높음)

#umount /dev/sdb1 /backup


5. fsck 명령으로 시스템 점검

#fsck -y /dev/sdb1 : 복구할지 물어 보지 않고 자동 yes 처리 함

#fsck -a /dev/sdb1


6. fsck 주요 옵션

형식 : fsck [-옵션] [파일시스템 옵션] 파일시스템 또는 디스크 디바이스





fsck 명령의 일반적인 사용 예 2


▶ 파일시스템 검사 (-TV : 자세한 출력 및 버전 출력 방지 옵션)

# fsck -TV /dev/sdb1
[/sbin/fsck.ext4 (1) -- /dev/sdb1] fsck.ext4 /dev/sdb1
e2fsck 1.41.14 (22-Dec-2010)
/dev/sdb1 is mounted.

WARNING!!! The filesystem is mounted. If you continue you ***WILL***
cause ***SEVERE*** filesystem damage.

Do you really want to continue (y/n)? yes

/dev/sdb1: 저널 복구중
/dev/sdb1: clean, 11/65280 files, 8523/261048 blocks


▶  검사 수행 도중 문제가 발생하면, 문제를 수정할 것인지 사용자에게 물어보는데 -y옵션을 추가하여 모든 질문에 대해 yes로 답변하도록 할 수 있다.

# fsck -TVy /dev/sdb1
반응형

'Linux' 카테고리의 다른 글

Linux 백업 슈퍼블록을 이용한 파일 시스템 복구  (0) 2018.08.08
Linux nfs mount error  (0) 2018.08.08
Linux badblocks  (0) 2018.08.08
Linux hdparm  (0) 2018.08.08
Linux smartctl  (0) 2018.08.08
728x90
반응형
◆ badblocks

▶ 디스크 배드블럭 체크

badblocks 명령어는 하드디스크와 플로피디스크의 배드블럭(bad block)을 검사하는 명령어

배드블럭이 존재하는 하드디스크를 사용하게 되면 정상적인 운용중에도 갑자기 서버가 다운되는 등의 심각한 장애를 초래할 수 있다.

따라서 배드블럭은 서버설치시 또는 설치 직후에 반드시 점검을 해야하며 배드블럭이 존재할 경우에는 깨끗한 디스크로 반드시 교체

▶ 사용법

# badblocks [ -b 블록크기 ] [ -o 출력파일 ] [ -v ] [ -w ]

▶ 옵션

-b 블록크기
블록크기를 바이트 수로 나타냄 (기본값 : 1024 bytes)

-o 파일명
지정한 파일에 배드 블록의 리스트 기록

-v
자세한 출력 모드

-e 최대블록개수
점검을 멈출 최대 블록 개수 (0이면 지정된 범위 까지 점검)

-p num_passes
지정된 숫자 만큼 디스크 스캔 반복.

-w
읽기/쓰기 모드 에서 배드블록을 검사 (-n 옵션과 함께 사용 X, 상호 배타적임)

-n
비-파괴 읽고/쓰기 모드 ( -w옵션과 함께 사용 X, 상호 배타적임)

-s
검사 진행 과정 표시





◆ badblocks이 존재하지않을 경우

 [root@www named]# badblocks -v /dev/sda5
Checking for bad blocks in read-only mode
 From block 0 to 15615148 
Pass completed, 0 bad blocks found.
 [root@www named]#

위의 예는 배드블럭이 존재하지 않았을 경우의 예이다.

이상이 없는 깨끗한 디스크이므로 정상적인 사용이 가능하다고 할 수 있다.





◆ badblocks이 존재하는 경우

[root@www root]# badblocks -v -o badblock.txt /dev/sda3
 Checking for bad blocks in read-only mode
 From block 0 to 16755795
Pass completed, 3 bad blocks found.
 [root@www root]#
 [root@www root]#
 [root@www root]#
 [root@www root]# ll
 total 8
 -rw-r--r--    1 root     root         1199 Jun 30  2002 anaconda-ks.cfg
 -rw-r--r--    1 root     root           27 Jan 17 22:34 badblock.txt
 [root@www root]#
 [root@www root]# cat badblock.txt
 16755792
 16755793
 16755794
 [root@www root]#


위의 경우에는 3개의 배드블럭이 존재하는 경우이다. 배드블럭이 존재할 경우에는 몇개의 배드블럭이 존재하는지 결과에서 알려준다.

이 경우처럼 -o 옵션을 주게 되면 지정된 파일(badblock.txt)에 결과를 저장하며 그 파일을 확인(cat badblock.txt)함으로서 배드블럭의 번호를 확인할 수 있다.





◆ badblocks 명령의 일반적인 사용 예


▶ -v 옵션 : 자세한 정보 출력과 함께 기본적인 사용

# badblocks -v /dev/sdb1
Checking blocks 0 to 1044192
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.


▶ 비-파괴 모드로 배드블록을 검사.

# badblocks -vsn /dev/sdb1
Checking for bad blocks in non-destructive read-write mode
From block 0 to 1044192
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: 12.88% done, 0:05 elapsed

- 기본적으로, 배드블록 검사는 읽기전용 모드에서 수행하는 것이 안전하다.
비-파괴(non-destructive) 읽고/쓰기 검사는 매우 느리지만
디바이스에 저장된 데이터의 손실 없이 검사할 수 있는 가장 좋은 방법이다.


▶ 읽기/쓰기 모드 검사. ( 경고 : 데이터가 파괴될 수 있음 )

# badblocks -vsw /dev/sdb1
Checking for bad blocks in read-write mode
From block 0 to 1044192
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: done
Testing with pattern 0x00: done
Reading and comparing: done
Pass completed, 0 bad blocks found.

- 읽기/쓰기 모드에서 배드블록을 검사하는 것으로 빠르게 검사할 수는 있지만 데이터가 파괴 된다.


▶ 다수의 배드블록 검사 수행

# badblocks -vsnp 2 /dev/sdb1

- 디스크 품질을 검사하고, 초기 고장률을 낮추기 위한 테스트용으로 사용.


반응형

'Linux' 카테고리의 다른 글

Linux nfs mount error  (0) 2018.08.08
Linux fsck  (0) 2018.08.08
Linux hdparm  (0) 2018.08.08
Linux smartctl  (0) 2018.08.08
Linux tune2fs  (0) 2018.08.08
728x90
반응형
hdparm


시스템에 장착된 하드디스크의 설정을 확인하거나 하드디스크의 설정을 하고자 할 때에 사용하는 명령어

IDE 또는 SCSI하드디스크의 ACCESS속도를 측정할 때에 많이 사용

 명령어위치 : /sbin/hdparm





hdparm명령어로 버퍼링되어 있지않은 데이터의 디스크 ACCESS 속도 체크하기



[root@bible root]# hdparm -t /dev/sda
 
/dev/sda:
 Timing buffered disk reads:  64 MB in  0.99 seconds = 64.65 MB/sec
[root@bible root]#
 SCSI하드디스크의 경우 실제로 디스크에 존재하는 데이터를 읽는 속도는 초당 약64MB





IDE디스크의 속도 체크



[root@ bible root]# hdparm -t /dev/hda
 
/dev/hda:
 Timing buffered disk reads:  64 MB in  2.42 seconds = 26.45 MB/sec


IDE디스크의 경우 실제로 디스크에 존재하는 데이터를 읽는 속도는 초당 약26MB임을 알수 있음

 위의 두가지 테스트로 인하여 각각의 하드디스크의 속도를 체크 

 SCSI하드디스크가 IDE하드디스크보다는 데이터의 읽은 속도에 있어서 현저하게 높은 성능을 나타내고 있다는 것도 알 수 있음
(위의 예는 디스크에 존재하는 데이터 가운데 버퍼링이 되어 있지 않은 데이터를 대상으로 점검한 것)





hdparm명령어로 버퍼링되어 있는 데이터와 되어있지않는 데이터의 ACCESS 속도 비교하기


캐쉬에 버퍼링되어 있는 데이터를 읽는다면 실제 속도는 엄청나게 빨라질 것 

캐쉬에 저장된 데이터를 읽는다는 것은 실제로 디스크에서 읽어오는 것이 아니라 캐쉬메모리에서 읽어오기 때문

SCSI디스크의 캐쉬에 버퍼링되어 있는 데이터와 실제 디스크에서 데이터의 읽는 속도를 각각 비교한 예

[root@ bible root]# hdparm -tT /dev/sda
 
/dev/sda:
 Timing buffer-cache reads:   128 MB in  0.58 seconds =220.69 MB/sec
 Timing buffered disk reads:  64 MB in  0.97 seconds = 65.98 MB/sec
[root@ bible root]#
캐쉬에 버퍼링되어 있는 데이터(T옵션)를 읽을 때에는 초당 약 220MB
실제로 디스크에서 데이터(t옵션)를 읽어오는 속도는 초당 약 65MB
이 예에서 캐쉬메모리가 시스템의 속도에 얼마나 막대한 영향력을 행사하는가를 알 수 있음
IDE디스크의 캐쉬에 버퍼링되어 있는 데이터와 실제 디스크의 읽는 속도를 각각 비교한 예 

[root@ bible root]# hdparm -tT /dev/hda
 
/dev/hda:
 Timing buffer-cache reads:   128 MB in  0.59 seconds =216.95 MB/sec
 Timing buffered disk reads:  64 MB in  2.48 seconds = 25.81 MB/sec

[root@ bible root]#

이번 IDE디스크의 경우 캐쉬에 버퍼링되어 있는 데이터(T옵션)를 읽을 때에는 초당 약 216MB를 읽을 수 있으며 실제로 디스크에서 데이터(t옵션)를 읽어오는 속도는 초당 약 25MB임을 알 수 있음 

이번 예에서도 캐쉬메모리가 시스템의 속도에 얼마나 막대한 영향력을 행사하는가를 알 수 있음

그리고 앞의 예와 비교해 보시면 당연히 SCSI하드디스크가 IDE보다는 성능이 뛰어남을 알 수 있음





hdparm명령어로 CD-ROM드라이브의 읽는속도 테스트하기 


 CD-ROM드라이브의 읽는 속도를 다음과 같이 확인

 CD-ROM드라이브의 장치명이 /dev/cdrom이므로 아래와 같이 점검
[root@bible root]# hdparm -t /dev/cdrom
 
/dev/cdrom:
 Timing buffered disk reads:  64 MB in 14.77 seconds =  4.33 MB/sec

[root@bible root]#

리눅스 시스템에 장착되어 있는 CD-ROM드라이브는 초당 약 4MB의 속도로 데이터를 읽을 수 있음

#hdparm으로 테스트한 결과값이 절대값이라고는 생각하시면 안됨#





옵션


-a 
 파일 시스템의 미리 읽기(read-ahead) 섹터 수의 정보를 보여주거나 정할수 있습니다.
 이 옵션으로 큰 화일이 연속되는 경우의 성능이 증대될수 있으며, 그것은 실행중인 작업이 필요하게 되는 예상의 추가적인 블럭을 미 리 가져 옴으로써 성능을 증대시킵니다

-A 
 IDE 장치의 미리 읽기(read-lookahead) 기능을 on/off 할수 있습니다. (대개 기본적으로 기능이 켜져(ON) 있습니다).

-c 
 (E)IDE 장치의 32-bit 입출력(I/O) 기능을 켜거나 알아볼수 있습니다.
 이 옵션에서 숫자로 32-bit 입출력(I/O)을 조정할수 있습니다:
 32-bit 입출력(I/O)를 끄려면 0
 32-bit 입출력(I/O)를 켜려면 1 
 여러 칩셋에서 요구되는 특별한 동기 배열(syncsequence)을 포함한 32-bit 입출력(I/O)를 켜려면 3 
 이 값(3) 은 거의 모든 32-bit IDE 칩셋에서 동작하지만, 좀 더 부담(overhead)를 줄수 있습니다.

-C 
 IDE 장치의 전원 모드 상태를 검사합니다.  이것은 항상 이 중 하나의 상태가 될 것 입니다.
 unknown (장치가 이 명령어를 지원하지 않습니다.)
 active/idle (보통 상태입니다.)
 standby (저 전력 상태입니다. 장치의 모터 회전이 멈춥니다.)
 sleeping (장치가 완전히 정지합니다.).
 -S,-y,-Y,-Z 옵션으로 IDE 장치의 전원 모드를 조정 할 수 있습니다.

-d 
 장치의 직접 메모리 접근(DMA) 옵션을 켜거나 끌수 있습니다.

-E 
 CD-ROM의 속도를 설정합니다.
 이것은 CD-ROM이 자동적으로 속도를 바꾸기 때문에 일반적으로 필요한 옵션은 아닙니다.

-f 
 장치가 나갈때 버퍼 캐쉬(buffer cache)를 동기화 시키고 비웁니다.
 이 동작은 또한 -t 와 -T 옵션이 동작할때 같이 실행됩니다.

-g 
 장치의 구조 (실린더, 헤드, 섹터), 장치의 크기 (섹터), 그리고 장치의 시작 변위(offset) (섹터)를 장치의
 시작부분에서 표시합니다.

-h 
 사용 방법을 간결하게 표시합니다.

-i 
 가능하다면 부트 시간에 얻을수 있는 확인 정보를 표시합니다.
 이것은 지금의 IDE 장치의 특징이고, 오래된 장치에서는 아마 지원하지 않을 것 입니다.


-I 
 장치로 부터 직접 어떠한 변화나 수정이 없는 본래의 확인 정보를 요청합니다.

-k 
 장치의 리셋에도 셋팅을 유지하는 옵션(keep_settings_over_rest)을 설정하거나 보여줍니다.

-K 
 리셋에도 특징을 유지하는 옵션(keep_features_over_reset)을 설정합니다.
 모든 장치가 이것을 지원하는 것은 아닙니다.

-L 
 장치의 도어락을 설정합니다. 
 이 옵션을 으로 설정하므로써 도어락을 풀 수 있습니다. 일반적으로 리눅스는 디스크 사용에 따라 도어락을 자동적으로 유지합니다.

-m 
 장치의 다중 섹터 입출력(I/O)을 위해 섹터 수를 설정하거나 정보를 알아냅니다.
 이 옵션을 끄기 위해서는 0 을 사용합니다.

-P 
 장치의 내부적인 선전달(prefetch) 구조를 위한 최대 섹터 수를 설정합니다.
 모든 장치가 이 기능을 지원하는 것은 아닙니다.

-q 
 이어지는 옵션을 화면에는 출력하지 않습니다.
 이것은 /etc/rc.d/rc.local 에서 실행될 때 화면의 출력을 줄여서 유용합니다.
 이것은 -i 옵션 -v 옵션 -t 옵션 -T 옵션에는 적용되지 않습니다.

-r 
 장치의 읽기 전용(read-only)을 설정하거나 정보를 얻습니다. 설정할때, 이 장치의 쓰기는 허가되지 않습니다.
 
-S 
 드라이브의 standby (spindown) 시간을 설정합니다.
 이 수치는 드라이브에게 전원 절약을 위해 스핀들 모터를 멈출때 까지 얼마나 기다릴 것인가를 결정하게 됩니다.
 이런 상황에서 드라이브는 연속되는 디스크 접근에 반응하기 위해 30초정도 걸릴 것 이지만 대부분의 드라이브는 더 빠릅니다.
 timeout 수치는 좀 특이합니다.

* 1-240까지는 5초 단위로 증가하고 (결국 5초부터 20분까지), 
* 241~251까지는 30분 단위로 증가(30분에서 5.5시간까지에 해당)합니다.
* 252는 21분을 의미하고 
* 253은 특별히 제조사에서 설정한 값으로 8시간에서 12시간사이의 timeout 시간. 
* 254는 다른 설정값을 위해서 남겨져 있고
* 마지막으로 255는 21분 15초


-T 
 비교를 목적으로 벤치마크를 위해 캐쉬를 읽는 시간을 잽니다.
 정확한 결과를 위해 이것을 적어도 수 메가 바이트의 메모리 자원이 남은 상태의 사용하지 않는 시스템에서 2-3번 정도 반복해서 수행합니다.
 이 옵션은 디스크 접근(access)없이 리눅스 버퍼 캐쉬로 부터 직접적으로 읽어오는 속도를 표시해줍니다.
 이 측정법은 본래 테스트 상태의 시스템의 프로세서, 캐쉬, 메모리의 결과물의 표시입니다.
 -t 옵션과 같이 사용한다면, 수정된 요인에 기초한 -T 의 결과에 -t 의 결과를 함께 보고할 것 입니다.

-t 
 비교를 목적으로 벤치마크를 위해 장치를 읽는 시간을 잽니다.
 정확한 결과를 위해 이것을 적어도 수 메가 바이트의 메모리 자원이 남은 상태의 사용하지 않는 시스템에서 2-3번 정도 반복해서 수행합니다.
 이 옵션은 어떠한 사전의 캐쉬가 되지 않은 데이터를 디스크에서 버퍼 캐쉬를 통해 읽는 속도를 표시합니다.
 이 측정법은 리눅스에서 파일시스템의 어떠한 부담을 주지않고 얼마나 빠르게 드라이브가 연속되는 데이터를 지속적으로 읽을수 있는지의 표시입니다.
 정확한 측정법을 확실히 하기 위해서는, BLKFLSBUF ioctl 를 사용하여 -t 가 수행되는 동안 버퍼 캐쉬가 비워져야 합니다.  -T 옵션과 같이 사용한다면, 수정된 요인에 기초한 -T 의 결과에 -t 의 결과를 함께 보고할 것 입니다.

-u 
 장치의 interrupt-unmask 를 설정하거나 정보를 얻습니다.
 이 옵션을 1 로 설정할 경우 장치에게 디스크의 인터럽트가 진행되는 동안 다른 인터럽트를 unmask 하도록 허락합니다.  이것은 리눅스의 반응성을 크게 증가시키고 "serial port overrun" 에러를 제거합니다. 이 기능을 사용할때는 주의하십시오: 어떤 드라이브/콘트롤러 조합은 이 기능이 켜졌을때(enable) 입출력(I/O) 대기시간이 증가하는  것에 관대하지 않을수 있습니다.
 결과적으로 파일시스템을 크게 손상시킵니다. 특별히 CMD-640B 와 RZ1000 (E)IDE 인터페이스는 커널 2.0.13 이전 버젼에서는 이 옵션이 사용될 때 신뢰할수 없습니다.
 이전 버젼의 커널을 사용 할때 이런 문제를 고치기 위해서는 IDE prefetch 기능을 이런 인터페이스 에서 꺼 주시길 바랍니다.

-v 
 -i 옵션을 제외하고 모든 셋팅을 표시합니다.( IDE 에서는 -acdgkmnru , SCSI 에서는 -gr , XT 에서는 -adgr 과 같습니다.)
  또한 이것은 특별히 어떠한 옵션도 주지 않았을때 기본 동작입니다.

-W 
IDE 드라이브의 쓰기-캐쉬(write-caching) 기능을 끄거나 켭니다.( 대개 기본적으로 꺼져(OFF) 있습니다.)

-X 
 새로운 (E)IDE/ATA2 드라이브를 위해 IDE 전송 모드를 설정합니다.

-y 
 강제로 IDE 드라이브를 신속히 저 전력 소모의 standby 모드로 들어가게 합니다.
 대개는 스핀들 모터를 멈추게 합니다. 현재 전원 모드 상태는 -C 옵션에서 체크할 수 있습니다.

-Y 
 강제로 IDE 드라이브를 신속히 가장 적은 전력을 소모하는 sleep 모드로 들어갑니다.
 완전히 shut down을 합니다. 드라이브가 다시 접근(access)할수 있으려면 하드 혹은 소프트 리셋이 필요합니다.
 (리눅스 IDE 드라이버는 필요할 때 자동적으로 리셋을 조절합니다.)

 현재 전원 모드 상태는 -C 옵션에서 체크할 수 있습니다.

-Z 
 불편한 시간에 idle/spin-down 을 막기위해 Seagate 드라이브의 자동 전력-보호 기능을 끕니다.


반응형

'Linux' 카테고리의 다른 글

Linux fsck  (0) 2018.08.08
Linux badblocks  (0) 2018.08.08
Linux smartctl  (0) 2018.08.08
Linux tune2fs  (0) 2018.08.08
Linux LVM 명령어 리스트  (0) 2018.08.08
728x90
반응형
SMARTCTL

◆ smartctl 도구는 S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) 기능이 탑재된 하드디스크를 점검하는 도구

◆S.M.A.R.T 의 기능을 이용하는 도구이다보니 이 기능이 없는 하드디스크는 이 도구를 이용할 수가 없다 





사용법

◆ smartctl [옵션] [장치명]

- smartctl -a /dev/sda

- smartctl -a -d cciss,0 /dev/cciss/c0d0 <HP Disk>

◆ 옵션

-i : 장치에 대한 정보를 표시

-g : 장치 설정을 가져옴

-a : 장치에 대한 모든 SMART 정보를 표시

-x : 장치에 대한 모든 정보를 표시

-scan : 장치를 검색

-scan-open : 장치를 검색하고 실행

-r : 보고서 출력

-s : SMART 활성화 / 비활성화

-o : 자동으로 오프라인 테스트 해제

-S : 비활성화 속성 자동 저장 사용

-H : 장치 health 표시

-A : 장치의 벤더 고유 속성과 값 표시


[root@Home ~]# smartctl --all /dev/sda

smartctl version 5.38 [x86_64-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Second Generation Serial ATA family
Device Model:     WDC WD5000AAKS-00A7B2
Serial Number:    WD-WCASY7521049
Firmware Version: 01.03B01
User Capacity:    500,107,862,016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Wed Jun  1 19:55:45 2011 KST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status:  (0x84) Offline data collection activity
                                        was suspended by an interrupting command from host.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                 (11160) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 131) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x303f) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   163   162   021    Pre-fail  Always       -       4825
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       259
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   085   085   000    Old_age   Always       -       11533
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       254
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       237
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       259
194 Temperature_Celsius     0x0022   109   086   000    Old_age   Always       -       38
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.


빨간색 항목은 정상적인 Hard disk 라면 반드시 0을 가지고 있어야 하는 항목, 숫자가 높을수록 상태가 좋지 않은상태

Raw_Read_Error_Rate
디스크 표면이로부터 데이터를 읽는 과정에서 문제가 있을때 (주로 물리적인 충격으로 유발됨)
Spin_Up_Time
플레터 회전이 제로 rpm에서 최대 rpm에 도달하는데 걸리는 평균 시간
Start_Stop_Count
플레터가 회전하고 정지한 횟수
Reallocated_Sector_Ct
섹터에 문제가 생겨서 스페어영역의 섹터로 대체한 횟수
Seek_Error_Rate
탐색 오류율
Power_On_Hours
하드에 전원이 인가된 시간
Spin_Retry_Count
최대rpm에 도달하기위해서 회전을 시도하는 횟수 (정상이라면 1번에 끝나야한다)
Power_Cycle_Count
전원 on/off 횟수
Power-Off_Retract_Count
헤드가 플레터(디스크)에서 벗어나는 횟수 (간단하게 parking 위치로 이동한 횟수)
Load_Cycle_Count
헤드가 플레터위로 진입한 횟수
Temperature_Celsius
하드디스크 온도
Reallocated_Event_Count
스페어영역으로 대체된 섹터로 부터 데이터를 읽어간 횟수
hardware ecc recovered
ECC 오류검출로 인하여 복구된 횟수
Current_Pending_Sector
불안정적인 섹터로 스페어영역 섹터로 remap을 준비중이거나 읽는 과정에 문제가 생긴 섹터 (준 배드섹터)
Offline_Uncorrectable
읽기/쓰기에 문제가 생긴 섹터, 즉 디스크 표면이 손상됨. (한마디로 배드섹터)
UDMA_CRC_Error_Count
하드디스크 인터페이스를 통해 데이타 전송과정에 발생한 CRC 오류 횟수
Multi_Zone_Error_Rate
섹터에 쓰기과정에 발생한 에러가 검출된 횟수





예제

아래와 같은 에러 메시지가 발생하는 Linux system있다. 이 System을 smartctl을 통해 분석

ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata1.00: irq_stat 0x40000001
ata1.00: cmd 06/01:01:00:00:00/00:00:00:00:00/a0 tag 0 dma 69632 out
         res 51/04:01:00:00:00/00:00:00:00:00/a0 Emask 0x1 (device error)
ata1.00: status: { DRDY ERR }
ata1.00: error: { ABRT }
ata1.00: device reported invalid CHS sector 0
end_request: I/O error, dev sda, sector 533248
"DRDY ERR" 가 발생을 하고 있다. DRDY(Hard disk의 status register 에 Drive ready error를 확인함)

여기서 /dev/sda에 대한 smartctl 결과는 아래와 같다. 빨간색으로 표시한 부분은 문제가 있는 부분


# sudo smartctl --all /dev/sda
smartctl 5.40 2010-03-16 r3077 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     SSD128GNOB-HSM1
Serial Number:    <censored>
Firmware Version: 1571
User Capacity:    128.035.676.160 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   7
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Jan  7 23:14:19 2011 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (   0) seconds.
Offline data collection
capabilities: (0x1d) SMART execute Offline immediate.
No Auto Offline data collection support.
Abort Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
No Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability:        (0x00) Error logging NOT supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: (   0) minutes.
Extended self-test routine
recommended polling time: (   0) minutes.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x0000   007   000   000    Old_age   Offline      -       0
  9 Power_On_Hours          0x0000   202   001   000    Old_age   Offline      -       0
12 Power_Cycle_Count       0x0000   169   000   000    Old_age   Offline      -       0
184 End-to-End_Error        0x0000   018   000   000    Old_age   Offline      -       0
195 Hardware_ECC_Recovered  0x0000   000   000   000    Old_age   Offline      -       0
196 Reallocated_Event_Count 0x0000   000   000   000    Old_age   Offline      -       0
197 Current_Pending_Sector  0x0000   000   000   000    Old_age   Offline      -       0
198 Offline_Uncorrectable   0x0000   131   213   000    Old_age   Offline      -       38503
199 UDMA_CRC_Error_Count    0x0000   021   007   000    Old_age   Offline      -       39935
200 Multi_Zone_Error_Rate   0x0000   016   197   000    Old_age   Offline      -       401
201 Soft_Read_Error_Rate    0x0000   197   047   000    Old_age   Offline      -       173
202 Data_Address_Mark_Errs  0x0000   164   115   000    Old_age   Offline      -       2
203 Run_Out_Cancel          0x0000   030   103   000    Old_age   Offline      -       2
204 Soft_ECC_Correction     0x0000   000   000   000    Old_age   Offline      -       0
205 Thermal_Asperity_Rate   0x0000   160   134   000    Old_age   Offline      -       1
206 Flying_Height           0x0000   001   000   000    Old_age   Offline      -       0
207 Spin_High_Current       0x0000   219   006   000    Old_age   Offline      -       0
208 Spin_Buzz               0x0000   067   000   000    Old_age   Offline      -       0
209 Offline_Seek_Performnce 0x0000   100   000   000    Old_age   Offline      -       0
210 Unknown_Attribute       0x0000   238   000   000    Old_age   Offline      -       0
211 Unknown_Attribute       0x0000   000   000   000    Old_age   Offline      -       0

Warning: device does not support Error Logging
Warning! SMART ATA Error Log Structure error: invalid SMART checksum.
SMART Error Log Version: 1
No Errors Logged

Warning! SMART Self-Test Log Structure error: invalid SMART checksum.
SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


Device does not support Selective Self Tests/Logging

smartctl의 결과에 의해서 배드섹터가 38503개가 있으며 Cable상 오류도 발생하는 것을 찾을 수 있다.
반응형

'Linux' 카테고리의 다른 글

Linux badblocks  (0) 2018.08.08
Linux hdparm  (0) 2018.08.08
Linux tune2fs  (0) 2018.08.08
Linux LVM 명령어 리스트  (0) 2018.08.08
Linux Disk(LUN) 인식  (0) 2018.08.08
728x90
반응형
◆ 파일시스템 튜닝명령어 tune2fs 

- tune2fs 는 리눅스 파일시스템의 변경가능한 파라미터값을 설정하는 명령어

- 파일시스템의 파라미터값을 변경함으로서 파일시스템을 튜닝할 수 있으며 결과적으로 시스템의 성능을 향상시킬 수 있다
 
- tune2fs는 파일시스템의 파라미터값을 변경하는 것이므로 잘못 사용하면 파일시스템에 큰 손상을 입힐 수도 있다
 
- 사용형식
# tune2fs [ -l ] [ -c 최대마운트횟수] [ -e 에러발생시반응 ] [ -i 각점검간의간격 ] [ -m 예약블록퍼센트] [ -r 예약블록갯수 ] [ -u 사용자 ] [ -g 그룹 ] 장치명





◆ 특정 파일시스템의 수퍼블록정보 확인하기

 # tune2fs -l /dev/sda1

 - dumpe2fs -h 명령어를 사용한 것과 동일한 결과를 출력함.





◆ 특정 파일시스템의 최재 마운트횟수 설정하기

 - 파일시스템의 최대 마운트횟수를 변경하려면 -c 옵션을 사용하면 됨
 tune2fs -c 100 /dev/sda1

 - /dev/sda1 파일시스템의 최대 마운트횟수가 100으로 변경됨





◆ 특정 파일시스템의 예약블록갯수 변경하기

 # tune2fs -r 10000000 /dev/sda1

 - -r 옵션을 사용하면 특정 파일시스템의 예약블록갯수를 변경할 수 있음.





◆  특정 파일시스템의 예약된 블록을 사용할 수 있는 그룹 설정하기

 - 예약된 블록은 기본적으로 root 그룹만이 사용가능하도록 기본설정이 되어있음.

 # tune2fs -g wheel /dev/sda1

 # tune2fs -g 10 /dev/sda1
 
- -g 옵션으로 그룹명과 GID로 설정이 가능함.





◆ 특정 파일시스템의 예약된 블록을 사용할 수 있는 사용자 설정하기

 - 예약된 블록은 기본적으로 root 사용자만이 사용가능하도록 기본설정이 되어있음.

 # tune2fs -u stkim /dev/sda1
 
 # tune2fs -u 501 /dev/sda1

 - -u 옵션으로 사용자명과 UID로 설정이 가능함





◆  파일시스템의 예약블록퍼센트 설정하기

 - 파일시스템의 예약블록은 기본적으로 5%로 설정이 됨. 이를 변경하기 위해서는 -m 옵션을 사용함.
 
 # tune2fs -m 20 /dev/sda1





◆  변경된 수퍼블록의 파라미터값들 확인하기

 # tune2fs -l /dev/sda1
 

 - -l 옵션으로 해당 파일시스템의 설정값들을 확인할 수 있음.


반응형

'Linux' 카테고리의 다른 글

Linux hdparm  (0) 2018.08.08
Linux smartctl  (0) 2018.08.08
Linux LVM 명령어 리스트  (0) 2018.08.08
Linux Disk(LUN) 인식  (0) 2018.08.08
Linux e2fsck  (0) 2018.08.08
728x90
반응형
lvm Command

lvm dumpconfig  : lvm의 구성정보를 출력

lvm devtypes : 내장된 블록 디바이스의 타입을 출력

lvm formats : 내장된 메타데이터를 포맷

lvmchange : 논리볼륨 매니저의 속성을 변경

lvmdiskscan : LVM2에 보이는 모든 장치를 검색

lvmdump : LVM2를 진단목적으로 덤프를 생성






pv Command

pvchange : 물리 볼륨의 속성을 바꾼다
  * 옵션
    -a : 물리 볼륨 경로가 명령 행에 지정되지 않은 경우 모든 물리 볼륨을 검색하고 사용
    -u : 물리 볼륨에 새로운 uuid를 부여
    -x : 물리 볼륨의 물리 볼륨 영역을 활성화하거나 비활성화 한다

pvck : 물리볼륨의 메타데이터를 체크

pvcreate : LVM을 사용하여 디스크 또는 파티션을 초기화
  * 옵션root
    -f : 강제로 생성
    -u : 장치에 uuid를 지정
    -y : 모든 대답에 Yes
    -z : 장치의 첫 4개 섹터를 삭제해야하는지의 유무

pvdisplay : 물리볼륨의 속성을 출력
   * 옵션
    -c : 스크립트 나 프로그램에서 쉽게 구문 분석 콜론 분리 된 출력을 생성

pvmove  : 물리 범위를 이동
  * 옵션
    -b : 백그라운드 데몬으로 실행
    -i [Seconds] : 정기적으로 진행사항을 백분율로 표시 
    -n [Logical Volume] : 실제 볼륨 대신 대상의 물리적 볼륨에 할당 된 모든 범위에서 논리 볼륨에 속하는 경우에만 범위를 이동

pvremove : 물리불륨을 삭제
  * 옵션
    -f : 강제로 삭제
    -y : 모든 질문 Yes

pvresize : LVM2를 사용하여 디스크 또는 파티션의 크기를 재조정
  * 옵션
   --setphysicalvolumesize : PV의 크기를 자동으로 감지된 크기보다 우선시 한다

pvs : 물리봄륨에 대한 정보를 출력

pvscan : 물리볼륨의 모든 디스크를 스캔






vg Command

vgcfgbackup : 해당 볼륨그룹의 영역을 백업

vgcfgrestore : 해당 볼륨그룹의 영역을 복원
  * 옵션
    -l : 볼륨그룹 이름목록, 데이터 백업에 관한 파일과 아카이브 파일의 이름 출력
    -f : LVM 메타 백업 파일의 이름은 메타 데이터 백업 또는 아카이브 파일은 볼륨 그룹 이름을 복원하기 위해 사용

vgchange : 볼륨그룹의 속성을 변경
  * 옵션
    -A : 자동으로 백업 진행
    -a : I/O를 위해 볼륨 그룹의 논리 볼륨 이용 가능성일 제어
    -c : 클러스터 잠금 활성화, 볼륨 그룹의 클러스터 잠금이 설정되면 볼륨 그룹이 클러스터하거나 다른 노드에 표시되지 않음
    -u : 볼륨 그룹에 새로운 uuid를 부여
    -l : 기존의 비활성 볼륨 그룹의 논리 볼륨 번호를 변경
    -p : 볼륨 그룹에 속할 수있는 물리적 볼륨의 최대 수를 변경
    -s : 볼륨 그룹의 물리 볼륨 PE Size를 변경
    -x : 볼륨 그룹의 확장 / 축소, 물리 볼륨의 활성화 / 비활성를 설정

vgck : 볼륨그룹의 메타데이터를 체크

vgconvert : 볼륨그룹의 메타데이터 형식을 변환

vgcreate : 볼륨그룹을 생성

vgdisplay : 볼륨그룹의 속성을 출력

vgexport : 시스템이 볼륨그룹을 알 수 없도록 만든다

vgimport : 시스템이 볼륨그룹을 알 수 있도록 만든다

vgextent : 볼륨그룹에 물리볼륨을 추가

vgimportclone : 중복된 이름의 볼륨그룹을 바꾸고 가져온다.

vgmerge : 두개의 볼륨그룹을 합친다

vgmknodes : 볼륨 그룹의 디렉토리와 논리 볼륨의 특정파일을 다시 생성한다.

vgreduce : 하나 이상의 물리볼륨을 제거하여 볼륨그룹을 감소시킨다.

vgremove : 볼륨그룹을 삭제

vgrename : 볼륨 그룹의 이름을 바꾼다

vgs : 볼륨 그룹의 정보를 출력

vgscan : 볼륨 그룹의 모든 디스크 정보를 스캔

vgsplit : 전체 물리 볼륨을 이동하여 하나의 볼륨그룹에서 다른 볼륨그룹으로 논리 볼륨을 이동하여 볼륨그룹을 2개로 분할






lv Command

lvchange : 논리 볼륨의 속성을 변경

lvconvert : 논리 볼륨을 미러링 또는 스냅샷 논리볼륨으로 변환

lvcreate : 논리 볼륨을 생성

lvextend : 논리 볼륨의 크기를 확장

lvreduce : 논리 볼륨의 크기를 감소

lvremove : 논리 볼륨을 삭제

lvrename : 논리 볼륨의 이름을 바꾼다

lvresize : 논리 볼륨의 크기를 바꾼다

lvs : 논리 볼륨의 정보를 출력

lvscan : 논리볼륨의 모든 디스크를 출력



반응형

'Linux' 카테고리의 다른 글

Linux smartctl  (0) 2018.08.08
Linux tune2fs  (0) 2018.08.08
Linux Disk(LUN) 인식  (0) 2018.08.08
Linux e2fsck  (0) 2018.08.08
Linux partprobe  (0) 2018.08.08
728x90
반응형

Online 상태에서 Disk 추가하였을때 Disk 안보일때

 

 

1) HBA 호스트번호 확인

host bus adapter(HBA) 호스트 넘버를 알기 위해서 다음 명령을 실행

FC host 경우

# ls /sys/class/fc_host/

일반 disk host 경우

# ls /sys/class/scsi_host/

host0 또는 host1, host2 같은 결과를 있다.

 

2) HBA 채널을 다시 스캔 (LUN 새롭게 rescan 경우에는 필요 없다.)

FC bus 다시 스캔하기 위해서 HBA LIP 시그널을 보내도록 요청   

# echo "1" >/sys/class/fc_host/host$NUMBER/issue_lip

LIP명령이 적용될 때까지 15 정도 기다린다.

Rescan 필요한 경우에는

# ls /sys/class/scsi_device/

1:0:0:0  2:0:0:0  2:0:1:0

# echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan

# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan

# echo 1 > /sys/class/scsi_device/2\:0\:1\:0/device/rescan

 

위의 방법은 scan 요청을 하였는데도 Disk가 보이지 않을 시 사용

/var/folders/hc/wqtkk1cd63ddcnt6kr2lrth00000gn/T/com.microsoft.Word/WebArchiveCopyPasteTempFiles/p571 

3) HBA SCSI LUN rescan

리눅스가 HBA SCSI 장치를 rescan하도록 요청

echo "- - -" >/sys/class/scsi_host/host$NUMBER/scan

example:

echo "- - -" > /sys/class/scsi_host/host0/scan

Ex) host 많을 경우 반복문 사용

- for 사용

# for i in {1..30}; do echo "- - -" > /sys/class/scsi_host/host$i/scan; done

- while 사용

# ls /sys/class/scsi_host/ | while read host ; do echo "- - -" > /sys/class/scsi_host/$host/scan ; done

4) 추가된 SCSI Device 확인 (FC_host 경우)

  1. cat /proc/scsi/scsi -> 추가 검색된 Device만큼 LUN 정보가 나타나는지 확인

     또는 qlogic 경우 /proc/scsi/qla2xxx/ 아래, Emulex 경우 /proc/scsi/lpfc/ 아래 정보를 확인

  2. /var/log/messages 또는 dmesg 정보 확인

 

example:

  Vendor: VMware    Model: Virtual disk      Rev: 1.0

  Type:   Direct-Access                      ANSI SCSI revision: 02

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

 sdc: unknown partition table

Attached scsi disk sdc at scsi0, channel 0, id 2, lun 0

Attached scsi generic sg2 at scsi0, channel 0, id 2, lun 0,  type 0

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

 sdc: sdc1

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

 sdc: sdc1

 

 

5) fdisk -l, cat /proc/partitions 확인

   => 정상적으로 해당 디바이스가 커널에 인식되었는지 확인

       4번의 경우 /dev/sdc fdisk -l, cat /proc/partitions 나타나는지 확인

   

 

6) 해당 디바이스를 partitioning 하고 파일시스템 구성하여 사용

방법은 지금까지 사용하면서 문제가 적은 없지만,

여전히 가장 권고하는 방법은 Rebooting

 

 

7) Tip

Suse 리눅스의 경우, 방법으로는 적용안됨

QLogic HBA 경우, 파일시스템을 unmount 후에 modprobe -r qla2xxx 처럼 드라이버를 내렸다가

modprobe qla2xxx처럼 드라이버를 다시 올려주어야 인식되는 같다.

 


 

 

Red Hat 공식 문서



Red Hat Enterprise Linux 4에서는 sysfs 통한 패브릭 재발견(fabric rediscovery) 지원합니다.

Qlogic (qla2xxx) Emulex (lpfc) Fibre Channel HBA 드라이버의 경우,

다음과 같은 명령을 실행하여 새로운 스토리지를 재발견하고 재스캔할 있습니다:

 

echo "1" > /sys/class/fc_host/hostXYZ/issue_lip

echo "- - -" > /sys/class/scsi_host/hostXYZ/scan

 

여기서 XYZ 여러분 HBA scsi 호스트 번호를 의미합니다.

 

시스템 운영 새로운 목표 장치가 추가되면 운영 체제가 자동으로 검색합니다.

다른 설정을 사용시, 새로운 목표 장치를 검색하기 위해서는 다음과 같은 명령을 입력하셔야 합니다:

echo 1 > /sys/class/fc_host/hostn/issue_lip

여기서 hostn 적절한 어댑터 이름을 입력하시면 됩니다.

 

특정 목표 장치에서 새로운 로직 유닛(Logic Unit) 생성될 경우,

다음과 같은 명령을 입력하셔야 새로운 로직 유닛을 검색하고 설정할 있습니다:

echo "b t l" > /sys/class/scsi_host/hostn/scan

 

여기서 b 버스(bus), t 목표(target), 그리고 l hostn에서 스캔할 LUN 의미합니다.

 

다음 예시에서와 같이 와일드 카드를 사용하는 것도 가능합니다:

echo "- - -" > /sys/class/scsi_host/host2/scan

 

시스템 운영 동적으로 추가된 장치에 할당된 장치명 (, /dev/sdb)

시스템 재부팅시 달라질 있다는 사실을 염두하시기 바랍니다.

 


 

 

출처 : http://hotpotato.tistory.com/154 

출처http://kernel-baramil.blogspot.kr/2014/03/linux-tiprebooting-scan.html

출처http://tg0922.tistory.com/51

출처https://websetnet.com/ko/add-disk-linux-centos-7-rebooting/

 


반응형

'Linux' 카테고리의 다른 글

Linux tune2fs  (0) 2018.08.08
Linux LVM 명령어 리스트  (0) 2018.08.08
Linux e2fsck  (0) 2018.08.08
Linux partprobe  (0) 2018.08.08
Linux partx  (0) 2018.08.08
728x90
반응형
e2fsck


◆ 리눅스는 부팅단계에서 /etc/rc.d/rc.sysinit 스크립트에 내용에 따라  fsck 가 /etc/fstab파일을 참조하여 각 마운트된 (디스크)장치의 파일 시스템을 점검


점검도중 파일시스템이에 오류가 발생한 파티션이 있다면 부팅이 안됨. 그럴때 fsck를 이용하여야 한다

 

 
부팅 도중에 위와 같은 오류 메시지와 함께 부팅이 멈춰 버림


우리가 주목해야 하는 부분은 저 빨간색 [FAILED] 위의 메시지

/dev/sdb1 : UNEXPECTED UNCONSISTENCY : RUN fsck MANUALLY.   <- 바로 이 부분

- /dev/sdb1 파티션을 메뉴얼에 따라 fsck를 이용하여 체크 하는 도중에 예상치 못한 오류가 발생


◆ 해결방법

1. 먼저 root의 비밀번호를 입력
그러면
(Repair filesystem) :
위와 같은 프롬프트가 뜨는데 파일 시스템을 복구하란 뜻. 오류가 난 부분을 진단해서 고쳐줘야 한다
 
2. (Repair filesystem):e2fsck /dev/sdb1
위와 같이 명령어를 입력하면 자동으로 처리. 이런 저런 메시지가 출력되는데 이 후 리부팅을 해주면 부팅이 되는 걸 확인할 수 있다.
 

fsck 옵션
 
- 먼저 fsck를 이용하여 파일시스템을 점검 할때에는 파티션을 언마운트 시킨후에 해야 한다. 안그러면 점검하다가 파일시스템에 되려 손상이 가는 경우가 있을수 있다.
 

 
위와 같은 명령어로 장치들의 마운트 정보를 확인

-f : 이는 파일시스 템이 이상이 없더라도 강제적으로 파일 시스템을 점검 할때 사용
ex) #e2fsck -f /dev/sdb1   
 
-j : 이는 저널링 파일 시스템을 대상으로 작업할때 사용하는 옵션. 저널링 파일 시스템(보통 ext3)를 대상으로 작업할때 옵션이 아니라 필수로 해줘야 하는 옵션이다.
ex)#e2fsck -j ext3 /dev/sda1
 
-v : 점검내역 상세 보기
ex)#e2fsck -j ext3 -fv /dev/sda2
(ext3의 파일 시스템으로 구성된 sda1파티션을 강제로 점검하면서 상세내역도 보는명령)
 
-p : 오류 있는 파일 시스템의 자동 복구 (아주 유용한 옵션) 
ex)#e2fsck -b 98304 -p /dev/sda1
 
-y : 수행 과정의 질문에 모두 yes라 응답하는 옵션
ex)#e2fsck -b 98304 -y /dev/sdb1
 
-n :수행 과정의 질몬에 모두 no 로 응답하는 옵션
ex)#e2fsck -b 98304 -n /dev/sdb1
 
-c : 점검 과정에서 찾게된 베드블록을 마킹하여 사용치 못하게 하는 옵션
ex)e2fsck -j ext3 -cv /dev/sda2             
(/dev/sda2 파일 시스템내의 배드블록이 있다면 배드블록 아이노드에 마킹하는 작업)

  


반응형

'Linux' 카테고리의 다른 글

Linux LVM 명령어 리스트  (0) 2018.08.08
Linux Disk(LUN) 인식  (0) 2018.08.08
Linux partprobe  (0) 2018.08.08
Linux partx  (0) 2018.08.08
Linux dumpe2fs  (0) 2018.08.08
728x90
반응형
Partprobe


- fdisk를 통한 볼륨 파티션 재 구성 시 OS 커널이 인식하는 파티션 정보와 일치하지 않을때 /dev 디렉토리 밑에 디바이스 파일이 생성되지 않는다.

- OS가 설치된 디스크에 파티션을 새로 설정할 경우 사용중이라는 메시지와 함께 파티션이 인식이 안되서 시스템을 생성할 수 없다. 

- Reboot을 통해 파티션을 재인식할 수 있지만 Reboot이 힘든 경우 partprobe를 통해 파티션 인식 가능

- 해당 디바이스가 umount 도니 상태에서만 가능하다


옵션

-D : kernel을 업데이트 하지 않는다.
-s : 장치 및 해당 파티션의 요약을 표시
-V : 프로그램 버전 출력


사용법

# partprobe /dev/sdb

# partprobe -s


반응형

'Linux' 카테고리의 다른 글

Linux Disk(LUN) 인식  (0) 2018.08.08
Linux e2fsck  (0) 2018.08.08
Linux partx  (0) 2018.08.08
Linux dumpe2fs  (0) 2018.08.08
Linux gdisk  (0) 2018.08.08

+ Recent posts