겔럭시 노트9 10월 보안 업데이트 입니다

자세한 내용은 아래의 링크를 참고 하세요

Link : http://doc.samsungmobile.com/SM-N960N/KTC/doc.html

이번 엡데이트 이후 Linux On Dex 가 가능 합니다
Link : https://www.linuxondex.com/

현재 테스트중인데… 신기하네요

다음 포스팅엔 Linux On Dex 에 대해서 진행 해 보도록 하겠습니다.

본 포스팅을 작성하는 이유는??? 머리가 나뿌기도 하지만… 지인에게 도움이 되고자 포스팅을 작성하게 되었음.

우선 이 이슈의 계기???

free 명령으로 확인을 하였을때 알 수 없는 used 사이즈가 잡혀 있더란??? ps_mem 으로 확인을 하여도 잡히지 않고
그렇다고 slab 값도 높지 않은 상황?
그럼 어디서 사용을 하고 있는 걸까?

그래서 확인 해 본결과 hugepage 설정을 해 놓았더라는…

### HugePages 설정 전
# cat /proc/meminfo
Slab:             388708 kB

AnonHugePages:     24576 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB


# ps_mem.py
---------------------------------
                        177.1 MiB
=================================
Warning: Swap is not reported by this system.


# free -m
              total        used        free      shared  buff/cache   available
Mem:           7821         252         204          24        7364        7157
Swap:          2047           0        2047

### HugePages 설정 후
# echo "vm.nr_hugepages = 1024" >> /etc/sysctl.conf
# sysctl -p 

# cat /proc/meminfo
Slab:             343616 kB

AnonHugePages:     24576 kB
HugePages_Total:     962
HugePages_Free:      962
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

# ps_mem.py
---------------------------------
                        175.7 MiB
=================================
Warning: Swap is not reported by this system.

# free -m
              total        used        free      shared  buff/cache   available
Mem:           7821        2147         221          24        5452        5265
Swap:          2047           0        2047

# HegePages 설정 전 메모리 used 계산 값
7821(Total)-204(Free)-7364(buff/cache) =  253(Used),  ps_mem 결과 177.1MiB ( slab 388708 kB )

# HegePages 설정 전 메모리 used 계산 값
7821(Total)-221(Free)-5452(buff/cache) =  2148(Used),  ps_mem 결과 175.7MiB ( slab 343616 kB )

위의 예제에서 볼 수 있듯이 HugePages 를 설정 하기 전에는 ps_mem 과 free 상에는 used 를 점유하고 있는
메모리 사용량 출처를 대략적으로 확인 할 수 있지만 HugePages 를 설정 하고 난 후에는 /proc/meminfo 상에 
Hugepagesize(2mB) * HugePages_Total = ??? 를 계산하면 free 상의 used 에서 확인되지 않던 사용량을 확인
할 수 있다.

참고 사이트 :
Link : http://blog.seabow.pe.kr/?p=6744
Link : https://oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64
Link : https://access.redhat.com/solutions/2533271

 

SNS 에서 netdata 관련 포스팅을 보고 급… 궁금해져서 설치를 진행 함.

요즘은 좋은 세상이라???  힘들게 컴파일 하지 않아도 되는???
컨테이너란 편리한 실행 방법이 있음.

관련 내용 : https://hub.docker.com/r/titpetric/netdata/

실행 방법 : ( RHEL7, CentOS7 기준 )

# yum install docker -y
>> docker 를 설치 함.
# systemctl start docker
>> docker 서비스 실행
# docker run -d --cap-add SYS_PTRACE -v /proc:/host/proc:ro -v /sys:/host/sys:ro -p 19999:19999 titpetric/netdata
>> docker 가 구동되어 있는 상태에서 위의 명령어를 입력하면 docker image 를 먼저 pull 하고  컨테이너를 run 함.
# docker ps -a
>> 실행 상태 확인

docker 컨테이너가 실행 되었다면 브라우져에서 아래의 주소로 접속

http://$(ip):19999
ex)
http://192.168.10.2:19999

 

페이지가 접속되면 아래와 같은 화면을 볼 수 있음.

