리눅스에서 2TB 이상 대용량 디스크 파티션 사용

리눅스에서는 일반 파티션의 사이즈는 2TB로 제한 되어 있습니다.

이 것을 GPT 타입으로 변경해야 2TB보다 큰 파티션을 사용할 수 있습니다.


일반적으로 파티셔닝을 하면 아래처럼 됩니다.


[root@backup-test ~]# fdisk -l /dev/sdc


Disk /dev/sdc: 5497.6 GB, 5497558138880 bytes, 10737418240 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0xbb438cb0


   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1            2048    10487807     5242880   83  Linux

/dev/sdc2        10487808    52430847    20971520   83  Linux

/dev/sdc3        52430848  4294967294  2121268223+  83  Linux


sdc3을 보면 2TB로 제한 되어버립니다.



변경하려고 하는 디스크를 선택


# parted /dev/sdc

GNU Parted 3.1

Using /dev/sdc

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) 


(parted) mklabel gpt                                                      

Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?

Yes/No? yes


(parted) unit TB                            <----- 최소 용량을 설정하는 명령 (기본 MB) GB or TB


(parted) mkpart primary 0.00TB 5.50TB


(parted) print                                                            

Model: VMware Virtual disk (scsi)

Disk /dev/sdc: 5.50TB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags: 


Number  Start   End     Size    File system  Name     Flags

 1      0.00TB  5.50TB  5.50TB               primary


(parted) quit

vi 편집기 단축키


출처 : https://kldp.org/node/102947


http://www.viemu.com 제공의 내용을 번역한 것

권한 일관 변경

Linux나 Unix 에서 RAC나 HA 구성중에 양쪽 노드에 유저명은 같은데 UID가 다르면 설치가 안되는 경우가 발생.

이중화 작업에는 항상 UID를 맞춰줘야 한다.


안맞을경우 일괄 변경 하는 방법


$ usermod -u 501 oracle


로 바꿔주면 기존에 oracle 계정으로 생성했던 파일들이 전부 유저명이 아닌 UID로 표시 된다.


그럴경우


$ find / -user 502 -exec chown -h oracle {} \;


해주면 기존 502번으로 되어있던 권한이 oracle로 변경되고 id를 확인해 보면 501로 바뀐다.


$ find / -user oracle -exec chgrp -h dba {} \;


이렇게 하면 그룹을 일관 변경 할 수 있다.


AIX 메모리 사용률 확인

AIX에서 메모리 사용량 확인하는 명령어 svmon 간략 한 파라미터


#svmon -O summary=basic,unit=auto

-> 메모리 전체 사용량을 MB 단위로 확인


#svmon -Pu -t 10 | grep -p Pid | grep '^.*[0-9]'

-> 실제 메모리를 사용하는 프로세스를 크기 순서로 10개 조회


#ps aux | head -1; ps aux | sort -m +3 | head

-> 가장 많은 메모리를 점유하는 프로세스 찾기

AIX 에서 vi 에디터 메모리 부족하다고 나올때

0602-101 Out of memory saving lines for undo.


1. 임시 처방
vi -y 9999999 파일 이름

2.환경 설정 변경
/etc/profile에 다음 내용 추가

# Avoid problems when using vi to edit large files (files with many lines)
export EXINIT="set ll=20000000"

 /var 파일 시스템의 용량이 부족할 경우는 임시 조치로 다음과 같이 해도 됨

export EXINIT="set ll=20000000 dir=임시데이터 저장 디렉토리"


리눅스 모니터링 명령어 정리

IOSTAT



별도의 설치 필요 없으며, 물리적 드라이버 별로 기본적인 Disk Read/Write를 볼 수 있다.

한 개 이상의 디스크 드라이브에 대한 입출력 통계와 CPU 활용량 등을 분석 가능하다.

 

-      Avg-cpu : 마지막 재부팅 이후의 평균 CPU 활용량

-      %user : Application 등 사용자 모드에 소모된 시간

