Introduction

Hello, I'm Ushii.
Last time, I talked about servers in the world and their roles on the topic "What is a server?"
This time, I will talk about making a server in production practice.

I will make a server

As I said earlier, I made a server.
After joining the company, I was assigned to a department, and my first task as an SE was to create a self-made server.
I started this task by procuring parts, but what kind of parts are necessary to make a server?
Before purchasing the parts, I had to research and learn a lot, such as what to do with the specs of the server to be produced.
First of all, if you look at what kind of parts make up the server,
Some of the things that came up were: (table 1)

Table 1 Server configuration parts

As shown in Table 1, the server consists of a surprisingly small number of parts, as long as commercially available parts are used.
However, there are many things to consider when considering the specs of the server you want to achieve.
・Required specifications for the motherboard
・CPU processing power
・Capacity of memory and HDD
・Does the amount of power supplied by the power supply meet the total amount of power used by each part?


These were very difficult and frustrating points for me.


※Parts selection TOP 3 that I stumbled upon

1st place: CPU selection
Equipped with 2 CPUs I decided to The reason is" To earn more cores! "is.
If there are many cores, multiple programs can be deployed at the same time, so more is better.
In addition, I will touch on "virtual environment This number of cores is also relevant when building

2nd place: memory selection
→ In memory, “ECC function I was trying to choose the one with ", but the motherboard side
I was worried because I didn't know if it was compatible with ECC.
* It seems that most motherboards for server use are compatible.

3rd place: Motherboard selection
→The number of CPUs is one or two.
Along with that, I also reconfirmed whether it supports ECC memory.
In addition, when it came to server use, there were few shops that handled it, and there was no inventory, so it was a struggle...
*Check stock as soon as possible!

Also, since it is difficult to understand with letters alone, I will use diagrams to represent the components of the server. (Figure 1)

Figure 1 Group of parts that make up the server

By properly incorporating these parts, the "box" of the server is finally completed.
The reason why I used the term "box" here is that it does not have any function as a server that is used in the world as it is.

If you have seen the previous article, you may have come to a pin.
That's right, the server is finally completed by installing the "application" in this "box" and setting it up.

* It is necessary to build an OS (Linux, Windows, etc.) environment before installing the app.

supplement

◆ Reason for choosing “Xeon® E5” as CPU
Intel® CPU ``Xeon®'' is a CPU for servers, and there are three families: ``E7'', ``E5'', and ``E3''.
The reasons why I chose the “E5” Family CPU are:

I want to install two CPUs at the same time (only one E3 Family can be installed in one server)
→ If you choose E5, you can increase the number of cores.
I want to increase the number of PCI Express lanes that can be used
→ Among the products of “Mellanox,” which I am in charge of, there is a product that is used by inserting it into a slot of the connection standard called PCI Express.
During the technical verification, it would be better to be able to use many PCI Express lanes, so “E5” was suitable.
*The number of lanes is an image of the data path. The more lanes, the wider the road and the more data can pass. (Figure 2)
* E5 can use a total of 40 lanes, and E3 can use a total of 16 lanes.

Figure 2 Image of number of PCI Express lanes

About ECC (Error Check and Correct) memory
・ECC is a function that "detects" and "corrects" errors in data recorded in memory. (Fig.3)
* Up to 1 bit can be modified. 2 bits or more can only be detected.
→ Unlike a PC, a server's job is to provide a "service".
To do this job reliably, the server needs ECC memory to handle data errors.
* Data errors are caused by various phenomena such as electrical factors and physical factors.
This error can also cause server and PC crashes.

Figure 3 Role image of ECC memory

at the end

This time, I wrote an article on the subject of actually assembling the "box" of the server.
Next time, I would like to talk about how to turn a "box" into a "server".

Overview of NVIDIA Networking (formerly Mellanox)

◇A leading company in broadband, low-latency interconnects
・EDR 100 Gbps InfiniBand, / 100 Gigabit Ethernet
・Significantly reduced application data processing time
・Dramatically improve the ROI of the data center service infrastructure