호스트에 대한 전체 리소스 사용량

현재 docker 로 구동된 컨테이너 자원 사용량

kvm 기반 windows vm 자원 사용량

 

netdata 관련 정보 모음

표출 가능한 정보들 : 
Link : https://github.com/firehol/netdata

netdata 관련 Demo 모음 : 
Link : https://github.com/firehol/netdata/wiki

그 외 추가 가능한 챠트들을 제공함.
Link : https://github.com/firehol/netdata/wiki/Add-more-charts-to-netdata

마지막으로 시스템별 netdata 설치 방법 안내 :
Link :  https://github.com/firehol/netdata/wiki/Installation

 

 

RHEL7(CentOS7) 기반의 grub2 의 사용법에 대해서 간단히 알아 보려고 한다.

 

1. grub2 의 커널 파라미터 설정(CMDLINE) 

기존에는 /etc/grub.conf or /boot/grub/grub.conf 를 수정해야 했으나 grub2 에서는 아래의 파일에 내용을 수정한다.

file : /etc/default/grub

 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.font=latarcyrheb-sun16 vconsole.keymap=ko crashkernel=256M

위 내용을 수정하고 아래 명령어를 실행 한다.

 

# grub2-mkconfig -o /boot/grub2/grub.cfg
 
Found linux image: /boot/vmlinuz-3.10.0-514.26.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.26.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-514.10.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.10.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-89f67b9113e64947ab85be3002ef89c9
Found initrd image: /boot/initramfs-0-rescue-89f67b9113e64947ab85be3002ef89c9.img

grub2-mkconfig 명령을 실행하면 위 /etc/default/grub 에 설정한 내용을 기반으로 모든 커널 라인에 해당 설정을 적용 해 준다.

 

2.  Default 커널 버전을 어떻게 설정 하는가?

우선 아래의 명령으로 커널 버전별 엔트리 및 인덱스 넘버를 확인 합니다.

 

 
# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

0 : CentOS Linux (4.12.2-1.el7.elrepo.x86_64) 7 (Core)
.
.
4 : CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)
5 : CentOS Linux (3.10.0-514.10.2.el7.x86_64) 7 (Core)
6 : CentOS Linux (0-rescue-89f67b9113e64947ab85be3002ef89c9) 7 (Core)

기본 항목은 / etc / default / grub 파일의 GRUB_DEFAULT 행에 의해 정의됩니다.
그러나 GRUB_DEFAULT 행이 saved로 설정되면 매개 변수는 / boot / grub2 / grubenv 파일에 저장됩니다.

# grub2-editenv list
 saved_entry=0

/boot/grub2/grubenv 파일은 수동으로 편집 할 수 없습니다. 아래의 명령어를 사용 하시기 바랍니다.

# grub2-set-default 2    <== 설정
# grub2-editenv list  <== 확인
saved_entry=2   <== 설정 결과

설정이 완료되면 reboot 을 합니다. 위에서 지정한 커널 버전으로 부팅 된 것을 확인 할 수 있습니다.

 

참고 : 
Link : https://wiki.centos.org/HowTos/Grub2

일반적으로 extX, xfs 등의 user,group quota  는 기본적으로 어느정도 이해가 있다고 생각하고
이번엔 xfs filesystem 의 project quota 설정 방법에 대해서 설명 해 볼까 합니다.

*) 본 내용은 RHEL7(CentOS7) 기반으로 작성되어 있으므로 설정 파일 위치나 이름이 다를 수 있습니다.

xfs filesystem 의 project quota 는 project 기반의 지정된 경로에 대하여 block, inode, realtime block 으로 제한이
가능하므로 여타 파일 시스템 보다 관리적인 효율이 좋다고 할 수 있다. ( Directory 기반으로도 가능 )

 

Step 1. /etc/fstab 에 pquota 옵션 추가 

#/etc/fstab
/dev/vg00/lv00 /data xfs defaults,pquota 0 0

Step 2. 마운트

# mount -a

Step 3. 마운트 확인 