-      %nice : nice를 사용하여 스케줄링 우선 순위가 바뀐 프로세스에 소모된 시간

-      %system : System(Kernel)이 사용한 시간

-      %iowait : 디스크 I/O 요청으로 인해 CPU가 대기한 시간

-      %steal : 다른 가상 CPU가 서비스하는 동안 강제적으로 대기한 시간

-      %idle : 대기한 시간

-      Device : 디바이스 구분

-      tps : 초당 전송(I/O)

-      Blk_read/s : 초당 읽혀진 KB (Blk=512 bytes)

-      Blk_wrtn/s : 초당 쓰여진 KB (Blk=512 bytes)

-      Blk_read : 지금까지 읽혀진 KB (Blk=512 bytes)

-      Blk_wrtn : 지금까지 쓰여진 KB (Blk=512 bytes)



VMSTAT

 

 

별도의 설치 필요 없으며 시스템의 리소스 상황(CPU, I/O, Memory)을 모니터링 할 수 있다

vmstat(옵션없음) - 마지막 부팅 이후의 평균 값

vmstat 2 10 => 2초 간격으로 10회 정보 갱신

        

procs : r – 현재 실행중인 프로세스의 수(CPU 접근 대기중인 실행 가능 프로세스 수)

                b – 인터럽트가 불가능한 sleep 상태에 있는 프로세스의 수

                 (I/O 처리를 하는 동안 블록 처리된 프로세스)

             w – 강제로 swap out 된 프로세스

memory : swpd – 사용하고 있는 swap 메모리 양(사용된 가상 메모리 용량)

                   free – 사용 가능한 메모리 양

                    buff – 버퍼로 사용되고 있는 메모리 양

                    cache – 캐시로 사용되고 있는 메모리 양

           swap : si – swap in(디스크에서 메모리로 swap 된 메모리 용량)

                 so – swap out(디스크로 swap 되어 나간 메모리 용량)

io : bi – 초당 블록 디바이스로 보내는 블록 수(블록 장치로 보내진 블록)

bo – 초당 블록 디바이스로부터 받은 블록 수(블록 장치에서 받아온 블록)

system : in – 초당 인터럽트 되는 양

        cs – 초당 context switch 되는 양

cpu : us – 사용자의 CPU 사용 시간 비율

(CPU가 사용자 수준 코드를 실행한 시간, 백분율(%))

               sy – 시스템의 CPU 사용시간 비율

                         (CPU가 시스템 수준 코드를 실행한 시간, 백분율(%))

               Id – CPU idle time(백분율 단위)

               wa – 입출력 대기



TOP



별도의 설치 필요 없으며, CPU 점유 프로세스들을 실시간으로 조회하는 명령어이다.

1 top : 시스템의 전반적 상태(가동시간 등)

    현재시간, 재부팅 없이 운영중인 업타임 시간, 로그인 된 유저 수, 1 5 15분에 대한 각각의 부하율

2 Tasks : 프로세스들의 상황

    실행중인 전체 프로세스 수, 실행중인 프로세스, 유휴상태의 프로세스, 정지된 프로세스, 좀비 프로세스의 수

3 CPU : CPU의 상황

    사용자, 시스템, ni정책의 CPU 사용률, CPU 미사용률, 입출력 대기상태의 CPU 사용률

4 Mem : 메모리 상황

    전체적인 물리 메모리, 사용중인 메모리, 여유 메모리, 버퍼된 메모리의 양

5 Swap : 스왑 메모리 상황

    전체 스왑 메모리, 사용중인 스왑 메모리, 여유 스왑 메모리, 캐싱 메모리

6 PID : 프로세스 ID

    USER : 프로세스를 실행시킨 사용자 ID

    PR : 프로세스 우선순위

    NI : NICE

    VIRT : 가상 메모리 사용량(SWAP+RES)

    RES : 현재 페이지가 상주하고 있는 크기 (Resident Size)

    SHR : 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합

    S : 프로세스의 상태(Sleeping, Running, Swapped out process, Zombies)

    %CPU : 프로세스가 사용하는 CPU 사용률

    %MEM : 프로세스가 사용하는 메모리 사용률

    TIME+ : CPU TIME

    COMMAND : 실행된 명령어




