Transient로 Windows Server 2016 를 띄운후 Language 설치 메뉴에서 한국어를 추가해도

추가되었다고만 뜨고 실제 한국어 랭귀지 팩이 설치가 안된다.

일반 셋업때는 잘된다. 2012는 일반 셋업 때도 안되었던걸로 기억한다.


이른 윈도업데이트서버가 Softlayer 내부것으로 지정이되어있고 (WSUS) 인터넷업데이트는 막아 놓았다.

거기에서 막혀 있거나 해당 랭귀지팩을 제공해주지 않기 때문이다? (이런 !@(*&&(*$@(*&)(*)

어째든 WSUS 를 잠깐 끄고 한국어 설치옵션에 가면 이전과 다른 다운로드 옵션이 보인다.

덤? 으로 윈도 업데이트도 몇개 더 된다.

하지만, 아무래도 윈도 업데이트 정책은 벤더것을 따라가는게 편하기 때문에 다시 WSUS를 켜주자.


WSUS를 끄는법 regedit 실행 (실행->regedit) 후 아래 경로에서 DoNotConnectToWindowsUpdateInternetLocations를 1에서 0으로 바꾼다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]

"DoNotConnectToWindowsUpdateInternetLocations"=dword:00000000




VRF

https://www.estsecurity.com/securityCenter/commonSense/view/1301


PC일반

 

VRF(Virtual Routing and Forwarding)란 무엇인가요?

2017-04-24

인터넷 프로토콜 기반의 네트워크에서의 가상 라우팅과 포워딩(VRF)이란 하나의 라우터를 여러 개 가상 라우팅 도메인으로 나누어, 하나의 물리적 네트워크를 여러 개 프로토콜을 가진 논리적 네트워크로 구성하는 ‘네트워크 가상화’를 제공하는 기술입니다.


각 라우팅 인스턴스들이 독립적이기 때문에 동일한 또는 오버래핑된 IP 주소들이 충돌하지 않고 사용될 수 있으며, 네트워크 경로가 라우터에 의해 별도의 가상 네트워크로 분리되므로 네트워크 보안이 향상됩니다.


또한 이 기술을 통해 인터넷 서비스 제공자는 별도의 VPN을 제공할 수도 있습니다.


Softlayer의 글로벌 IP는 40개 DC 어디에 있는 서버에 라도 할당 가능하다. 
서버를 다른 DC에 지정할 경우 30초~1분가량 후 바로 이전 된다. 
사용자는 가장 가까운 센터로 접속하고 이후 라우팅은 Softlayer 내부망을 사용하기 때문에 글로벌 네트워크 가속 효과가 있다. 
(단, 사용자->서버만 그렇하며, 서버->사용자 는 일반 Routing과 동일하다. Softlayer는 서버의 DC는 알지만, 사용자 위치는 모르므로 당연하다. ) 

1. 포털에서 Global IP를 구매한다. 
2. Global IP메뉴에서 가서 Global IP를 할당할 서버를 지정한다. 
3. 해당 서버로 로그인 해서 해당 IP를 eth1 서브 인터페이스로 추가한다.


SuperMicro 보드 Turbo Boost 켜기

https://www.supermicro.com/support/faqs/faq.cfm?faq=21555

Question
How do I enable Turbo mode to get the maximum Turbo mode speed on my X10DRi motherboard?
Answer
Please make sure the following settings are correct:

1. Please make sure all cores are enabled: Advanced >> CPU Configuration >> Core enabled >> “0” to enable all cores.


2. Under the Bios setup go to: Advanced >> CPU Configuration >> Advanced Power Management and make sure the setting are as follows: 
Power Technology >> Custom

Energy performance Tuning >> disable

Energy performance BIAS setting >> performance

Energy efficient turbo >> disable


3. Then go to Advanced >> CPU Configuration >> Advanced Power Management >> CPU P state control and make sure the settings are as follows 
EIST (P-States) >> Enable

Turbo mode >> enable

P-state coordination >> HW_ALL


4. Then Advanced >> CPU Configuration >> Advanced Power Management >> CPU C state control and make sure the setting are as follows. 
Package C-state limit >> C0/C1 state

CPU C3 Report >>disable

CPU C6 report >> enable

Enhanced Halt state >> disable





5. Save the changes and exit and now you should be able to get the Max Turbo mode speed. 



Lenovo는 디폴트 ON임.



테스트 서버 스펙 Intel Xeon Gold 6140 : 18Core CPU x 2 EA = 18 core x 2 hyperthread x 2 EA = 72 Logical Processers

4가지 케이스

loop.vbs : 무한루프를 돌려서 CPU 100%를 만드는 프로세스

numa.cmd : 개수를 입력 받아 그 수만큼 서버의 numa 별로 프로세스를 실행하는 배치파일


시나리오 

  • 36개 프로세스 실행 + numa 분배 없이 실행 =>  numa 쏠림 현상 발생
  • 36개 프로세스 실행 + numa 분배 하면서 실행 =>  numa 쏠림 없음
  • 72개 프로세스 실행 + numa 분배 없이 실행 =>  numa 쏠림 현상 발생, Application 지연 발생
  • 72개 프로세스 실행 + numa 분배 하면서 실행 =>  numa 쏠림 없음, Application 지연 없음.


32개 

loop.vbs
While True
Wend
numa.cmd
@echo off
if defined verbose echo on 
setlocal enableextensions enabledelayedexpansion

if "%1"=="" (
     echo Usage: %0 ^
     goto end
) else (
     set ProcessCount=%1
)

set /a ProcessCountMinusOne=%ProcessCount% - 1
set /a NumberOfNumaNodes=%HighestNumaNodeNumber% + 1
set end=%ProcessCountMinusOne%

for /L %%p in (0, 1, %end%) do (
     set /a node=%%p %% %NumberOfNumaNodes%
echo start /node !node! cscript loop.vbs
     start /node !node! cscript loop.vbs
)
:end


'Cloud > Softlayer' 카테고리의 다른 글

Global IP setting  (0) 2018.07.08
SuperMicro 보드 Turbo Boost 켜기  (0) 2018.06.28
Numa 불균형 테스트 해보기  (0) 2018.06.17
NAT 서버 설정 - CentOS 7기준  (0) 2018.06.03
ICOS를 Linux file system에 마운트 해보기  (0) 2018.05.25
Softlayer BIOS Performance Setting  (0) 2018.05.15
NAT

기본 권장 아키텍처는

일반적으로 서버는 모두 사설 IP 대역에 두고,

서비스가 필요한 부분은 Cloud LB를 통해서 외부와 연결 하기를 권장합니다.

꼭 Public IP가 필요한 경우는, Public IP를 부여해도 되고, NAT 서버에서 Secondary IP를 할당 해서 1:1 NAT를 해주면 됩니다. 


본 글은 일반적인 NAT 서버 구성방법과, 서버내에 기본 라우팅을 바꾸는 법을 설명합니다. (간단합니다)

서버는 NAT 서버, 일반 서버 두대로 가정합니다.
[NAT 서버] PublicIP: 169.56.100.5 PrivateIP: 10.178.100.10

NAT 서버를 먼저 설정해 봅니다.

# 1. NAT 서비스를 해줄 방화벽 서비스를 활성화 하고
systemctl enable firewalld
systemctl start firewalld

# 2. 커널에서 IP 패킷 포워딩을 허용 해 줍니다.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/ip_forward.conf
sysctl -p /etc/sysctl.d/ip_forward.conf

# 3. 방화벽에서 NAT MASQUERADE 설정을 할고, 설정을 반영합니다.
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth1 -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o eth1 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
firewall-cmd --reload

[일반 사설 IP만 있는 서버] PrivateIP:10.178.100.20
디폴트 라우팅만 NAT서버로 바꾸어 주면 됩니다. (AWS의 경우 라우팅 테이블을 바꾸면 되므로, 이런 걸 해 줄 필요가 없죠.)
다만 사전에 10.0.0.0/8은 원래 Default Gateway를 잘 바라보고 있는지 확인합니다. (없으면 추가 필요)

#변경 전 
[root@tf-vm ~]# ip route
default via 10.178.100.1 dev eth0
10.0.0.0/8 via 10.178.100.1 dev eth0
10.178.100.0/25 dev eth0 proto kernel scope link src 10.178.100.20
161.26.0.0/16 via 10.178.100.1 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002

#변경 후
[root@tf-vm ~]# ip route change default via 10.178.100.10
[root@tf-vm ~]# ip route
default via 10.178.100.10 dev eth0
10.0.0.0/8 via 10.178.100.1 dev eth0
10.178.100.0/25 dev eth0 proto kernel scope link src 10.178.100.20
161.26.0.0/16 via 10.178.100.1 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002

# 외부 접속이 가능한지, 그리고 외부로 나갈때 사용되는 IP를 확인해보면, NAT서버의 PublicIP를 사용함을 확인 할 수 있습니다.
[root@tf-vm ~]# curl whatismyip.akamai.com
169.56.100.5

이제 사설 IP만 있는 서버에서도 외부 Repo를 통해 업데이트를 하실 수 있습니다.


IBM Cloud의 S3 호환 Object Storage인 ICOS를 리눅스 특정 폴더에 마운트 해 보도록 하자.

사실 Object Storage를 Block Storage로 마운트 하는건 권장하지 않는 사항이다.

왜냐면 랜덤엑세스가 자주일어나는 Block Storage를 http api로 동작하는 Object Storage로 연동하는게 사실 성능 적인 면에서 매우 좋지 않기 때문이다.

Object Stoage는 모든 동작이 https의 api를 통해서 이루어진다. OS의 System Call과 1:1 맵핑을 다한다고 하더라도
OS와 Disk사이에서 직접 콜이 이루어지는 것이  https api를 통해서 원거리의 서버와 call이 하나하나 이루어진다면 얼마나 비효율적일지 생각해 보라.

다만 ICOS로 전송을 위한 게이트웨이나 버퍼역할을 하는거라면 고려 해 볼 수도 있겠다.

어째든 용도에 맞게 선택해야 하며

일반적인 용도라면 AWS CLI를 활용하길 권장한다. (aws s3 sync라는 훌륭한 커맨드가 있습니다.)


어째든 필요하면 써야하므로, s3fs보다는 성능이 좋다는 goofys를 쓸것이다. (riofs도 나름 빠른데.. goofys 때문에 어째 묻혔다.)

https://github.com/kahing/goofys

사실 그냥 github에서 실행 파일 하나만 받고 마운트만 해주면 끝.

물론 ICOS는 AWS에서 처럼 서버에 role설정이 안되기 때문에 credential 파일을 따로 만들어 주어야 한다.


아래 예제에서 5개 값만 바꾸신후 쉘에서 붙여넣기 하시면 된다.

MOUNT_DIR="/icos" =S3 마운트 할 디렉토리 명.
ACCESS_KEY="yNXRmWIP****" ICOS 엑세스 키입니다. 포털에서 확인 가능.
SECRET_KEY="r5aeBB6******" ICOS 시크릿키입니다. 포털에서 확인 가능.
ICOS_BUCKET_NAME="cloudz"  ICOS의 마운트할 버킷 명. 미리 해당 버킷을 만들어 두어야 한다.
ICOS_ENDPOINT="https://s3.seo-ap-geo.objectstorage.service.networklayer.com" SEO01의 ICOS 사설 엔트포인트로 포털에서 확인 가능. 한국/일본/홍콩은 크로스 리전이여서 자동 동기화(async) 되며 가까운 곳으로 접속하면 된다.
공인으로 하면 트래픽 비용이 나오므로 꼭 사설로 하길 권장한다.

#=============================================================================
MOUNT_DIR="/icos"
ACCESS_KEY="yNXRmWIP9T1**********"
SECRET_KEY="r5aeBB6CnI9qeQgdb*************"
ICOS_BUCKET_NAME="cloudz****"
ICOS_ENDPOINT="https://s3.seo-ap-geo.objectstorage.service.networklayer.com"

#=============================================================================
yum install -y fuse

wget http://bit.ly/goofys-latest -O /usr/local/bin/goofys
chmod 755 /usr/local/bin/goofys

mkdir -p ~/.aws
cat << EOF >> ~/.aws/credentials
[icos]
aws_access_key_id = $ACCESS_KEY
aws_secret_access_key = $SECRET_KEY
EOF
chmod 600  ~/.aws/credentials

mkdir -p $MOUNT_DIR
# goofys --endpoint=$ICOS_ENDPOINT --profile=icos --dir-mode=0777 --file-mode=0666 $ICOS_BUCKET_NAME $MOUNT_DIR
cat << EOF >> /etc/fstab
goofys#$ICOS_BUCKET_NAME  $MOUNT_DIR  fuse  _netdev,allow_other,--endpoint=$ICOS_ENDPOINT,--profile=icos,--dir-mode=0777,--file-mode=0666 0  0
EOF
mount -a


캐시로 체감을 올릴려면 catfs를 적용해서 테스트 해보길 바란다. 앞서 말했지만 Object Storage는 마운트해서 쓰라고 만든게 아니다. 다만, 캐시로 어느정도 극복은 가능하다.

https://github.com/kahing/catfs


goofys --help를 보면 아래 같은 내용이 나온다.
이 중 --uid 와 --gid 를 활용하면 특정 User와 Group ID로 해당 마운트되는 디렉토리 및 파일의 소유자를 설정할 수 있다.
기본은 유저가 root이므로 애플리케이션에서 Wirte를 못하는 권한 문제가 발생할 수 있다.
특정 유저로 파일이 써져야 한다면 --uid value  --gid value 를 추가하면 해당 권한으로 파일이 생성 된다.

따라서, --dir-mode 와 --file-mode 를 상기에서는 Others모두 오픈 했으나, uid,gid를 부여하고 mode는 755,644등 적절한 값으로 조정해서 보안을 좀 더 강화 할 수 있다.

--acl=public-read를 활용하면 오픈 파일을 외부에서 아무 권한없이 https주소를 통해 가져 갈 수 있다. 일반적으로 쓸 일이 없겠지만, Object Storage 자체를 WebServer로 쓴다거나 CDN의 Origin으로 쓸 때는 꼭 필요한 옵션이다. (AWS의 S3를 쓴다면 acl보다는 policy 설정을 권장한다. Softlayer ICOS는 policy 설정이 안되서;;;)


조금 테스트 해보 았다면, 파일을 다른 방법으로 올리거나, 파일명을 바꾸었을때 바로 폴더에 반영 안되는것을 알수 있을 것이다. (기본 1분 필요)
--stat-cache-ttl와 --type-cache-ttl값을 보면 알수 있을 것이다. 허용가능한 수준으로 바꾸되 너무 짧게 하는 건 API Call이 그만큼 자주 발생할 것이므로 비추천한다. (비용과 서버 부하도 모두 증가하게 된다)

NAME:
   goofys - Mount an S3 bucket locally

USAGE:
   goofys [global options] bucket[:prefix] mountpoint

VERSION:
   0.19.0-943e017724ea820eb4185419ef3c41d6f921a324

GLOBAL OPTIONS:
   -o value            Additional system-specific mount options. Be careful!
   --cache value       Directory to use for data cache. Requires catfs and `-o allow_other'. Can also pass in other catfs options (ex: --cache "--free:10%:$HOME/cache") (default: off)
   --dir-mode value    Permission bits for directories. (default: 0755) (default: 493)
   --file-mode value   Permission bits for files. (default: 0644) (default: 420)
   --uid value         UID owner of all inodes. (default: 0)
   --gid value         GID owner of all inodes. (default: 0)
   --endpoint value    The non-AWS endpoint to connect to. Possible values: http://127.0.0.1:8081/
   --profile value     Use a named profile from $HOME/.aws/credentials instead of "default"
   --use-content-type  Set Content-Type according to file extension and /etc/mime.types (default: off)

TUNING OPTIONS:
   --cheap                 Reduce S3 operation costs at the expense of some performance (default: off)
   --no-implicit-dir       Assume all directory objects ("dir/") exist (default: off)
   --stat-cache-ttl value  How long to cache StatObject results and inode attributes. (default: 1m0s)
   --type-cache-ttl value  How long to cache name -> file/dir mappings in directory inodes. (default: 1m0s)

AWS S3 OPTIONS:
   --region value         The region to connect to. Usually this is auto-detected. Possible values: us-east-1, us-west-1, us-west-2, eu-west-1, eu-central-1, ap-southeast-1, ap-southeast-2, ap-northeast-1, sa-east-1, cn-north-1 (default: "us-east-1")
   --storage-class value  The type of storage to use when writing objects. Possible values: REDUCED_REDUNDANCY, STANDARD, STANDARD_IA. (default: "STANDARD")
   --sse                  Enable basic server-side encryption at rest (SSE-S3) in S3 for all writes (default: off)
   --sse-kms key-id       Enable KMS encryption (SSE-KMS) for all writes using this particular KMS key-id. Leave blank to Use the account's CMK - customer master key (default: off)
   --acl value            The canned ACL to apply to the object. Possible values: private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control (default: off)

MISC OPTIONS:
   --help, -h     Print this help text and exit successfully.
   --debug_fuse   Enable fuse-related debugging output.
   --debug_s3     Enable S3-related debugging output.
   -f             Run goofys in foreground.
   --version, -v  print the version


Hello,


Request BIOS settings.

Target server: server1.mypoc.com 

My BIOS Model: SuperMicro X10DRU-i + _R1.02b


Once each setting is completed, please take a screen capture of each setting and update the ticket.


You can reboot the server now.


X10 DRU BIOS setting

1. CPU Configuration

Core enabled: 0


2. Advanced Power Management setting

Power Technology: Custom

Energy performance Tuning: disable

Energy performance BIAS setting: performance

Energy efficient turbo: disable


3. CPU P state control

EIST (P-States): Enable

Turbo mode: enable

P-state coordination: HW_ALL


4. CPU C state control

Package C-state limit: C0 / C1 state

CPU C3 Report: disable

CPU C6 report: enable

Enhanced Halt state: disable



시작하기

일반적으로 SoftLayer API를 호출하기 위해서는 인증을 위한 API Key 가 있어야 합니다.
하지만 유일한 예외가 있습니다. 그것은 인스턴스 자기 자신의 메타 데이터 정보 를 호출 할 때입니다.
SoftLayer_Resource_Metadata 라는 Service는 어디에서 호출되었는지 만 중요하고, 사전에 API Key를 얻는 필요는 없습니다.
만약 slcli 명령을 사용하더라도 API Key없이 사용할 수 있습니다.

http://sldn.softlayer.com/reference/services/SoftLayer_Resource_Metadata

사용 조건

사용 조건은 다음과 같습니다.

  • 실제로 SoftLayer에서 실행되는 서버에서 실행
  • Private 통해 API 액세스 할 수 있는 서버에서 실행 (Public을 통해서는 동작하지 않습니다.)

예를 들어 관리 콘솔 등의 권한이 없어도 자신의 서버가 어떤 데이터 센터에서 움직이고 있는지 알 수 있습니다.

사용 방법(curl)

기본적으로 json 포맷으로 반환됩니다. (값만 반환)
하지만 .xml 확장자를 주면 xml 형식으로 반환됩니다.
또는 .json 처럼 명시적으로 .json을 붙여도 됩니다.
즉, getID인경우 getID.json 또는 getID.xml 로 쓸수도 있습니다.

  • DeviceID (Baremetal이라면 HardwareId VM라면 VirtualGuestId)

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getId
    
  • 호스트 이름, 도메인 이름, FQDN

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getHostname
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDomain
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getFullyQualifiedDomainName
    
  • Public/Private PrimaryIPAddress

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getPrimaryIpAddress
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getPrimaryBackendIpAddress
    
  • Public/Private MACAddress

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getFrontendMacAddresses
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getBackendMacAddresses
    
  • 라우터 정보 (상기 방법으로 얻은 MAC 주소를 파라미터로 끝에 넣어 주어야 합니다)

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getRouter/06:5c:99:52:1a:60
    
  • VLAN 정보 (상기 방법으로 얻은 MAC 주소를 파라미터로 끝에 넣어 주어야 합니다)

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getVlanIds/06:5c:99:52:1a:60
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getVlans/06:5c:99:52:1a:60
    
  • 데이터 센터 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDatacenterId
    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDatacenter
    
  • 프로비저닝 상태

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getProvisionState
    
  • 태그 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getTags
    
  • UserData 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getUserMetadata
    
  • 서비스 자원 정보

    # curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getServiceResources
    

사용 방법 - slcli 사용

다시말하지만, slcli 명령을 사용하여도 metadata 정보의 취득에 관해서는 사전에 API Key의 설치는 필요하지 않습니다.

  • 명령 예시

      # slcli metadata -h
      Usage: slcli metadata [OPTIONS] PROP
    
        Find details about this machine
    
        PROP Choices
        *backend_ip
        *backend_mac
        *datacenter
        *datacenter_id
        *fqdn
        *frontend_mac
        *id
        *ip
        *network
        *provision_state
        *tags
        *user_data
    
        Examples :
        slcli metadata backend_ip
        slcli metadata backend_mac
        slcli metadata datacenter
        slcli metadata datacenter_id
        slcli metadata fqdn
        slcli metadata frontend_mac
        slcli metadata id
        slcli metadata ip
        slcli metadata network
        slcli metadata provision_state
        slcli metadata tags
        slcli metadata user_data
    
      Options:
        -h, --help  Show this message and exit.
    
        These commands only work on devices on the backend SoftLayer network. This
        allows for self-discovery for newly provisioned resources.
    
  • network 정보 확인

    # slcli metadata network
    :...............:...................:
    :      name     :       value       :
    :...............:...................:
    : mac addresses : 06:90:31:e4:0c:90 :
    :     router    :    fcr01.sng01    :
    :     vlans     :        xxxx       :
    :    vlan ids   :       xxxxxx      :
    :...............:...................:
    :...............:...................:
    :      name     :       value       :
    :...............:...................:
    : mac addresses : 06:18:10:e0:91:17 :
    :     router    :    bcr01.sng01    :
    :     vlans     :        xxxx       :
    :    vlan ids   :       xxxxxx      :
    :...............:...................:
    




https://softlayer.github.io/reference/services/SoftLayer_Resource_Metadata/ 참고

getBackendMacAddresses
A list of backend MAC addresses
getDatacenter
The name for the datacenter which the resource is in
getDatacenterId
The id for the datacenter which the resource is in
getDomain
A resource's domain
getFrontendMacAddresses
A list of frontend MAC addresses
getFullyQualifiedDomainName
A resource's fully qualified domain name
getGlobalIdentifier
A resource's globalIdentifier
getHostname
A resource's hostname
getId
A resource's id
getPrimaryBackendIpAddress
The primary backend IP address for the resource
getPrimaryIpAddress
The primary IP address for the resource
getProvisionState
Obtain the provision state for a resource
getRouter
The router associated with a network component
getServiceResource
Obtain a specific service resource associated with the resource
getServiceResources
Obtain service resources associated with the resource
getTags
Obtain tags associated with the resource
getUserMetadata
Obtain user data associated with the resource
getVlanIds
A list of VLAN ids for a network component
getVlans
A list of VLAN numbers for a network component

 



INTEL CPU 버그 -> 커널 스페이스 메모리가 유저 스페이스로 유출


https://lkml.org/lkml/2017/12/27/2

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/?id=a89f040fa34ec9cd682aed98b8f04e3c47d998bd

Xen : XSA-253 : https://xenbits.xen.org/xsa/advisory-253.html


Xen은 Paravirtual만 해당 된다는 얘기가 있다. AWS Korea는 전부 HVM이므로 해당이 없을지도..


Softlayer는 1월 6일 00시부터 이틀에 걸처 전체 Host를 리부팅 해서 패치 한다.


패치로 인해 성능이 5%~30% 저하된다는 벤치마크 결과가 있다. 특히 IO 쪽이 문제되는 듯.

http://www.phoronix.com/vr.php?view=25767


=======================================================================

지난 10 년 동안 생산 인텔 프로세서는 치명적인 칩 수준의 보안 버그를 가지고 있습니다.  OS 레벨에서 수정 사항이 나와야한다고보고하고, 수정본을 사용할 수있는 경우에도 주목할만한 성능 저하가있을 것입니다.

 

이 보고서는이 시점에서 버그에 대해 알려진 바가 크지 않다고 설명하지만, "지난 10 년 간 생산 된 최신 인텔 프로세서에 존재하는"근본적인 설계 결함 "이라고 지적했다.


이 버그로 인해 사용자 프로그램은 보호 된 커널 메모리의 내용을 식별 할 수있게되어 해커가 다른 보안 버그를보다 쉽게 ​​악용 할 수 있습니다. 등록 메모에 따르면, 실제로는 그보다 더 나쁠 수 있습니다. 커널 메모리에 대한 액세스를 제공하는이 버그는 "프로그램과 로그인 한 사용자가 커널 메모리의 내용을 읽을 때 악용 될 수 있습니다."


커널의 메모리 공간은 암호, 로그인 키, 디스크에서 캐시 된 파일 등과 같은 모든 종류의 비밀을 포함 할 수 있으므로 사용자 프로세스 및 프로그램에서 숨겨집니다. 브라우저에서 실행되는 JavaScript 또는 공유 된 공용 클라우드 서버에서 실행되는 악성 소프트웨어가 민감한 커널 보호 데이터를 스니핑 할 수 있다고 상상해보십시오.


이 칩 레벨 보안 버그에 대한 패치도 그리 좋지 않습니다. 이 보고서는이 시점에서 더 구체적인 정보가 명확하지 않더라도 수정으로 인해 5 % ~ 30 %의 속도 저하가 발생할 수 있다고 설명합니다. 속도 저하는 프로세서가 캐시 된 데이터를 덤프하고 메모리에서 정보를 다시로드해야하는 방식으로 인해 발생합니다.


현재 Microsoft 및 Linux 개발자는이 문제를 해결하기 위해 노력하고 있습니다. 이 결함은 인텔의 x86 하드웨어에 결함이 있기 때문에 인텔 기반 맥에도 영향을 미치지 만, 애플의 수정 작업은 불분명하다. 결함이 하드웨어 자체에 있기 때문에 정상적인 마이크로 코드 업데이트로 해결할 수는 없지만 오히려 OS 레벨의 수정이 필요합니다.


이러한 커널 페이지 테이블 격리 패치는 커널을 완전히 별도의 주소 공간으로 이동하므로 실행중인 프로세스에서 보이지 않을뿐 아니라 전혀 존재하지 않습니다. 실제로는 필요하지 않지만 Intel의 실리콘에는 커널 액세스 보호가 어떤 식 으로든 무시 될 수있는 결함이 있습니다.


이 분리의 단점은 모든 시스템 호출과 하드웨어의 모든 인터럽트에 대해 두 개의 개별 주소 공간을 전환하는 것은 비교적 비용이 많이들고, 시간이 많이 걸린다는 점입니다. 이러한 컨텍스트 스위치는 즉시 발생하지 않으며 프로세서가 캐시 된 데이터를 덤프하고 메모리에서 정보를 다시로드하도록합니다. 이렇게하면 커널의 오버 헤드가 증가하고 컴퓨터 속도가 느려집니다.


개발자가 패치 작업을 할 때 버그에 대한보다 구체적인 정보가 현재 금하고 있다고 추측합니다. 다음 주 곧 Intel에서 직접 더 많은 세부 정보를 얻을 수 있습니다.

+ Recent posts