# mount | grep /data
/dev/mapper/vg00-lv00 on /data type xfs (rw,relatime,attr2,inode64,prjquota)

Step 4. /etc/projects 파일 생성 ( quota 를 이용할 경로 )
프로젝트 넘버와 디렉토리 트리를 맵핑

ex)
project id : Directory Tree

# echo “1:/data/data1/” >> /etc/projects
# echo “2:/data/data2/” >> /etc/projects
# echo “3:/data/data3/” >> /etc/projects

Step 5. /etc/projid 파일 생성 ( quota 를 이용할 경로 )
프로젝트 넘버와 프로젝트 네임을 맵핑

ex)
project name : project id

# echo “data1:1” >> /etc/projid
# echo “data2:2” >> /etc/projid
# echo “data3:3” >> /etc/projid

Step 6. Project quota 실행 하기
project 와 제한을 걸려고 하는 Directory 맵핑 하기 

ex)
xfs_quota -x -c ‘project -s $(project name) ‘ $(Filesystem MountPoint)

# xfs_quota -x -c ‘project -s data1’ /data
# xfs_quota -x -c ‘project -s data2’ /data
# xfs_quota -x -c ‘project -s data3’ /data

Step 7. quota 제한 실행 하기
size 기반으로 제한을 걸기 

ex)
xfs_quota -x -c ‘limit $(limit options) $(project id)’ $(Filesystem Mount)

# xfs_quota -x -c ‘limit -p bsoft=300m bhard=350m 1’ /data

inode 기반으로 제한을 걸기 

ex)
xfs_quota -x -c ‘limit $(limit options) $(project id)’ $(Filesystem Mount)

# xfs_quota -x -c ‘limit -p isoft=500 ihard=700 1’ /data

Step 8. quota 제한 확인 하기
size 및 inode 기반 확인

ex)
xfs_quota -x -c ‘repore $(option)’ $(Filesystem Mount)

### inode size
# xfs_quota -x -c ‘report -ih’ /data
Project quota on /data (/dev/mapper/vg00-lv00)
Inodes
Project ID Used Soft Hard Warn/Grace
———- ———————————
#0      3     0     0     00 [——]
data1 331 500 700 00 [——]
data2 151 0     0     00 [——]
data3 201 0     0     00 [——]

### block size
# xfs_quota -x -c ‘report -h’ /data
Project quota on /data (/dev/mapper/vg00-lv00)
Blocks
Project ID Used Soft Hard Warn/Grace
———- ———————————
#0      0           0         0        00 [——]
data1 330.0M 300M 350M 00 [0 days]
data2 150M    100M 150M 00 [0 days]
data3 200M    150M 200M 00 [0 days]

위 방법을 사용하여 활용할 수 있는 부분은 nfs export 를 해야 하는 시스템에서 각 nfs export path 별로
사이즈 제한을 해야 되는경우 일반적으로 lvm 이나 partition 사이즈를 기반으로 사이즈 제한을 하지만.
>> 파일 시스템 갯수가 많아지므로 관리에 어려움이 발생 함.

1개의 Filesystem 기반의 xfs project quota 기능을 이용하여 Directory Tree 기반으로 제한을 하는경우
관리에 있어서 효율화를 이룰 수 있다.

제목과 관련하여 CVE 넘버는 CVE-2016-5195 이며 보안 취약점을 이용한 권한 상승 이슈
 
현재 해당 내용과 관련하여  Red Hat 에서는 아래의 페이지에서 관련 내용을 진행 중이며
 
아래에 언급된 버전이 영향을 받는다고 합니다. ( RHEL 을 제외한 배포판은 하단 참고 )
 
  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
자세한 영향도를 확인하고 싶으시면 아래의 스크립트를 실행해 서 확인이 가능하며
 
해결 방법으로는 커널 패치가 있으며 현재  RHEL6, 7 버전에 대해서만 패치를 제공 ( workaround 없음 )
 
 
그 외 OS 는 아래 참고 
 
ubuntu
 
Debian 
 
Centos 
 

mdadm(softraid) 환경에서 문제가 발생된 disk 에 대하여 add/remove 는 일반적으로
가이드하는 방법이다.
Link : http://blog.seabow.pe.kr/?p=413