Free


 

시스템의 실제메모리와 스왑메모리에 대한 사용현황을 확인할 수 있는 명령어

1 Mem : 시스템의 물리적인 메모리에 대한 사용량을 각 필드 단위로 표시 (단위 : Kbyte)

-      Total : 전체 메모리의 용량

-      Used : 시스템에서 사용중인 메모리 용량

-      Shared : 시스템에서 공유한 메모리 용량

-      Buffers : 시스템에서 Buffering 된 메모리 용량

-      Cached : 시스템에 Caching 된 메모리 용량

2 -/+ buffers/cache : 현재 캐시 메모리에서 버퍼링된 사용량을 표시(used/free)

3 Swap : 서버설치 시에 결정한 Swap Memory 양으로 디스크의 일부분을 메모리로 잡아서 설정되기 때문에

Swap Memory가 많이 사용되고 있다는 것은 시스템의 전체적인 속도가 떨어진다는 것을 의미하며

지속적으로 Swap Memory가 사용된다는 것은 결국 실제 메모리를 증설해야 한다는 것이다.

-      Total : 시스템의 전체 Swap Memory 용량 표시

-      Used : 전체 Swap Memory 중에서 현재 사용중인 Swap 용량 표시

-      Free : 전체 Swap Memory 중에서 사용되지 않고 남아있는 메모리 용량


Linux 6.x 버전에서 Hostname 변경

예전 버전에서는 /etc/hostname 을 변경해 주면 되었었는데, 6버전에서는 경로가 바뀌었다.


vi /etc/sysconfig/network


hostname 부분 변경


Linux 6.x bonding 설정

Linux 6.x 에서 bonding 설정이 변경이 되었으므로 RHEL6 기준으로 bonding 설정하는 법을 정리해 본다.

기본 설정

    channel bonding interface 설정은 /etc/sysconfig/network-scripts/ifcfg-bondN 파일을 통해 설정한다. N 은 bonding interface 의 숫자로 변경한다. 보통 0 으로 해주면 된다.

DEVICE=bond0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS=""

    

    BONDING_OPTS 설정은 bonding이 정상적으로 구성된후에 설정하는게 좋으므로 일단 "" 로 넣는다.

    실제 bonding 수행할 NIC 를 bonding interface에 바인딩해야 한다. 기존 NIC 설정에 MASTER, SLAVE 지시자를 추가하면 된다. 다음은 ifcfg-eth0 에 적용한 예이며 ifcfg-eth1 에도 같은 설정을 추가하면 된다.


    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0
    BOOTPROTO=none
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    USERCTL=no


    bonding kernel module 이 loading 되도록 modprobe 설정을 변경한다. Linux 6.x 에서는 modprobe.conf 이 deprecated 되었으므로 /etc/modprobe.conf 에 했던 설정은 /etc/modprobe.d/ 밑에 개별 파일로 설정해 주면 된다. ( Ex: ipv6 설정은 /etc/modprobe.d/ipv6.conf 에 지정) - 관련 자료 - Where is /etc/modprobe.conf in Red Hat Enterprise Linux 6?)


    vim /etc/modprobe.d/bonding.conf

    alias bond0 bonding


    service network restart 로 network  을 재시작한다.

    ifconfig  로 bonding interface 가 보이는지 확인한다.

    bond0     Link encap:Ethernet  HWaddr 00:0C:29:65:13:5E 
              inet addr:192.168.0.231  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe65:135e/64 Scope:Link
              UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
              RX packets:68590 errors:0 dropped:0 overruns:0 frame:0
              TX packets:39766 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:93621577 (89.2 MiB)  TX bytes:2786599 (2.6 MiB)