그리나 이번에 mdadm(softraid) 환경에서 색다른 경험을 하게 되었다.
복구 방법 이랄까?

아무리 찾아봐도 자세한 내용을 찾기 힘들었다. ( 실력이 부족한거 인정… )
해당 device 에 구성되어있던 LVM 이 전혀 인식이 안 됨…ㅠㅠ

그러던중 softraid 로 구성했던 device 에 대한 metadata 가 살아 있는지 여부도 궁금했으므로
아래의 명령어로 확인을 해 보았다.

mdadm --examine /dev/sd[a-z] 

-E, –examine
Print contents of the metadata stored on the named device(s).
Note the contrast between –examine and –detail. –examine
applies to devices which are components of an array, while
–detail applies to a whole array which is currently active.

ex)

/dev/sdi1:
 Magic : a92b4efc
 Version : 0.90.00
 UUID : 907371f9:451d1714:3017a5a8:c86610be
 Creation Time : Fri Aug 19 14:58:28 2016
 Raid Level : raid1
 Used Dev Size : 2490176 (2.37 GiB 2.55 GB)
 Array Size : 2490176 (2.37 GiB 2.55 GB)
 Raid Devices : 12
 Total Devices : 2
Preferred Minor : 0

 Update Time : Tue Aug 23 15:50:34 2016
 State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 10
 Spare Devices : 0
 Checksum : 26d4efbf - correct
 Events : 91742


 Number Major Minor RaidDevice State
this 0 8 129 0 active sync /dev/sdi1

 0 0 8 129 0 active sync /dev/sdi1
 1 1 8 145 1 active sync /dev/sdj1
 2 2 0 0 2 faulty removed
 3 3 0 0 3 faulty removed
 4 4 0 0 4 faulty removed
 5 5 0 0 5 faulty removed
 6 6 0 0 6 faulty removed
 7 7 0 0 7 faulty removed
 8 8 0 0 8 faulty removed
 9 9 0 0 9 faulty removed
 10 10 0 0 10 faulty removed
 11 11 0 0 11 faulty removed

해당 device 의 metadata 가 살아 있다는걸 확인하고 device 에 대한 active 를 시도 한다.

mdadm --assemble /dev/mdX /dev/sdX1

/dev/mdX – softraid 로 구성된 md device 이름
/dev/sdX1 – softraid 로 구성된 md device 의 실제 scsi device 명과 파티션 넘버

ex)

mdadm --assemble /dev/md3 /dev/sda5

기존에 구성된 /dev/md3 의 /dev/sda5 에 대하여 softraid 가 활성화 된다.
그리고 위에서 언급했던 LVM 도 Enable 되었으며 Active 와 함께 Data 도 보이기 시작.

softraid 를 자주 쓸 기회가 없어서 찾아보지 않았던 내용 이었지만 이번 기회에 확인하게 되었다.

참고 자료 : 
Link : https://raid.wiki.kernel.org/index.php/RAID_setup
Link : https://raid.wiki.kernel.org/index.php/RAID_Recovery

RHEL(CentOS) 환경에서 운영중 갑자기 kernel panic 이 발생하고 부팅이 안 되는경우?
그리고 만약 시스템 파일이 유실  되었다면 어떻게 추적할까?

 

  1. OS CD 를 이용하여 rescue mode 진입 ( continue mode )
    또는 skip mode 로 진입하여 /mnt/sysimage 를 “/” 으로 하여 마운트를 진행
    ex)
    /mnt/sysimage
    /mnt/sysimage/boot
    /mnt/sysimage/tmp
  2.  rpm 명령을 이용하여 점검
    #rpm –root=/mnt/sysimage -Va > /tmp/rpm_va.txt
    해당 명령어상의 “missing” 체크
  3. 위의 “missing” 으로 표시된 파일들 restore 진행 또는 동일한 시스템의 파일을 복사하여
    restore 진행

    참고 :
    Link : https://access.redhat.com/solutions/29892
    Link : https://access.redhat.com/solutions/63257